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

📄 sianodma.cod

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

	TTL	E:\WM604\PLATFORM\SEUICBSP\SRC\DRIVERS\DMBDRV\DmaPxaXXX\.\SianoDMA.c
	CODE32

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

	EXPORT	|dpCurSettings| [ DATA ]

  00000			 AREA	 |.data|, DATA
|dpCurSettings| DCB "P", 0x0, "x", 0x0, "a", 0x0, " ", 0x0, "D", 0x0, "m", 0x0
	DCB	"a", 0x0, " ", 0x0, "D", 0x0, "r", 0x0, "i", 0x0, "v", 0x0
	DCB	"e", 0x0, "r", 0x0, 0x0, 0x0
	%	34
	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	"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	"T", 0x0, "e", 0x0, "m", 0x0, "p", 0x0, "o", 0x0, "r", 0x0
	DCB	"a", 0x0, "r", 0x0, "y", 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	0x9
	EXPORT	|SetEvent|
	IMPORT	|EventModify|
; File e:\wm604\public\common\sdk\inc\kfuncs.h

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

  00000			 AREA	 |.pdata$$SetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |SetEvent| } ; comdat associative
|$T38450| DCD	|$L38449|
	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		 |$L38449|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M38447|

; 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		 |$M38448|

			 ENDP  ; |SetEvent|

	IMPORT	|PhyDmaSendDescriptor|
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\dmapxaxxx\sianodma.c

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

  00000			 AREA	 |.pdata$$sendDmaTransactionFromDb|, PDATA, SELECTION=5, ASSOC=|.text| { |sendDmaTransactionFromDb| } ; comdat associative
|$T38459| DCD	|$L38458|
	DCD	0x40000a01
; Function compile flags: /Ogsy

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

  00000		 |sendDmaTransactionFromDb| PROC

; 26   : {

  00000		 |$L38458|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M38456|

; 27   : 	DMA_DATABASE_ST* dataBase;
; 28   : 
; 29   : 	dataBase = ((DMA_DRV_PARAMS_ST*)dev)->dataBase;

  00004	e5902020	 ldr         r2, [r0, #0x20]

; 30   : 
; 31   : 	if (dataBase->firstMsg != dataBase->lastMsg)

  00008	e5921000	 ldr         r1, [r2]
  0000c	e5923004	 ldr         r3, [r2, #4]
  00010	e1510003	 cmp         r1, r3

; 32   : 	{ //We have a transaction in the database
; 33   : 		PhyDmaSendDescriptor(	(DMA_DRV_PARAMS_ST*)dev, 
; 34   : 								&dataBase->transactions[dataBase->firstMsg]);

  00014	10823201	 addne       r3, r2, r1, lsl #4
  00018	12831008	 addne       r1, r3, #8
  0001c	1b000000	 blne        PhyDmaSendDescriptor

; 35   : 	}
; 36   : 
; 37   : }

  00020	e49de004	 ldr         lr, [sp], #4
  00024	e12fff1e	 bx          lr
  00028		 |$M38457|

			 ENDP  ; |sendDmaTransactionFromDb|

	IMPORT	|ReleaseSemaphore|
	IMPORT	|WaitForSingleObject|

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

  00000			 AREA	 |.pdata$$addDmaTransactionToDb|, PDATA, SELECTION=5, ASSOC=|.text| { |addDmaTransactionToDb| } ; comdat associative
|$T38480| DCD	|$L38479|
	DCD	0x40003a02
; Function compile flags: /Ogsy

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

  00000		 |addDmaTransactionToDb| PROC

; 44   : {

  00000		 |$L38479|
  00000	e92d47f0	 stmdb       sp!, {r4 - r10, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M38477|
  00008	e1a04003	 mov         r4, r3
  0000c	e1a09002	 mov         r9, r2
  00010	e1a0a001	 mov         r10, r1
  00014	e1a05000	 mov         r5, r0

; 45   : 	DMA_DATABASE_ST*	dataBase;
; 46   : 	BOOL				sendNow;
; 47   : 	DWORD				status;
; 48   : 
; 49   : 	dataBase = ((DMA_DRV_PARAMS_ST*)dev)->dataBase;
; 50   : 
; 51   : 	WaitForSingleObject(((DMA_DRV_PARAMS_ST*)dev)->databaseSemaphore, INFINITE);

  00018	e5950028	 ldr         r0, [r5, #0x28]
  0001c	e5956020	 ldr         r6, [r5, #0x20]
  00020	e3e01000	 mvn         r1, #0
  00024	eb000000	 bl          WaitForSingleObject

; 52   : 	if (dataBase->firstMsg == dataBase->lastMsg)

  00028	e5960004	 ldr         r0, [r6, #4]

; 53   : 		sendNow = TRUE;
; 54   : 	else
; 55   : 		sendNow = FALSE;
; 56   : 
; 57   : 	if (dataBase->firstMsg == (dataBase->lastMsg + 1) % MAX_NUM_OF_WAITING_TRANSACTIONS)

  0002c	e59f80b0	 ldr         r8, [pc, #0xB0]
  00030	e596e000	 ldr         lr, [r6]
  00034	e2801001	 add         r1, r0, #1
  00038	e0832891	 umull       r2, r3, r1, r8
  0003c	e15e0000	 cmp         lr, r0
  00040	e1a031a3	 mov         r3, r3, lsr #3
  00044	e0833103	 add         r3, r3, r3, lsl #2
  00048	e0413083	 sub         r3, r1, r3, lsl #1
  0004c	03a07001	 moveq       r7, #1
  00050	13a07000	 movne       r7, #0
  00054	e15e0003	 cmp         lr, r3

; 58   : 	{
; 59   : 		return FALSE;

  00058	03a00000	 moveq       r0, #0
  0005c	0a00001d	 beq         |$L38283|

; 60   : 	}
; 61   : 	dataBase->transactions[dataBase->lastMsg].desc = desc;

  00060	e0863200	 add         r3, r6, r0, lsl #4
  00064	e583a008	 str         r10, [r3, #8]

; 62   : 	dataBase->transactions[dataBase->lastMsg].callBack = callBack;

  00068	e5963004	 ldr         r3, [r6, #4]

; 63   : 	dataBase->transactions[dataBase->lastMsg].transactionId = transactionId;
; 64   : 	dataBase->lastMsg = (dataBase->lastMsg + 1) % MAX_NUM_OF_WAITING_TRANSACTIONS;		
; 65   : 	ReleaseSemaphore(((DMA_DRV_PARAMS_ST*)dev)->databaseSemaphore, 1, &status);

  0006c	e28d2000	 add         r2, sp, #0
  00070	e3a01001	 mov         r1, #1
  00074	e0863203	 add         r3, r6, r3, lsl #4
  00078	e5839010	 str         r9, [r3, #0x10]
  0007c	e5963004	 ldr         r3, [r6, #4]
  00080	e0863203	 add         r3, r6, r3, lsl #4
  00084	e5834014	 str         r4, [r3, #0x14]
  00088	e5963004	 ldr         r3, [r6, #4]
  0008c	e2834001	 add         r4, r3, #1
  00090	e083e894	 umull       lr, r3, r4, r8
  00094	e1a031a3	 mov         r3, r3, lsr #3
  00098	e0833103	 add         r3, r3, r3, lsl #2
  0009c	e0443083	 sub         r3, r4, r3, lsl #1
  000a0	e5863004	 str         r3, [r6, #4]
  000a4	e5950028	 ldr         r0, [r5, #0x28]
  000a8	eb000000	 bl          ReleaseSemaphore

; 66   : 	if (sendNow == TRUE)

  000ac	e3570001	 cmp         r7, #1
  000b0	1a000007	 bne         |$L38466|

; 67   : 		sendDmaTransactionFromDb(dev);

  000b4	e5952020	 ldr         r2, [r5, #0x20]
  000b8	e5921000	 ldr         r1, [r2]
  000bc	e5923004	 ldr         r3, [r2, #4]
  000c0	e1510003	 cmp         r1, r3
  000c4	10823201	 addne       r3, r2, r1, lsl #4
  000c8	12831008	 addne       r1, r3, #8
  000cc	11a00005	 movne       r0, r5
  000d0	1b000000	 blne        PhyDmaSendDescriptor
  000d4		 |$L38466|

; 68   : 	return TRUE;

  000d4	e3a00001	 mov         r0, #1
  000d8		 |$L38283|

; 69   : }

  000d8	e28dd004	 add         sp, sp, #4
  000dc	e8bd47f0	 ldmia       sp!, {r4 - r10, lr}
  000e0	e12fff1e	 bx          lr
  000e4		 |$L38482|
  000e4	cccccccd	 DCD         0xcccccccd
  000e8		 |$M38478|

			 ENDP  ; |addDmaTransactionToDb|

	EXPORT	|DmaIst|
	EXPORT	|??_C@_1HA@NJLDGKHM@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAP?$AAx?$AAa?$AAD?$AAM?$AAA?$AA?0?$AA?5?$AAD?$AAm?$AAa?$AAI?$AAs?$AAt@| [ DATA ] ; `string'
	IMPORT	|LocalFree|
	IMPORT	|PhyDmaIntHandler|
	IMPORT	|NKDbgPrintfW|

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

  00000			 AREA	 |.pdata$$DmaIst|, PDATA, SELECTION=5, ASSOC=|.text| { |DmaIst| } ; comdat associative
|$T38506| DCD	|$L38505|
	DCD	0x40004d02

  00000			 AREA	 |.rdata| { |??_C@_1HA@NJLDGKHM@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAP?$AAx?$AAa?$AAD?$AAM?$AAA?$AA?0?$AA?5?$AAD?$AAm?$AAa?$AAI?$AAs?$AAt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HA@NJLDGKHM@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAP?$AAx?$AAa?$AAD?$AAM?$AAA?$AA?0?$AA?5?$AAD?$AAm?$AAa?$AAI?$AAs?$AAt@| DCB "S"
	DCB	0x0, "i", 0x0, "a", 0x0, "n", 0x0, "o", 0x0, " ", 0x0, "P"
	DCB	0x0, "x", 0x0, "a", 0x0, "D", 0x0, "M", 0x0, "A", 0x0, ","
	DCB	0x0, " ", 0x0, "D", 0x0, "m", 0x0, "a", 0x0, "I", 0x0, "s"
	DCB	0x0, "t", 0x0, "(", 0x0, ")", 0x0, " ", 0x0, "-", 0x0, " "
	DCB	0x0, "B", 0x0, "a", 0x0, "d", 0x0, " ", 0x0, "s", 0x0, "t"
	DCB	0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "a"
	DCB	0x0, "f", 0x0, "t", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "D"
	DCB	0x0, "M", 0x0, "A", 0x0, " ", 0x0, "t", 0x0, "r", 0x0, "a"
	DCB	0x0, "n", 0x0, "s", 0x0, "f", 0x0, "e", 0x0, "r", 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'
; Function compile flags: /Ogsy

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

  00000		 |DmaIst| PROC

; 79   : {

⌨️ 快捷键说明

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