AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_PgpMgrExecVRAMInput 関数

VRAM入力の実行制御

Syntax
C++
int32_t AG903_PgpMgrExecVRAMInput(AG903_PgpMgrVRAMInputHandle * handle, uint32_t cmd);
引数 
説明 
AG903_PgpMgrVRAMInputHandle * handle 
[in] 実行するVRAM入力ハンドルを指定します。 
uint32_t cmd 
[in] 実行コマンドを指定します。 

制御結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
handleに不正な値が指定された場合
cmdに不正な値が指定された場合
入力ポートの割り当てが行なわれていない場合 
-AG903_EBUSY 
他のVRAM入力ハンドルが実行するポートで現在処理中の場合
VRAM入力のコマンドキューに空きが無い場合、コマンドを受けつける状態では無い場合 

VRAM入力のコマンドを発行します。 

詳しくは、「PGPVRAM入力コマンド」を参照してください。

1: int32_t AG903_PgpMgrExecVRAMInput(AG903_PgpMgrVRAMInputHandle *handle, uint32_t cmd) 2: { 3: uint32_t dummy, queue, st; 4: 5: 6: if ((handle == NULL) || (handle->id != AG903_PGP_MGR_VRAM_INPUT_HANDLE_ID)) { 7: return -AG903_EINVAL; 8: } 9: 10: 11: if (handle->port_no == -1) { 12: return -AG903_EINVAL; 13: } 14: 15: AG903_PgpPrmGetPGPVInSTATE(handle->port_no, &dummy, &queue, &st); 16: 17: if ((PgpContext.exec_vram[handle->port_no] != handle ) && (st != AG903_PGP_MGR_VI_CMD_NONE)) { 18: return -AG903_EBUSY; 19: } 20: 21: switch (cmd) { 22: case AG903_PGP_MGR_VI_CMD_EXEC: 23: 24: if ((queue == (AG903_PGP_MGR_VI_CMD_MAX_QUEUE - 1)) || ((st != 0) && (cmd != st))) { 25: return -AG903_EBUSY; 26: } 27: break; 28: case AG903_PGP_MGR_VI_CMD_EXEC_CONTINUE: 29: 30: if (st != 0) { 31: return -AG903_EBUSY; 32: } 33: break; 34: case AG903_PGP_MGR_VI_CMD_NONE: 35: case AG903_PGP_MGR_VI_CMD_IDLE: 36: case AG903_PGP_MGR_VI_CMD_RESET: 37: break; 38: default: 39: return -AG903_EINVAL; 40: } 41: 42: PgpMgrExecVRAMInputHandle(handle, cmd); 43: return AG903_ENONE; 44: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.