📄 system.cod
字号:
00030 1afffffa bne |$L36937|
; 166 : if (pd == pDisk) {
00034 ea000000 b |$L36938|
00038 |$L37195|
; 167 : ret = TRUE;
00038 e3a05001 mov r5, #1
0003c |$L36938|
; 171 : }
; 172 : LeaveCriticalSection(&v_DiskCrit);
0003c e59f000c ldr r0, [pc, #0xC]
00040 eb000000 bl LeaveCriticalSection
; 173 : return ret;
00044 e20500ff and r0, r5, #0xFF
; 174 : }
00048 e8bd4030 ldmia sp!, {r4, r5, lr}
0004c e12fff1e bx lr
00050 |$L37206|
00050 00000000 DCD |v_DiskCrit|
00054 00000000 DCD |v_DiskList|
00058 |$M37203|
ENDP ; |IsValidDisk|
EXPORT |GetDiskStateError|
EXPORT |??_C@_1DI@KHFL@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAG?$AAe?$AAt?$AAD?$AAi?$AAs?$AAk?$AAS?$AAt?$AAa?$AAt?$AAe@| [ DATA ] ; `string'
00000 AREA |.text| { |GetDiskStateError| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$GetDiskStateError|, PDATA, SELECTION=5, ASSOC=|.text| { |GetDiskStateError| } ; comdat associative
|$T37213| DCD |GetDiskStateError|
DCD 0x40001001
00000 AREA |.rdata| { |??_C@_1DI@KHFL@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAG?$AAe?$AAt?$AAD?$AAi?$AAs?$AAk?$AAS?$AAt?$AAa?$AAt?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@KHFL@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAG?$AAe?$AAt?$AAD?$AAi?$AAs?$AAk?$AAS?$AAt?$AAa?$AAt?$AAe@| DCB "s"
DCB 0x0, "y", 0x0, "s", 0x0, "t", 0x0, "e", 0x0, "m", 0x0, "-"
DCB 0x0, "-", 0x0, "G", 0x0, "e", 0x0, "t", 0x0, "D", 0x0, "i"
DCB 0x0, "s", 0x0, "k", 0x0, "S", 0x0, "t", 0x0, "a", 0x0, "t"
DCB 0x0, "e", 0x0, "E", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |GetDiskStateError| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |GetDiskStateError| PROC
; 181 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37211|
00004 e1a04000 mov r4, r0
; 182 : RETAILMSG(1, (TEXT("system--GetDiskStateError\r\n")));
00008 e59f002c ldr r0, [pc, #0x2C]
0000c eb000000 bl NKDbgPrintfW
; 183 : #ifdef DEBUG1
; 184 : LPTSTR lpState;
; 185 : switch (DiskState) {
; 186 : case STATE_INITING:lpState = TEXT("STATE_INITING");break;
; 187 : case STATE_CLOSED:lpState = TEXT("STATE_CLOSED");break;
; 188 : case STATE_OPENED:lpState = TEXT("STATE_OPENED");break;
; 189 : case STATE_DEAD:lpState = TEXT("STATE_DEAD");break;
; 190 : case STATE_REMOVED:lpState = TEXT("STATE_REMOVED");break;
; 191 : default:lpState = TEXT("Unknown");break;
; 192 : }
; 193 : RETAILMSG(1, (TEXT("MmcDISK:GetDiskStateError: State of disk is %s=%d\r\n"), lpState, DiskState));
; 194 : #endif
; 195 :
; 196 : switch (DiskState) {
00010 e3540004 cmp r4, #4
00014 0a000005 beq |$L36948|
00018 e3540005 cmp r4, #5
; 202 : }
; 203 : return ERROR_GEN_FAILURE;
0001c 13a0001f movne r0, #0x1F
; 204 : }
00020 18bd4010 ldmneia sp!, {r4, lr}
; 199 :
; 200 : case STATE_REMOVED:
; 201 : return DISK_REMOVED_ERROR;
00024 03a00014 moveq r0, #0x14
; 204 : }
00028 08bd4010 ldmeqia sp!, {r4, lr}
0002c e12fff1e bx lr
00030 |$L36948|
; 197 : case STATE_DEAD:
; 198 : return DISK_DEAD_ERROR;
00030 e3a00015 mov r0, #0x15
; 204 : }
00034 e8bd4010 ldmia sp!, {r4, lr}
00038 e12fff1e bx lr
0003c |$L37215|
0003c 00000000 DCD |??_C@_1DI@KHFL@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAG?$AAe?$AAt?$AAD?$AAi?$AAs?$AAk?$AAS?$AAt?$AAa?$AAt?$AAe@|
00040 |$M37212|
ENDP ; |GetDiskStateError|
EXPORT |mmcinit|
EXPORT |DSK_Init|
EXPORT |??_C@_1CI@BHOK@?$AAM?$AAm?$AAc?$AAD?$AAI?$AAS?$AAK?$AA?3?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |DSK_Init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Init|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Init| } ; comdat associative
|$T37222| DCD |DSK_Init|
DCD 0x40000901
00000 AREA |.rdata| { |??_C@_1CI@BHOK@?$AAM?$AAm?$AAc?$AAD?$AAI?$AAS?$AAK?$AA?3?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@BHOK@?$AAM?$AAm?$AAc?$AAD?$AAI?$AAS?$AAK?$AA?3?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?$AN?$AA?6?$AA?$AA@| DCB "M"
DCB 0x0, "m", 0x0, "c", 0x0, "D", 0x0, "I", 0x0, "S", 0x0, "K"
DCB 0x0, ":", 0x0, " ", 0x0, "D", 0x0, "S", 0x0, "K", 0x0, "_"
DCB 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Init| PROC
; 227 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37220|
00004 e1a04000 mov r4, r0
; 228 :
; 229 :
; 230 :
; 231 :
; 232 :
; 233 :
; 234 :
; 235 : RETAILMSG(1, (TEXT("MmcDISK: DSK_Init\r\n")));
00008 e59f0010 ldr r0, [pc, #0x10]
0000c eb000000 bl NKDbgPrintfW
; 236 :
; 237 : return (DWORD)mmcinit((LPTSTR)dwContext);
00010 e1a00004 mov r0, r4
00014 eb000000 bl mmcinit
; 238 : #if 0
; 239 : a = (DWORD)mmcinit((LPTSTR)dwContext);
; 240 : mmc_read(0, 0, buf, 1);
; 241 :
; 242 : return a;
; 243 : #endif
; 244 : }
00018 e8bd4010 ldmia sp!, {r4, lr}
0001c e12fff1e bx lr
00020 |$L37224|
00020 00000000 DCD |??_C@_1CI@BHOK@?$AAM?$AAm?$AAc?$AAD?$AAI?$AAS?$AAK?$AA?3?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?$AN?$AA?6?$AA?$AA@|
00024 |$M37221|
ENDP ; |DSK_Init|
EXPORT |DSK_Close|
00000 AREA |.text| { |DSK_Close| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Close|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Close| } ; comdat associative
|$T37231| DCD |DSK_Close|
DCD 0x40001701
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Close| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Close| PROC
; 251 : {
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M37229|
00004 e1a05000 mov r5, r0
; 252 :
; 253 : bool bClose = TRUE;
; 254 : PDISK pDisk = (PDISK)Handle;
; 255 :
; 256 :
; 257 : DEBUGMSG(ZONE_IO, (TEXT("MmcDISK: DSK_Close\r\n")));
; 258 :
; 259 : if (!IsValidDisk(pDisk)) {
00008 eb000000 bl IsValidDisk
0000c e3500000 cmp r0, #0
; 260 : return FALSE;
00010 03a00000 moveq r0, #0
; 274 : }
00014 08bd4030 ldmeqia sp!, {r4, r5, lr}
00018 012fff1e bxeq lr
; 261 : }
; 262 :
; 263 : if (pDisk->d_DiskCardState == STATE_OPENED) {
0001c e595001c ldr r0, [r5, #0x1C]
00020 e3500003 cmp r0, #3
00024 1a000009 bne |$L36971|
; 264 : EnterCriticalSection(&(pDisk->d_DiskCardCrit));
00028 e2854004 add r4, r5, #4
0002c e1a00004 mov r0, r4
00030 eb000000 bl EnterCriticalSection
; 265 : pDisk->d_OpenCount--;
00034 e595303c ldr r3, [r5, #0x3C]
00038 e2530001 subs r0, r3, #1
0003c e585003c str r0, [r5, #0x3C]
; 266 : if (pDisk->d_OpenCount == 0) {
; 267 : pDisk->d_DiskCardState = STATE_CLOSED;
00040 03a00002 moveq r0, #2
00044 0585001c streq r0, [r5, #0x1C]
; 268 : } else {
; 269 : bClose = FALSE;
; 270 : }
; 271 : LeaveCriticalSection(&(pDisk->d_DiskCardCrit));
00048 e1a00004 mov r0, r4
0004c eb000000 bl LeaveCriticalSection
00050 |$L36971|
; 272 : }
; 273 : return TRUE;
00050 e3a00001 mov r0, #1
; 274 : }
00054 e8bd4030 ldmia sp!, {r4, r5, lr}
00058 e12fff1e bx lr
0005c |$M37230|
ENDP ; |DSK_Close|
EXPORT |DSK_Deinit|
EXPORT |??_C@_1CK@CKAG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?$AN?$AA?6@| [ DATA ] ; `string'
IMPORT |CloseDisk|
00000 AREA |.text| { |DSK_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Deinit|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Deinit| } ; comdat associative
|$T37239| DCD |DSK_Deinit|
DCD 0x40000c01
00000 AREA |.rdata| { |??_C@_1CK@CKAG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?$AN?$AA?6@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@CKAG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?$AN?$AA?6@| DCB "s"
DCB 0x0, "y", 0x0, "s", 0x0, "t", 0x0, "e", 0x0, "m", 0x0, "-"
DCB 0x0, "-", 0x0, "D", 0x0, "S", 0x0, "K", 0x0, "_", 0x0, "D"
DCB 0x0, "e", 0x0, "i", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Deinit| PROC
; 285 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37237|
00004 e1a04000 mov r4, r0
; 286 : PDISK pDisk = (PDISK)dwContext;
; 287 :
; 288 : RETAILMSG(1, (TEXT("system--DSK_Deinit\r\n")));
00008 e59f001c ldr r0, [pc, #0x1C]
0000c eb000000 bl NKDbgPrintfW
; 289 : DSK_Close(dwContext);
00010 e1a00004 mov r0, r4
00014 eb000000 bl DSK_Close
; 290 : CloseDisk(pDisk);
00018 e1a00004 mov r0, r4
0001c eb000000 bl CloseDisk
; 291 : return TRUE;
00020 e3a00001 mov r0, #1
; 292 : }
00024 e8bd4010 ldmia sp!, {r4, lr}
00028 e12fff1e bx lr
0002c |$L37241|
0002c 00000000 DCD |??_C@_1CK@CKAG@?$AAs?$AAy?$AAs?$AAt?$AAe?$AAm?$AA?9?$AA?9?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?$AN?$AA?6@|
00030 |$M37238|
ENDP ; |DSK_Deinit|
EXPORT |DSK_Open|
IMPORT |SetLastError|
00000 AREA |.text| { |DSK_Open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Open|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Open| } ; comdat associative
|$T37249| DCD |DSK_Open|
DCD 0x40001d01
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Open| PROC
; 303 : {
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M37247|
00004 e1a05000 mov r5, r0
; 304 : PDISK pDisk = (PDISK)dwData;
; 305 : DWORD rett = 0;
; 306 :
; 307 :
; 308 :
; 309 : if (IsValidDisk(pDisk) == FALSE) {
00008 eb000000 bl IsValidDisk
0000c e3500000 cmp r0, #0
; 310 : DEBUGMSG(ZONE_IO, (TEXT("MmcDisk DSK_Open - Passed invalid disk handle\r\n")));
; 311 : return rett;
00010 0a000006 beq |$L37246|
; 312 : }
; 313 :
; 314 : if ((pDisk->d_DiskCardState != STATE_CLOSED) &&
; 315 : (pDisk->d_DiskCardState != STATE_OPENED)) {
00014 e595001c ldr r0, [r5, #0x1C]
00018 e3500002 cmp r0, #2
0001c 0a000005 beq |$L36994|
00020 e3500003 cmp r0, #3
00024 0a000003 beq |$L36994|
; 316 : SetLastError(GetDiskStateError(pDisk->d_DiskCardState));
00028 eb000000 bl GetDiskStateError
0002c eb000000 bl SetLastError
00030 |$L37246|
; 317 : return rett;
00030 e3a05000 mov r5, #0
00034 ea00000b b |$L36988|
00038 |$L36994|
; 318 : }
; 319 :
; 320 : EnterCriticalSection(&(pDisk->d_DiskCardCrit));
00038 e2854004 add r4, r5, #4
0003c e1a00004 mov r0, r4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -