⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sianospi.cod

📁 这是mobile6.0下的DMB驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	E:\WM604\PLATFORM\SEUICBSP\SRC\DRIVERS\DMBDRV\SpiDrv\.\SianoSPI.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|dpCurSettings| [ DATA ]

  00000			 AREA	 |.data|, DATA
	 COMMON	|gt_ClntST|, 0x4

	 COMMON	|gt_ClntET|, 0x4

	 COMMON	|Li_Clnt|, 0x8

|preamble_pattern| DCB 0xa5
	DCB	0x5a
	DCB	0xe7
	DCB	0x7e
	%	4
|dpCurSettings| DCB "B", 0x0, "U", 0x0, "I", 0x0, "L", 0x0, "T", 0x0, "I", 0x0
	DCB	"N", 0x0, "T", 0x0, "E", 0x0, "S", 0x0, "T", 0x0, 0x0, 0x0
	%	40
	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	"I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, 0x0, 0x0
	%	54
	DCB	"T", 0x0, "r", 0x0, "a", 0x0, "c", 0x0, "e", 0x0, 0x0, 0x0
	%	52
	DCB	"S", 0x0, "P", 0x0, "I", 0x0, "_", 0x0, "I", 0x0, "N", 0x0
	DCB	"I", 0x0, "T", 0x0, 0x0, 0x0
	%	46
	DCB	"S", 0x0, "P", 0x0, "I", 0x0, "_", 0x0, "R", 0x0, "E", 0x0
	DCB	"A", 0x0, "D", 0x0, 0x0, 0x0
	%	46
	DCB	"S", 0x0, "P", 0x0, "I", 0x0, "_", 0x0, "W", 0x0, "R", 0x0
	DCB	"I", 0x0, "T", 0x0, "E", 0x0, 0x0, 0x0
	%	44
	DCB	"S", 0x0, "P", 0x0, "I", 0x0, "_", 0x0, "I", 0x0, "O", 0x0
	DCB	"C", 0x0, "T", 0x0, "L", 0x0, 0x0, 0x0
	%	44
	DCB	"S", 0x0, "P", 0x0, "I", 0x0, "_", 0x0, "D", 0x0, "E", 0x0
	DCB	"I", 0x0, "N", 0x0, "I", 0x0, "T", 0x0, 0x0, 0x0
	%	42
	DCB	"Z", 0x0, "O", 0x0, "N", 0x0, "E", 0x0, "_", 0x0, "F", 0x0
	DCB	"U", 0x0, "N", 0x0, "C", 0x0, "T", 0x0, "I", 0x0, "O", 0x0
	DCB	"N", 0x0, 0x0, 0x0
	%	36
	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
	%	256
	DCD	0xf
	EXPORT	|ResetEvent|
	IMPORT	|EventModify|
; File e:\wm604\public\common\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |ResetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$ResetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |ResetEvent| } ; comdat associative
|$T38825| DCD	|$L38824|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |ResetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |ResetEvent| PROC

; 174  : _inline BOOL ResetEvent(HANDLE h) {

  00000		 |$L38824|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M38822|

; 175  : 	return EventModify(h,EVENT_RESET);

  00004	e3a01002	 mov         r1, #2
  00008	eb000000	 bl          EventModify

; 176  : }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M38823|

			 ENDP  ; |ResetEvent|

	EXPORT	|SetEvent|

  00000			 AREA	 |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$SetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |SetEvent| } ; comdat associative
|$T38835| DCD	|$L38834|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |SetEvent| PROC

; 186  : _inline BOOL SetEvent(HANDLE h) {

  00000		 |$L38834|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M38832|

; 187  : 	return EventModify(h,EVENT_SET);

  00004	e3a01003	 mov         r1, #3
  00008	eb000000	 bl          EventModify

; 188  : }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M38833|

			 ENDP  ; |SetEvent|

; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\spidrv\sianospi.c

  00000			 AREA	 |.text| { |MsgFound| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$MsgFound|, PDATA, SELECTION=5, ASSOC=|.text| { |MsgFound| } ; comdat associative
|$T38845| DCD	|$L38844|
	DCD	0x40000801
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |MsgFound| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |MsgFound| PROC

; 66   : {	

  00000		 |$L38844|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M38842|

; 67   : 	PSPIDEVICEEXTENSION pSpiDevExt = context;
; 68   : 	//DBGMSG(ZONE_INFO, (TEXT("SmsSpi: MsgFound().\r\n")));
; 69   : 	if (pSpiDevExt->pBD_ReadCBFunc)

  00004	e590305c	 ldr         r3, [r0, #0x5C]
  00008	e3530000	 cmp         r3, #0

; 70   : 	{
; 71   : 		//DBGMSG(ZONE_INFO, (TEXT("SmsSpi: Calling back with message.\r\n")));
; 72   : 		pSpiDevExt->pBD_ReadCBFunc(pSpiDevExt->hBDContext, buf, (DWORD)len);

  0000c	15900068	 ldrne       r0, [r0, #0x68]
  00010	11a0e00f	 movne       lr, pc
  00014	112fff13	 bxne        r3

; 73   : 	}
; 74   : 	//DBGMSG(ZONE_INFO, (TEXT("SmsSpi: MsgFound end.\r\n")));
; 75   : 	
; 76   : }

  00018	e49de004	 ldr         lr, [sp], #4
  0001c	e12fff1e	 bx          lr
  00020		 |$M38843|

			 ENDP  ; |MsgFound|

	IMPORT	|SetEventData|
; File e:\wm604\public\common\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |smsspi_interruptHandler| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$smsspi_interruptHandler|, PDATA, SELECTION=5, ASSOC=|.text| { |smsspi_interruptHandler| } ; comdat associative
|$T38857| DCD	|$L38856|
	DCD	0x40000a01
; Function compile flags: /Ogsy
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\spidrv\sianospi.c

  00000			 AREA	 |.text| { |smsspi_interruptHandler| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |smsspi_interruptHandler| PROC

; 80   : {

  00000		 |$L38856|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M38854|
  00004	e1a04000	 mov         r4, r0

; 81   : 	PSPIDEVICEEXTENSION pSpiDevExt  = (PSPIDEVICEEXTENSION)pArg;
; 82   : 	//DBGMSG(ZONE_ERROR, (TEXT("SmsSpi: Interrupt().\r\n")));
; 83   : 	SetEventData(pSpiDevExt->transferMsgQueue, 0);

  00008	e594004c	 ldr         r0, [r4, #0x4C]
  0000c	e3a01000	 mov         r1, #0
  00010	eb000000	 bl          SetEventData

; 84   : 	SetEvent(pSpiDevExt->transferMsgQueue);

  00014	e594004c	 ldr         r0, [r4, #0x4C]
  00018	e3a01003	 mov         r1, #3
  0001c	eb000000	 bl          EventModify

; 85   : }

  00020	e8bd4010	 ldmia       sp!, {r4, lr}
  00024	e12fff1e	 bx          lr
  00028		 |$M38855|

			 ENDP  ; |smsspi_interruptHandler|

	EXPORT	|??_C@_1DE@OLMIHPOI@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAE?$AAn?$AAd?$AA?5?$AAx?$AAf?$AAe?$AAr?$AA?5?$AAe?$AAv?$AAe@| [ DATA ] ; `string'
	IMPORT	|GetEventData|
	IMPORT	|smsspi_common_transfer_msg|
	IMPORT	|WaitForSingleObject|
	IMPORT	|NKDbgPrintfW|
; File e:\wm604\public\common\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |SpiTransferThread| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$SpiTransferThread|, PDATA, SELECTION=5, ASSOC=|.text| { |SpiTransferThread| } ; comdat associative
|$T38873| DCD	|$L38872|
	DCD	0x40001701

  00000			 AREA	 |.rdata| { |??_C@_1DE@OLMIHPOI@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAE?$AAn?$AAd?$AA?5?$AAx?$AAf?$AAe?$AAr?$AA?5?$AAe?$AAv?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DE@OLMIHPOI@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAE?$AAn?$AAd?$AA?5?$AAx?$AAf?$AAe?$AAr?$AA?5?$AAe?$AAv?$AAe@| DCB "S"
	DCB	0x0, "m", 0x0, "s", 0x0, "S", 0x0, "p", 0x0, "i", 0x0, ":"
	DCB	0x0, " ", 0x0, "E", 0x0, "n", 0x0, "d", 0x0, " ", 0x0, "x"
	DCB	0x0, "f", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "e", 0x0, "v"
	DCB	0x0, "e", 0x0, "n", 0x0, "t", 0x0, ".", 0x0, 0xd, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'
; Function compile flags: /Ogsy
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\spidrv\sianospi.c

  00000			 AREA	 |.text| { |SpiTransferThread| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |SpiTransferThread| PROC

; 89   : {

  00000		 |$L38872|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M38870|
  00004	e1a04000	 mov         r4, r0
  00008	e59f5048	 ldr         r5, [pc, #0x48]
  0000c		 |$L38426|

; 90   : 	PSPIDEVICEEXTENSION pSpiDevExt  = (PSPIDEVICEEXTENSION)pArg;
; 91   : 	struct spi_msg *msg;
; 92   : 
; 93   : 	while (1)
; 94   : 	{
; 95   : 		WaitForSingleObject(pSpiDevExt->transferMsgQueue, INFINITE);

  0000c	e594004c	 ldr         r0, [r4, #0x4C]
  00010	e3e01000	 mvn         r1, #0
  00014	eb000000	 bl          WaitForSingleObject

; 96   : 		//DBGMSG(ZONE_DETAILED, (TEXT("SmsSpi: Recieved xfer event.\r\n")));
; 97   : 		msg = (struct spi_msg *)GetEventData(pSpiDevExt->transferMsgQueue);

  00018	e594004c	 ldr         r0, [r4, #0x4C]
  0001c	eb000000	 bl          GetEventData

; 98   : 		//if (msg)
; 99   : 		//	DBGMSG(ZONE_INFO, (TEXT("SmsSpi: Transfering packet, buf=0x%x, len=%d.\r\n"), msg->buf, msg->len));
; 100  : 		smsspi_common_transfer_msg(&pSpiDevExt->dev, msg, pSpiDevExt->PaddingAllowed);

  00020	e5942034	 ldr         r2, [r4, #0x34]
  00024	e1a01000	 mov         r1, r0
  00028	e1a00004	 mov         r0, r4
  0002c	eb000000	 bl          smsspi_common_transfer_msg

; 101  :         SetEvent(pSpiDevExt->WriteOperation);

  00030	e5940048	 ldr         r0, [r4, #0x48]
  00034	e3a01003	 mov         r1, #3
  00038	eb000000	 bl          EventModify

; 102  : 		DBGMSG(ZONE_DETAILED, (TEXT("SmsSpi: End xfer event.\r\n")));

  0003c	e5953440	 ldr         r3, [r5, #0x440]
  00040	e3130010	 tst         r3, #0x10
  00044	0afffff0	 beq         |$L38426|
  00048	e59f0004	 ldr         r0, [pc, #4]
  0004c	eb000000	 bl          NKDbgPrintfW

; 103  :     }

  00050	eaffffed	 b           |$L38426|
  00054		 |$L38875|
  00054	00000000	 DCD         |??_C@_1DE@OLMIHPOI@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAE?$AAn?$AAd?$AA?5?$AAx?$AAf?$AAe?$AAr?$AA?5?$AAe?$AAv?$AAe@|
  00058	00000000	 DCD         |dpCurSettings|
  0005c		 |$M38871|

			 ENDP  ; |SpiTransferThread|

	EXPORT	|GetInstance|
	EXPORT	|??_C@_1DC@DJFBBKNH@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2?$AAB?$AAu?$AAi?$AAl?$AAt?$AAI?$AAn?$AA?2?$AAS?$AAi?$AAa?$AAn@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CC@KBENDKOI@?$AAM?$AAi?$AAn?$AAi?$AAP?$AAo?$AAr?$AAt?$AAI?$AAn?$AAs?$AAt?$AAa?$AAn?$AAc?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BK@KPLOIJDF@?$AAM?$AAi?$AAn?$AAi?$AAp?$AAo?$AAr?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|RegCloseKey|
	IMPORT	|RegOpenKeyExW|
	IMPORT	|RegQueryValueExW|

  00000			 AREA	 |.text| { |GetInstance| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetInstance|, PDATA, SELECTION=5, ASSOC=|.text| { |GetInstance| } ; comdat associative
|$T38886| DCD	|$L38885|
	DCD	0x40003102

  00000			 AREA	 |.rdata| { |??_C@_1BK@KPLOIJDF@?$AAM?$AAi?$AAn?$AAi?$AAp?$AAo?$AAr?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BK@KPLOIJDF@?$AAM?$AAi?$AAn?$AAi?$AAp?$AAo?$AAr?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?$AA@| DCB "M"
	DCB	0x0, "i", 0x0, "n", 0x0, "i", 0x0, "p", 0x0, "o", 0x0, "r"
	DCB	0x0, "t", 0x0, "N", 0x0, "a", 0x0, "m", 0x0, "e", 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CC@KBENDKOI@?$AAM?$AAi?$AAn?$AAi?$AAP?$AAo?$AAr?$AAt?$AAI?$AAn?$AAs?$AAt?$AAa?$AAn?$AAc?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@KBENDKOI@?$AAM?$AAi?$AAn?$AAi?$AAP?$AAo?$AAr?$AAt?$AAI?$AAn?$AAs?$AAt?$AAa?$AAn?$AAc?$AAe?$AA?$AA@| DCB "M"
	DCB	0x0, "i", 0x0, "n", 0x0, "i", 0x0, "P", 0x0, "o", 0x0, "r"
	DCB	0x0, "t", 0x0, "I", 0x0, "n", 0x0, "s", 0x0, "t", 0x0, "a"
	DCB	0x0, "n", 0x0, "c", 0x0, "e", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DC@DJFBBKNH@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2?$AAB?$AAu?$AAi?$AAl?$AAt?$AAI?$AAn?$AA?2?$AAS?$AAi?$AAa?$AAn@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DC@DJFBBKNH@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2?$AAB?$AAu?$AAi?$AAl?$AAt?$AAI?$AAn?$AA?2?$AAS?$AAi?$AAa?$AAn@| DCB "D"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -