AG903ライブラリリファレンス
Body Source
AG903_OSPMgrSetCommand 関数
本文ソース
コピコード
1: int32_t AG903_OSPMgrSetCommand(
AG903_OSPMgrHandle
*handle,
AG903_OSPMgrCmd
cmd, uint32_t param) 2: { 3: int32_t rc =
AG903_ENONE
; 4: uint32_t cmddt; 5: uint8_t ch = -1; 6: 7:
if
(NULL == handle) { 8: rc = -
AG903_EINVAL
; 9: } 10: 11: rc = OSPMgrCheckHandle(handle, &ch); 12: 13:
if
(rc ==
AG903_ENONE
) { 14: rc = OSPMgrCheckOverflow(ch); 15: } 16: 17:
switch
(cmd) { 18:
case
AG903_OSP_CMD_BUS_SINGLE: 19:
if
( (0==param) || (
AG903_OSP_CMD_BAS_SIZE
<param) ) { 20: 21: rc = -
AG903_EINVAL
; 22: } 23:
else
{ 24: cmddt =
OSP_CMD_BAS
(param); 25: } 26:
break
; 27:
case
AG903_OSP_CMD_BUS_BURST_FIX: 28:
if
( (0==param) || (
AG903_OSP_CMD_BAB_SIZE
<param) ) { 29: 30: rc = -
AG903_EINVAL
; 31: } 32:
else
{ 33: cmddt =
OSP_CMD_BAB
(param, 1); 34: } 35:
break
; 36:
case
AG903_OSP_CMD_BUS_BURST_INC: 37:
if
( (0==param) || (
AG903_OSP_CMD_BAB_SIZE
<param) ) { 38: 39: rc = -
AG903_EINVAL
; 40: } 41:
else
{ 42: cmddt =
OSP_CMD_BAB
(param, 0); 43: } 44:
break
; 45:
case
AG903_OSP_CMD_BUS_ADDR: 46:
if
( (0==param) || (param%4) ) { 47: 48: rc = -
AG903_EINVAL
; 49: } 50:
else
{ 51: cmddt =
OSP_CMD_ADDR
(param); 52: } 53:
break
; 54:
case
AG903_OSP_CMD_BUS_DATA: 55: cmddt =
OSP_CMD_DATA
(param); 56:
break
; 57:
case
AG903_OSP_CMD_BUS_WAIT: 58: cmddt =
OSP_CMD_BAW
(); 59:
break
; 60:
case
AG903_OSP_CMD_INTR_WAIT: 61: cmddt =
OSP_CMD_INTR
(param); 62:
break
; 63:
case
AG903_OSP_CMD_EVNT_WAIT: 64:
if
(
AG903_OSP_EVENT_NUM
<=param) { 65: 66: rc = -
AG903_EINVAL
; 67: } 68:
else
{ 69: cmddt =
OSP_CMD_EVENT
(param); 70: } 71:
break
; 72:
case
AG903_OSP_CMD_EVNT_DEC: 73:
if
(
AG903_OSP_EVENT_NUM
<=param) { 74: 75: rc = -
AG903_EINVAL
; 76: } 77:
else
{ 78: cmddt =
OSP_CMD_EVENTD
(param); 79: } 80:
break
; 81:
case
AG903_OSP_CMD_EVNT_CLR: 82:
if
(
AG903_OSP_EVENT_NUM
<=param) { 83: 84: rc = -
AG903_EINVAL
; 85: } 86:
else
{ 87: cmddt =
OSP_CMD_EVENTC
(param); 88: } 89:
break
; 90:
case
AG903_OSP_CMD_FLAG_SET: 91: cmddt =
OSP_CMD_SETF
(param); 92:
break
; 93:
case
AG903_OSP_CMD_FLAG_CLR: 94: cmddt =
OSP_CMD_CLRF
(param); 95:
break
; 96:
case
AG903_OSP_CMD_NOP: 97: cmddt =
OSP_CMD_NOP
(); 98:
break
; 99:
default
: 100: 101: rc = -
AG903_EINVAL
; 102:
break
; 103: } 104: 105:
if
(rc ==
AG903_ENONE
) { 106: rc = OSPMgrSetCommand(ch, cmddt); 107: } 108: 109:
return
rc; 110: 111: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.
内容
|
インデックス
|
ホーム