mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
160 lines
5.4 KiB
ArmAsm
160 lines
5.4 KiB
ArmAsm
;=====================================================================
|
||
; IrisSubpOS_Mw.s
|
||
; OSライブラリ(MWASMARM用)
|
||
;
|
||
; Copyright (C) 2003-2004 NINTENDO Co.,Ltd.
|
||
;=====================================================================
|
||
#ifndef _IRIS_SUBP_OS_H
|
||
#define _IRIS_SUBP_OS_H
|
||
|
||
|
||
.INCLUDE IrisSubpTarget.h
|
||
.INCLUDE IrisSubpDefine.h
|
||
|
||
|
||
|
||
;=======================================================================
|
||
; ロック変数
|
||
;=======================================================================
|
||
|
||
// ロックID
|
||
|
||
#define OS_UNLOCK_ID 0 // ロック変数がロックされていない場合のID
|
||
#define OS_MAINP_LOCKED_FLAG 0x40 // メインプロセッサによるロック確認フラグ
|
||
#define OS_MAINP_LOCK_ID_START 0x40 // メインプロセッサ用ロックIDの割り当て開始番号
|
||
#define OS_MAINP_LOCK_ID_END 0x6f // 割り当て終了番号
|
||
#define OS_MAINP_DBG_LOCK_ID 0x70 // デバッガ予約番号
|
||
#define OS_MAINP_SYSTEM_LOCK_ID 0x7f // システム予約番号
|
||
#define OS_SUBP_LOCKED_FLAG 0x80 // サブプロセッサによるロック確認フラグ
|
||
#define OS_SUBP_LOCK_ID_START 0x80 // サブプロセッサ用ロックIDの割り当て開始番号
|
||
#define OS_SUBP_LOCK_ID_END 0xaf // 割り当て終了番号
|
||
#define OS_SUBP_DBG_LOCK_ID 0xb0 // デバッガ予約番号
|
||
#define OS_SUBP_SYSTEM_LOCK_ID 0xbf // システム予約番号
|
||
|
||
#define OS_LOCK_SUCCESS 0 // ロック成功
|
||
#define OS_LOCK_ERROR -1 // ロックエラー
|
||
|
||
#define OS_UNLOCK_SUCCESS 0 // ロック解除成功
|
||
#define OS_UNLOCK_ERROR -2 // ロック解除エラー
|
||
|
||
#define OS_LOCK_FREE 0 // ロック解除中
|
||
|
||
#define OS_LOCK_ID_ERROR -3 // ロックIDエラー
|
||
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
; ロック関数の初期化
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_InitLock
|
||
|
||
;-----------------------------------------------------------------------
|
||
; ロックIDの獲得
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_GetLockID
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
; スピンロック(ワード/バイト)
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_LockWord
|
||
.EXTERN OS_LockByte
|
||
|
||
.EXTERN OS_LockCard
|
||
.EXTERN OS_LockCartridge
|
||
.EXTERN OS_LockWramBlock0
|
||
.EXTERN OS_LockWramBlock1
|
||
.EXTERN OS_LockVramC
|
||
.EXTERN OS_LockVramD
|
||
|
||
.EXTERN OS_LockSendFifo
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
; ロックの解除(ワード/バイト)
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_UnLockWord
|
||
.EXTERN OS_UnLockByte
|
||
|
||
.EXTERN OS_UnLockCard
|
||
.EXTERN OS_UnLockCartridge
|
||
.EXTERN OS_UnLockWramBlock0
|
||
.EXTERN OS_UnLockWramBlock1
|
||
.EXTERN OS_UnLockVramC
|
||
.EXTERN OS_UnLockVramD
|
||
|
||
.EXTERN OS_UnLockSendFifo
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
; ロックの試行(ワード/バイト)
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_TryLockWord
|
||
.EXTERN OS_TryLockByte
|
||
|
||
.EXTERN OS_TryLockCard
|
||
.EXTERN OS_TryLockCartridge
|
||
.EXTERN OS_TryLockWramBlock0
|
||
.EXTERN OS_TryLockWramBlock1
|
||
.EXTERN OS_TryLockVramC
|
||
.EXTERN OS_TryLockVramD
|
||
|
||
.EXTERN OS_TryLockSendFifo
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
; ロックフラグの読み込み(ワード/バイト)
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_ReadLockWord
|
||
.EXTERN OS_ReadLockByte
|
||
|
||
|
||
;-----------------------------------------------------------------------
|
||
; ロック変数の所有モジュールIDの読み込み(ワード/バイト)
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_ReadOwnerOfLockWord
|
||
.EXTERN OS_ReadOwnerOfLockByte
|
||
|
||
|
||
|
||
;=======================================================================
|
||
; プログラムステータスレジスタ
|
||
;=======================================================================
|
||
|
||
;-----------------------------------------------------------------------
|
||
; プログラムステータスレジスタ セット(r0=パラメータ)
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_SetCpsr
|
||
|
||
;-----------------------------------------------------------------------
|
||
; カレント・プログラムステータスレジスタ値 獲得
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_GetCpsr
|
||
|
||
;-----------------------------------------------------------------------
|
||
; IRQ イネーブル/ディセーブル
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_EnableCpsrIRQ
|
||
.EXTERN OS_DisableCpsrIRQ
|
||
|
||
;-----------------------------------------------------------------------
|
||
; FIQ&IRQ イネーブル/ディセーブル
|
||
;-----------------------------------------------------------------------
|
||
|
||
.EXTERN OS_EnableCpsrFIQ_IRQ
|
||
.EXTERN OS_DisableCpsrFIQ_IRQ
|
||
|
||
|
||
|
||
#endif // _IRIS_SUBP_OS_H
|