summaryrefslogtreecommitdiff
path: root/arm9/lib/src/CARD_pullOut.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/src/CARD_pullOut.c')
-rw-r--r--arm9/lib/src/CARD_pullOut.c105
1 files changed, 0 insertions, 105 deletions
diff --git a/arm9/lib/src/CARD_pullOut.c b/arm9/lib/src/CARD_pullOut.c
deleted file mode 100644
index d5c7737f..00000000
--- a/arm9/lib/src/CARD_pullOut.c
+++ /dev/null
@@ -1,105 +0,0 @@
-#include "function_target.h"
-#include "CARD_common.h"
-#include "CARD_pullOut.h"
-#include "PXI_init.h"
-#include "PXI_fifo.h"
-#include "OS_terminate_proc.h"
-#include "OS_system.h"
-#include "PAD_pad.h"
-#include "SPI_pm.h"
-#include "syscall.h"
-#include "mmap.h"
-
-static CARDPulledOutCallback CARD_UserCallback;
-static BOOL CARDi_IsPulledOutFlag = FALSE;
-
-static void CARDi_PulledOutCallback(PXIFifoTag tag, u32 data, BOOL err);
-static void CARDi_SendtoPxi(u32 data, u32 wait);
-
-ARM_FUNC void CARD_InitPulledOutCallback(void)
-{
- PXI_Init();
-
- PXI_SetFifoRecvCallback(PXI_FIFO_TAG_CARD, CARDi_PulledOutCallback);
-
- CARD_UserCallback = NULL;
-}
-
-ARM_FUNC static void CARDi_PulledOutCallback(PXIFifoTag tag, u32 data, BOOL err)
-{
-#pragma unused(tag, err)
- u32 command = data & CARD_PXI_COMMAND_MASK;
-
- if (command == CARD_PXI_COMMAND_PULLED_OUT)
- {
- if (!CARDi_IsPulledOutFlag)
- {
- BOOL isTerminateImm = TRUE;
- CARDi_IsPulledOutFlag = TRUE;
-
- if (CARD_UserCallback)
- {
- isTerminateImm = CARD_UserCallback();
- }
-
- if (isTerminateImm)
- {
- CARD_TerminateForPulledOut();
- }
- }
- }
- else
- {
- OS_Terminate();
- }
-}
-
-ARM_FUNC BOOL CARD_IsPulledOut(void)
-{
- return CARDi_IsPulledOutFlag;
-}
-
-ARM_FUNC void CARD_TerminateForPulledOut(void)
-{
- BOOL should_be_halt = TRUE;
-
- if (PAD_DetectFold())
- {
- u32 res;
- while ((res = PM_ForceToPowerOff()) == 0x04)
- {
- OS_SpinWait(HW_CPU_CLOCK_ARM9 / 100);
- }
- if (res == 0)
- {
- should_be_halt = FALSE;
- }
- }
-
- if (should_be_halt)
- {
- CARDi_SendtoPxi(CARD_PXI_COMMAND_TERMINATE, 1);
- }
-
- OS_Terminate();
-}
-
-ARM_FUNC void CARDi_CheckPulledOutCore(u32 id)
-{
- vu32 iplCardID = *(vu32 *)((*(u16 *)HW_CHECK_DEBUGGER_SW == 0) ? HW_RED_RESERVED : HW_BOOT_CHECK_INFO_BUF);
-
- if (id != (u32)iplCardID)
- {
- OSIntrMode bak_cpsr = OS_DisableInterrupts();
- CARDi_PulledOutCallback(PXI_FIFO_TAG_CARD, CARD_PXI_COMMAND_PULLED_OUT, FALSE);
- (void)OS_RestoreInterrupts(bak_cpsr);
- }
-}
-
-ARM_FUNC static void CARDi_SendtoPxi(u32 data, u32 wait)
-{
- while (PXI_SendWordByFifo(PXI_FIFO_TAG_CARD, data, FALSE) != PXI_FIFO_SUCCESS)
- {
- SVC_WaitByLoop((u32)wait);
- }
-}