ntr_bootrom/trunk/IrisSubp/include/IrisSubpOS_Mw.s

160 lines
5.4 KiB
ArmAsm
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;=====================================================================
; 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
;=======================================================================
; ロック変数
;=======================================================================
//
#define OS_UNLOCK_ID 0 //
#define OS_MAINP_LOCKED_FLAG 0x40 //
#define OS_MAINP_LOCK_ID_START 0x40 //
#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 //
#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 //
;-----------------------------------------------------------------------
; ロック関数の初期化
;-----------------------------------------------------------------------
.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
;-----------------------------------------------------------------------
; イネーブル/ディセーブル
;-----------------------------------------------------------------------
.EXTERN OS_EnableCpsrIRQ
.EXTERN OS_DisableCpsrIRQ
;-----------------------------------------------------------------------
; イネーブル/ディセーブル
;-----------------------------------------------------------------------
.EXTERN OS_EnableCpsrFIQ_IRQ
.EXTERN OS_DisableCpsrFIQ_IRQ
#endif // _IRIS_SUBP_OS_H