📄 system.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615
TTL c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\.\system.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |dpCurSettings| [ DATA ]
00000 AREA |.data|, DATA
COMMON |v_DiskCrit|, 0x14
COMMON |v_DiskList|, 0x4
COMMON |virtime|, 0x4
COMMON |multipleRdWr|, 0x2
00000 AREA |.rdata|, DATA, READONLY
|BLOCK_DRIVER_GUID| DCD 0xa4e7edda
DCW 0xe575
DCW 0x4252
DCB 0x9d
DCB 0x6b
DCB 0x41
DCB 0x95
DCB 0xd4
DCB 0x8b
DCB 0xb8
DCB 0x65
|STORE_MOUNT_GUID| DCD 0xc1115848
DCW 0x46fd
DCW 0x4976
DCB 0xbd
DCB 0xe9
DCB 0xd7
DCB 0x94
DCB 0x48
DCB 0x45
DCB 0x70
DCB 0x4
|FATFS_MOUNT_GUID| DCD 0x169e1941
DCW 0x4ce
DCW 0x4690
DCB 0x97
DCB 0xac
DCB 0x77
DCB 0x61
DCB 0x87
DCB 0xeb
DCB 0x67
DCB 0xcc
|CDFS_MOUNT_GUID| DCD 0x72d75746
DCW 0xd54a
DCW 0x4487
DCB 0xb7
DCB 0xa1
DCB 0x94
DCB 0xc
DCB 0x9a
DCB 0x3f
DCB 0x25
DCB 0x9a
|UDFS_MOUNT_GUID| DCD 0x462feda9
DCW 0xd478
DCW 0x4b00
DCB 0x86
DCB 0xbb
DCB 0x51
DCB 0xa8
DCB 0xe3
DCB 0xd1
DCB 0x8
DCB 0x90
|CDDA_MOUNT_GUID| DCD 0xba6b1343
DCW 0x7980
DCW 0x4d0c
DCB 0x92
DCB 0x90
DCB 0x76
DCB 0x2d
DCB 0x52
DCB 0x7b
DCB 0x33
DCB 0xab
|STOREMGR_DRIVER_GUID| DCD 0x14acdee6
DCW 0x5cf3
DCW 0x496b
DCB 0xb3
DCB 0x9d
DCB 0x89
DCB 0x54
DCB 0xc9
DCB 0x6d
DCB 0xf0
DCB 0x2
00000 AREA |.data|, DATA
|dpCurSettings| DCB "S", 0x0, "D", 0x0, "M", 0x0, "M", 0x0, "C", 0x0, " ", 0x0
DCB "D", 0x0, "i", 0x0, "s", 0x0, "k", 0x0, 0x0, 0x0
% 42
DCB "E", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, "s", 0x0
DCB 0x0, 0x0
% 50
DCB "W", 0x0, "a", 0x0, "r", 0x0, "n", 0x0, "i", 0x0, "n", 0x0
DCB "g", 0x0, "s", 0x0, 0x0, 0x0
% 46
DCB "F", 0x0, "u", 0x0, "n", 0x0, "c", 0x0, "t", 0x0, "i", 0x0
DCB "o", 0x0, "n", 0x0, "s", 0x0, 0x0, 0x0
% 44
DCB "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, "i", 0x0, "a", 0x0
DCB "l", 0x0, "i", 0x0, "z", 0x0, "a", 0x0, "t", 0x0, "i", 0x0
DCB "o", 0x0, "n", 0x0, 0x0, 0x0
% 34
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "D", 0x0, "i", 0x0, "s", 0x0, "k", 0x0, " ", 0x0, "I", 0x0
DCB "/", 0x0, "O", 0x0, 0x0, 0x0
% 46
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCB "U", 0x0, "n", 0x0, "d", 0x0, "e", 0x0, "f", 0x0, "i", 0x0
DCB "n", 0x0, "e", 0x0, "d", 0x0, 0x0, 0x0
% 44
DCD 0x1
EXPORT |SDMMCDiskEntry|
EXPORT |??_C@_1DI@NJBG@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAA@| [ DATA ] ; `string'
EXPORT |??_C@_1DI@BFBF@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAD@| [ DATA ] ; `string'
IMPORT |InitializeCriticalSection|
IMPORT |DeleteCriticalSection|
IMPORT |DisableThreadLibraryCalls|
IMPORT |NKDbgPrintfW|
; File c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\system.c
00000 AREA |.text| { |SDMMCDiskEntry| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SDMMCDiskEntry|, PDATA, SELECTION=5, ASSOC=|.text| { |SDMMCDiskEntry| } ; comdat associative
|$T37180| DCD |SDMMCDiskEntry|
DCD 0x40001601
00000 AREA |.rdata| { |??_C@_1DI@NJBG@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@NJBG@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAA@| DCB "S"
DCB 0x0, "D", 0x0, "M", 0x0, "M", 0x0, "C", 0x0, "-", 0x0, "-"
DCB 0x0, "D", 0x0, "L", 0x0, "L", 0x0, "_", 0x0, "P", 0x0, "R"
DCB 0x0, "O", 0x0, "C", 0x0, "E", 0x0, "S", 0x0, "S", 0x0, "_"
DCB 0x0, "A", 0x0, "T", 0x0, "T", 0x0, "A", 0x0, "C", 0x0, "H"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DI@BFBF@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAD@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@BFBF@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAD@| DCB "S"
DCB 0x0, "D", 0x0, "M", 0x0, "M", 0x0, "C", 0x0, "-", 0x0, "-"
DCB 0x0, "D", 0x0, "L", 0x0, "L", 0x0, "_", 0x0, "P", 0x0, "R"
DCB 0x0, "O", 0x0, "C", 0x0, "E", 0x0, "S", 0x0, "S", 0x0, "_"
DCB 0x0, "D", 0x0, "E", 0x0, "T", 0x0, "A", 0x0, "C", 0x0, "H"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |SDMMCDiskEntry| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SDMMCDiskEntry| PROC
; 107 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37178|
00004 e1a04000 mov r4, r0
; 108 : switch(Reason) {
00008 e3510000 cmp r1, #0
0000c 0a000007 beq |$L36921|
00010 e3510001 cmp r1, #1
00014 1a000009 bne |$L36914|
; 109 : case DLL_PROCESS_ATTACH:
; 110 : DEBUGREGISTER(DllInstance);
; 111 : InitializeCriticalSection(&v_DiskCrit);
00018 e59f0030 ldr r0, [pc, #0x30]
0001c eb000000 bl InitializeCriticalSection
; 112 : DisableThreadLibraryCalls((HMODULE) DllInstance);
00020 e1a00004 mov r0, r4
00024 eb000000 bl DisableThreadLibraryCalls
; 113 : RETAILMSG(1, (TEXT("SDMMC--DLL_PROCESS_ATTACH\r\n")));
00028 e59f0024 ldr r0, [pc, #0x24]
; 114 : return TRUE;
0002c ea000002 b |$L37177|
00030 |$L36921|
; 115 :
; 116 : case DLL_PROCESS_DETACH:
; 117 : DeleteCriticalSection(&v_DiskCrit);
00030 e59f0018 ldr r0, [pc, #0x18]
00034 eb000000 bl DeleteCriticalSection
; 118 : RETAILMSG(1, (TEXT("SDMMC--DLL_PROCESS_DETACH\r\n")));
00038 e59f000c ldr r0, [pc, #0xC]
0003c |$L37177|
0003c eb000000 bl NKDbgPrintfW
00040 |$L36914|
; 119 : break;
; 120 : }
; 121 : return TRUE;
00040 e3a00001 mov r0, #1
; 122 : }
00044 e8bd4010 ldmia sp!, {r4, lr}
00048 e12fff1e bx lr
0004c |$L37182|
0004c 00000000 DCD |??_C@_1DI@BFBF@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAD@|
00050 00000000 DCD |v_DiskCrit|
00054 00000000 DCD |??_C@_1DI@NJBG@?$AAS?$AAD?$AAM?$AAM?$AAC?$AA?9?$AA?9?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE?$AAS?$AAS?$AA_?$AAA@|
00058 |$M37179|
ENDP ; |SDMMCDiskEntry|
EXPORT |CreateDiskObject|
IMPORT |EnterCriticalSection|
IMPORT |LeaveCriticalSection|
IMPORT |LocalAlloc|
00000 AREA |.text| { |CreateDiskObject| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$CreateDiskObject|, PDATA, SELECTION=5, ASSOC=|.text| { |CreateDiskObject| } ; comdat associative
|$T37189| DCD |CreateDiskObject|
DCD 0x40001a01
; Function compile flags: /Ogsy
00000 AREA |.text| { |CreateDiskObject| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |CreateDiskObject| PROC
; 130 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37187|
; 131 : PDISK pDisk;
; 132 :
; 133 :
; 134 : pDisk = LocalAlloc(LPTR, sizeof(DISK));
00004 e3a01048 mov r1, #0x48
00008 e3a00040 mov r0, #0x40
0000c eb000000 bl LocalAlloc
00010 e1b04000 movs r4, r0
; 135 : if (pDisk != NULL) {
00014 0a00000e beq |$L36929|
; 136 : pDisk->d_OpenCount = 0;
00018 e3a00000 mov r0, #0
0001c e584003c str r0, [r4, #0x3C]
; 137 : pDisk->d_ActivePath = NULL;
00020 e5840044 str r0, [r4, #0x44]
; 138 : InitializeCriticalSection(&(pDisk->d_DiskCardCrit));
00024 e2840004 add r0, r4, #4
00028 eb000000 bl InitializeCriticalSection
; 139 : pDisk->d_DiskCardState = STATE_INITING;
; 140 : EnterCriticalSection(&v_DiskCrit);
0002c e59f002c ldr r0, [pc, #0x2C]
00030 e3a03001 mov r3, #1
00034 e584301c str r3, [r4, #0x1C]
00038 eb000000 bl EnterCriticalSection
; 141 : pDisk->d_next = v_DiskList;
0003c e59f3020 ldr r3, [pc, #0x20]
00040 e5930000 ldr r0, [r3]
00044 e5840000 str r0, [r4]
; 142 : v_DiskList = pDisk;
; 143 : LeaveCriticalSection(&v_DiskCrit);
00048 e59f0010 ldr r0, [pc, #0x10]
0004c e5834000 str r4, [r3]
00050 eb000000 bl LeaveCriticalSection
00054 |$L36929|
; 144 : }
; 145 : return pDisk;
00054 e1a00004 mov r0, r4
; 146 : }
00058 e8bd4010 ldmia sp!, {r4, lr}
0005c e12fff1e bx lr
00060 |$L37191|
00060 00000000 DCD |v_DiskCrit|
00064 00000000 DCD |v_DiskList|
00068 |$M37188|
ENDP ; |CreateDiskObject|
EXPORT |IsValidDisk|
00000 AREA |.text| { |IsValidDisk| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$IsValidDisk|, PDATA, SELECTION=5, ASSOC=|.text| { |IsValidDisk| } ; comdat associative
|$T37204| DCD |IsValidDisk|
DCD 0x40001601
; Function compile flags: /Ogsy
00000 AREA |.text| { |IsValidDisk| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |IsValidDisk| PROC
; 158 : {
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M37202|
00004 e1a04000 mov r4, r0
; 159 : PDISK pd;
; 160 : bool ret = FALSE;
; 161 :
; 162 :
; 163 : EnterCriticalSection(&v_DiskCrit);
00008 e59f0040 ldr r0, [pc, #0x40]
0000c e3a05000 mov r5, #0
00010 eb000000 bl EnterCriticalSection
; 164 : pd = v_DiskList;
00014 e59f3038 ldr r3, [pc, #0x38]
00018 e5930000 ldr r0, [r3]
0001c ea000002 b |$L37201|
00020 |$L36937|
; 166 : if (pd == pDisk) {
00020 e1500004 cmp r0, r4
00024 0a000003 beq |$L37195|
; 168 : break;
; 169 : }
; 170 : pd = pd->d_next;
00028 e5900000 ldr r0, [r0]
0002c |$L37201|
0002c e3500000 cmp r0, #0
; 165 : while (pd) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -