AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
vrammgr.c

VRAM Manager

VRAM Manager Layer

none

AXELL CORPORATION

2017_02_22 初版 

2017_10_26 Ver2.0

1: 9: 10: 14: 15: 16: #include "AG903_errno.h" 17: #include "vram/vrammgr.h" 18: 19: 20: 21: 37: int32_t AG903_VRAMMgrInit(uintptr_t vramtop, uint32_t vramsize) 38: { 39: int32_t retval; 40: retval = AG903_OSWprInitMemory(vramtop, vramsize); 41: return retval; 42: } 43: 44: 57: int32_t AG903_VRAMMgrCreateMpl(AG903_VRAMMgrMplPrm* mplprm) 58: { 59: int32_t retval; 60: retval = AG903_OSWprCreMplAuto((AG903_OSWCMpl*)mplprm); 61: return retval; 62: } 63: 64: 78: int32_t AG903_VRAMMgrCreateMplFixedId(int32_t mplid, AG903_VRAMMgrMplPrm* mplprm) 79: { 80: int32_t retval; 81: retval = AG903_OSWprCreMpl(mplid, (AG903_OSWCMpl*)mplprm); 82: return retval; 83: } 84: 85: 95: int32_t AG903_VRAMMgrDeleteMpl(int32_t mplid) 96: { 97: int32_t retval; 98: retval = AG903_OSWprDelMpl(mplid); 99: return retval; 100: } 101: 102: 111: void* AG903_VRAMMgrMalloc(int32_t mplid, uint32_t blksz) 112: { 113: int32_t result; 114: void* p_blk; 115: 116: result = AG903_OSWprGetMpl(mplid, blksz, &p_blk); 117: if(AG903_ENONE != result) { 118: p_blk = NULL; 119: } 120: 121: return p_blk; 122: } 123: 124: 134: void* AG903_VRAMMgrMallocAlign(int32_t mplid, uint32_t align, uint32_t blksz) 135: { 136: int32_t result; 137: void* p_blk; 138: 139: result = AG903_OSWprGetMplAlign(mplid, align, blksz, &p_blk); 140: if(AG903_ENONE != result) { 141: p_blk = NULL; 142: } 143: 144: return p_blk; 145: } 146: 147: 158: int32_t AG903_VRAMMgrFree(int32_t mplid, void* blk) 159: { 160: int32_t retval; 161: retval = AG903_OSWprRelMpl(mplid, blk); 162: return retval; 163: } 164: 165: 176: int32_t AG903_VRAMMgrMrefer(int32_t mplid, AG903_VRAMMgrMplStat* mplsta) 177: { 178: int32_t retval; 179: retval = AG903_OSWprRefMpl(mplid, (AG903_OSWRMpl*)mplsta); 180: return retval; 181: } 182: 183: 196: int32_t AG903_VRAMMgrCreateMpf(AG903_VRAMMgrMpfPrm* mpfprm) 197: { 198: int32_t retval; 199: retval = AG903_OSWprCreMpfAuto((AG903_OSWCMpf*)mpfprm); 200: return retval; 201: } 202: 203: 204: 218: int32_t AG903_VRAMMgrCreateMpfFixedId(int32_t mplid, AG903_VRAMMgrMpfPrm* mpfprm) 219: { 220: int32_t retval; 221: retval = AG903_OSWprCreMpf(mplid, (AG903_OSWCMpf*)mpfprm); 222: return retval; 223: } 224: 225: 235: int32_t AG903_VRAMMgrDeleteMpf(int32_t mplid) 236: { 237: int32_t retval; 238: retval = AG903_OSWprDelMpf(mplid); 239: return retval; 240: } 241: 242: 250: void* AG903_VRAMMgrFmalloc(int32_t mplid) 251: { 252: int32_t result; 253: void* p_blk; 254: 255: result = AG903_OSWprGetMpf(mplid, &p_blk); 256: if(AG903_ENONE != result) { 257: p_blk = NULL; 258: } 259: 260: return p_blk; 261: } 262: 263: 274: int32_t AG903_VRAMMgrFmfree(int32_t mplid, void* blk) 275: { 276: int32_t retval; 277: retval = AG903_OSWprRelMpf(mplid, blk); 278: return retval; 279: } 280: 281: 292: int32_t AG903_VRAMMgrFmrefer(int32_t mplid, AG903_VRAMMgrMpfStat* mplsta) 293: { 294: int32_t retval; 295: retval = AG903_OSWprRefMpf(mplid, (AG903_OSWRMpf*)mplsta); 296: return retval; 297: } 298:
 
名前 
説明 
 
固定長メモリプール生成 
 
固定長メモリプール生成(ID指定) 
 
可変長メモリプール生成 
 
可変長メモリプール生成(ID指定) 
 
固定長メモリプール削除 
 
可変長メモリプール削除 
 
固定長メモリ獲得(ポーリング) 
 
固定長メモリ返却 
 
固定長メモリプールの状態参照 
 
可変長メモリ返却 
 
VRAMマネージャ管理下のVRAM領域の初期化
  • @param vramtop [in] VRAM領域開始アドレス
  • @param vramsize [in] VRAM領域サイズ
  • @return VRAM領域初期化結果
  • @retval AG903_ENONE 正常終了
  • @retval -AG903_EINVAL 引数異常
  • @description VRAMマネージャ管理化のVRAM領域のアドレス変換テーブルを初期化します。
  • @note
  • - VRAMマネージャによるメモリプールの生成はここで初期化した領域内でのみ可能です
  • - この関数はMMUとアドレス変換テーブルが初期化された後、
VRAMマネージャの他の関数を実行する前に一度だけ実行して下さい (AG903_OSWprInitMemory を呼び出します)。
  • - VRAM領域の開始アドレスとサイズは1MB単位で指定して下さい。
  • - VRAM領域の一部は管理のために使用されます。
 
 
可変長メモリ獲得 
 
可変長メモリ獲得 (Align) 
 
可変長メモリプールの状態参照 
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.