mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
166 lines
5.3 KiB
ArmAsm
166 lines
5.3 KiB
ArmAsm
;=====================================================================
|
||
; IrisSubpOS_Arm.s
|
||
; OSライブラリ(ARMASM用)
|
||
;
|
||
; Copyright (C) 2003-2004 NINTENDO Co.,Ltd.
|
||
;=====================================================================
|
||
IF :DEF: _IRIS_SUBP_OS_H
|
||
ELSE
|
||
_IRIS_SUBP_OS_H * 1
|
||
|
||
|
||
INCLUDE IrisSubpTargetArm.s
|
||
INCLUDE IrisSubpDefineArm.s
|
||
|
||
|
||
|
||
;=======================================================================
|
||
; ロック変数
|
||
;=======================================================================
|
||
|
||
; ロックID
|
||
|
||
OS_UNLOCK_ID * 0 ; ロック変数がロックされていない場合のID
|
||
OS_MAINP_LOCKED_FLAG * 0x40 ; メインプロセッサによるロック確認フラグ
|
||
OS_MAINP_LOCK_ID_START * 0x40 ; メインプロセッサ用ロックIDの割り当て開始番号
|
||
OS_MAINP_LOCK_ID_END * 0x6f ; 割り当て終了番号
|
||
OS_MAINP_DBG_LOCK_ID * 0x70 ; デバッガ予約番号
|
||
OS_MAINP_SYSTEM_LOCK_ID * 0x7f ; システム予約番号
|
||
OS_SUBP_LOCKED_FLAG * 0x80 ; サブプロセッサによるロック確認フラグ
|
||
OS_SUBP_LOCK_ID_START * 0x80 ; サブプロセッサ用ロックIDの割り当て開始番号
|
||
OS_SUBP_LOCK_ID_END * 0xaf ; 割り当て終了番号
|
||
OS_SUBP_DBG_LOCK_ID * 0xb0 ; デバッガ予約番号
|
||
OS_SUBP_SYSTEM_LOCK_ID * 0xbf ; システム予約番号
|
||
|
||
OS_LOCK_SUCCESS * 0 ; ロック成功
|
||
OS_LOCK_ERROR * -1 ; ロックエラー
|
||
|
||
OS_UNLOCK_SUCCESS * 0 ; ロック解除成功
|
||
OS_UNLOCK_ERROR * -2 ; ロック解除エラー
|
||
|
||
OS_LOCK_FREE * 0 ; ロック解除中
|
||
|
||
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
|
||
|
||
|
||
|
||
END
|
||
|