AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
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.