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

📄 dvdioctl.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 4 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\dvdioctl.cpp
	CODE32

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


  00000			 AREA	 |.data|, DATA
|rkret|	DCD	0x8000000
	DCD	0x10000000
	DCD	0xc000000
	DCD	0xc000000
	DCD	0xc000000
	DCD	0x0
	DCD	0x0
	DCD	0x0
	DCD	0x8000000
	EXPORT	|?EndSwap@@YAKK@Z|			; EndSwap
; File d:\wince500\platform\smdk2440\drivers\atapi\dvdioctl.cpp

  00000			 AREA	 |.text| { |?EndSwap@@YAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?EndSwap@@YAKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?EndSwap@@YAKK@Z| } ; comdat associative
|$T32356| DCD	|$L32355|
	DCD	0x40000700
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?EndSwap@@YAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?EndSwap@@YAKK@Z| PROC		; EndSwap

; 34   : {

  00000		 |$L32355|
  00000		 |$M32353|

; 35   :     register DWORD dwResult;
; 36   :     dwResult = (dwInput << 24) | ((dwInput & 0xff00) << 8) | ((dwInput & 0xff0000) >> 8) | (dwInput >> 24);
; 37   :     return(dwResult);

  00000	e2003cff	 and         r3, r0, #0xFF, 24
  00004	e1833800	 orr         r3, r3, r0, lsl #16
  00008	e20028ff	 and         r2, r0, #0xFF, 16
  0000c	e1a01403	 mov         r1, r3, lsl #8
  00010	e1823820	 orr         r3, r2, r0, lsr #16
  00014	e1810423	 orr         r0, r1, r3, lsr #8

; 38   : }

  00018	e12fff1e	 bx          lr
  0001c		 |$M32354|

			 ENDP  ; |?EndSwap@@YAKK@Z|, EndSwap

	EXPORT	|?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| ; DVDSetupReadTitleKey

  00000			 AREA	 |.text| { |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| } ; comdat associative
|$T32378| DCD	|$L32377|
	DCD	0x40002701
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z| PROC ; DVDSetupReadTitleKey

; 47   : {

  00000		 |$L32377|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004		 |$M32375|
  00004	e1a0e003	 mov         lr, r3
  00008	e1a07000	 mov         r7, r0

; 48   :     DWORD dwRet;
; 49   :     PRKCDB pcdb = (PRKCDB)(pCmdPkt);
; 50   : 
; 51   :     pcdb->OpCode = DVDOP_REPORT_KEY;

  0000c	e3a030a4	 mov         r3, #0xA4

; 52   :     pcdb->KeyFmt = (bAgid << 6) | bKeyType;
; 53   :     pcdb->Lun = 0;
; 54   : 
; 55   :     if (bKeyType >= (sizeof(rkret) / sizeof(DWORD))) {

  00010	e3510009	 cmp         r1, #9
  00014	e5c73000	 strb        r3, [r7]

; 56   :         dwRet = 0;
; 57   :     }
; 58   :     else {
; 59   :         dwRet = rkret[bKeyType];

  00018	359f3078	 ldrcc       r3, [pc, #0x78]
  0001c	e1812302	 orr         r2, r1, r2, lsl #6
  00020	e3a09000	 mov         r9, #0
  00024	e5c7200a	 strb        r2, [r7, #0xA]
  00028	e5c79001	 strb        r9, [r7, #1]
  0002c	23a08000	 movcs       r8, #0
  00030	37938101	 ldrcc       r8, [r3, +r1, lsl #2]

; 60   :     }
; 61   :     *(PDWORD)(&pcdb->Reserved) = dwRet;
; 62   : 
; 63   :     pcdb->LBA = EndSwap(dwLBA);

  00034	e20e3cff	 and         r3, lr, #0xFF, 24
  00038	e183380e	 orr         r3, r3, lr, lsl #16
  0003c	e20e28ff	 and         r2, lr, #0xFF, 16
  00040	e1a01403	 mov         r1, r3, lsl #8
  00044	e182382e	 orr         r3, r2, lr, lsr #16
  00048	e1815423	 orr         r5, r1, r3, lsr #8

; 64   :     pcdb->NACA = 0;
; 65   : 
; 66   :     return (EndSwap(dwRet));

  0004c	e20838ff	 and         r3, r8, #0xFF, 16
  00050	e1833828	 orr         r3, r3, r8, lsr #16
  00054	e1a06825	 mov         r6, r5, lsr #16
  00058	e2082cff	 and         r2, r8, #0xFF, 24
  0005c	e1a04423	 mov         r4, r3, lsr #8
  00060	e1a00828	 mov         r0, r8, lsr #16
  00064	e1823808	 orr         r3, r2, r8, lsl #16
  00068	e1a01426	 mov         r1, r6, lsr #8
  0006c	e1a0e425	 mov         lr, r5, lsr #8
  00070	e1c700b8	 strh        r0, [r7, #8]
  00074	e1840403	 orr         r0, r4, r3, lsl #8
  00078	e5c71005	 strb        r1, [r7, #5]
  0007c	e1c780b6	 strh        r8, [r7, #6]
  00080	e5c75002	 strb        r5, [r7, #2]
  00084	e5c7e003	 strb        lr, [r7, #3]
  00088	e5c76004	 strb        r6, [r7, #4]
  0008c	e5c7900b	 strb        r9, [r7, #0xB]

; 67   : }

  00090	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  00094	e12fff1e	 bx          lr
  00098		 |$L32380|
  00098	00000000	 DCD         |rkret|
  0009c		 |$M32376|

			 ENDP  ; |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|, DVDSetupReadTitleKey

	EXPORT	|?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| ; DVDSetupReadDiscKey

  00000			 AREA	 |.text| { |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| } ; comdat associative
|$T32390| DCD	|$L32389|
	DCD	0x40001601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z| PROC ; DVDSetupReadDiscKey

; 74   : {

  00000		 |$L32389|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32387|

; 75   :     PRDVDCDB pcdb = (PRDVDCDB)(pCmdPkt);
; 76   : 
; 77   :     pcdb->OpCode = DVDOP_READ_DVD_STRUC;

  00004	e3a030ad	 mov         r3, #0xAD

; 78   : 
; 79   :     pcdb->Lun = 0;
; 80   :     *((DWORD *)&pcdb->RMDLBA) = 0;
; 81   :     pcdb->Layer = 0;
; 82   :     pcdb->Format = DVDSTRUC_FMT_DISCKEY;
; 83   :     pcdb->Len = (USHORT)(sizeof (RKFMT_DISC) << 8 | sizeof (RKFMT_DISC) >>8);

  00008	e5c03000	 strb        r3, [r0]
  0000c	e3a03000	 mov         r3, #0
  00010	e3a02002	 mov         r2, #2
  00014	e3a0e008	 mov         lr, #8
  00018	e3a04004	 mov         r4, #4
  0001c	e5c03001	 strb        r3, [r0, #1]
  00020	e5c03002	 strb        r3, [r0, #2]
  00024	e5c03003	 strb        r3, [r0, #3]
  00028	e5c03004	 strb        r3, [r0, #4]
  0002c	e5c03005	 strb        r3, [r0, #5]
  00030	e5c03006	 strb        r3, [r0, #6]

; 84   :     pcdb->agid = bAgid;
; 85   :     pcdb->NACA = 0;

  00034	e5c0300b	 strb        r3, [r0, #0xB]
  00038	e5c02007	 strb        r2, [r0, #7]
  0003c	e5c0e008	 strb        lr, [r0, #8]
  00040	e5c04009	 strb        r4, [r0, #9]
  00044	e5c0100a	 strb        r1, [r0, #0xA]

; 86   : 
; 87   :     return (sizeof (RKFMT_DISC));

  00048	e3a00b02	 mov         r0, #2, 22
  0004c	e3800004	 orr         r0, r0, #4

; 88   : }

  00050	e8bd4010	 ldmia       sp!, {r4, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$M32388|

			 ENDP  ; |?DVDSetupReadDiscKey@@YAKPAU_ATAPI_COMMAND_PACKET@@E@Z|, DVDSetupReadDiscKey

	EXPORT	|?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| ; DVDSetupReadKey

  00000			 AREA	 |.text| { |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| } ; comdat associative
|$T32409| DCD	|$L32408|
	DCD	0x40004501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z| PROC ; DVDSetupReadKey

; 95   : {

  00000		 |$L32408|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004		 |$M32406|
  00004	e1a06001	 mov         r6, r1
  00008	e1a07000	 mov         r7, r0

; 96   :     DWORD dwRet = 0;
; 97   : 
; 98   :     switch (pKey->KeyType) {

  0000c	e5d6400c	 ldrb        r4, [r6, #0xC]
  00010	e5d6300d	 ldrb        r3, [r6, #0xD]
  00014	e5d6200e	 ldrb        r2, [r6, #0xE]
  00018	e5d6e00f	 ldrb        lr, [r6, #0xF]
  0001c	e1843403	 orr         r3, r4, r3, lsl #8
  00020	e1833802	 orr         r3, r3, r2, lsl #16
  00024	e1838c0e	 orr         r8, r3, lr, lsl #24

; 102  :         break;
; 103  :     case DvdDriveKey:
; 104  :         dwRet = DVDSetupReadDiscKey(pCmdPkt, (BYTE)((pKey->SessionId) << 6));
; 105  :         break;
; 106  :     default:
; 107  :         dwRet = DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType),
; 108  :            (BYTE)pKey->SessionId, 0);

  00028	e5d63009	 ldrb        r3, [r6, #9]
  0002c	e3580004	 cmp         r8, #4
  00030	0a000023	 beq         |$L32130|
  00034	e3580080	 cmp         r8, #0x80
  00038	15d6e008	 ldrneb      lr, [r6, #8]
  0003c	e5d6200a	 ldrb        r2, [r6, #0xA]
  00040	e5d6100b	 ldrb        r1, [r6, #0xB]
  00044	118e3403	 orrne       r3, lr, r3, lsl #8
  00048	11833802	 orrne       r3, r3, r2, lsl #16
  0004c	11833c01	 orrne       r3, r3, r1, lsl #24
  00050	120320ff	 andne       r2, r3, #0xFF
  00054	13a03000	 movne       r3, #0
  00058	1a000028	 bne         |$L32405|
  0005c	e5d60008	 ldrb        r0, [r6, #8]
  00060	e3a0e004	 mov         lr, #4
  00064	e3a04000	 mov         r4, #0
  00068	e1803403	 orr         r3, r0, r3, lsl #8
  0006c	e1833802	 orr         r3, r3, r2, lsl #16
  00070	e3a00008	 mov         r0, #8
  00074	e1833c01	 orr         r3, r3, r1, lsl #24
  00078	e5c70008	 strb        r0, [r7, #8]
  0007c	e1a03303	 mov         r3, r3, lsl #6
  00080	e3a020ad	 mov         r2, #0xAD
  00084	e3a01002	 mov         r1, #2
  00088	e3a00b02	 mov         r0, #2, 22
  0008c	e5c7300a	 strb        r3, [r7, #0xA]
  00090	e5c72000	 strb        r2, [r7]
  00094	e5c74001	 strb        r4, [r7, #1]
  00098	e5c74002	 strb        r4, [r7, #2]
  0009c	e5c74003	 strb        r4, [r7, #3]
  000a0	e5c74004	 strb        r4, [r7, #4]
  000a4	e5c74005	 strb        r4, [r7, #5]
  000a8	e5c74006	 strb        r4, [r7, #6]
  000ac	e5c71007	 strb        r1, [r7, #7]
  000b0	e5c7e009	 strb        lr, [r7, #9]
  000b4	e5c7400b	 strb        r4, [r7, #0xB]
  000b8	e3800004	 orr         r0, r0, #4

; 109  :     }
; 110  : 
; 111  :     return dwRet;
; 112  : }

  000bc	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  000c0	e12fff1e	 bx          lr
  000c4		 |$L32130|

; 99   :     case DvdTitleKey:
; 100  :         dwRet = DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType),
; 101  :             (BYTE)pKey->SessionId, pKey->StartAddr + 1);

  000c4	e5d60010	 ldrb        r0, [r6, #0x10]
  000c8	e5d62011	 ldrb        r2, [r6, #0x11]
  000cc	e5d61008	 ldrb        r1, [r6, #8]
  000d0	e5d64012	 ldrb        r4, [r6, #0x12]
  000d4	e5d6500a	 ldrb        r5, [r6, #0xA]
  000d8	e5d6e00b	 ldrb        lr, [r6, #0xB]
  000dc	e1802402	 orr         r2, r0, r2, lsl #8
  000e0	e5d60013	 ldrb        r0, [r6, #0x13]
  000e4	e1811403	 orr         r1, r1, r3, lsl #8
  000e8	e1823804	 orr         r3, r2, r4, lsl #16
  000ec	e1812805	 orr         r2, r1, r5, lsl #16
  000f0	e1833c00	 orr         r3, r3, r0, lsl #24
  000f4	e1822c0e	 orr         r2, r2, lr, lsl #24
  000f8	e2833001	 add         r3, r3, #1
  000fc	e20220ff	 and         r2, r2, #0xFF
  00100		 |$L32405|
  00100	e20810ff	 and         r1, r8, #0xFF
  00104	e1a00007	 mov         r0, r7
  00108	eb000000	 bl          |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|

; 109  :     }
; 110  : 
; 111  :     return dwRet;
; 112  : }

  0010c	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  00110	e12fff1e	 bx          lr
  00114		 |$M32407|

			 ENDP  ; |?DVDSetupReadKey@@YAKPAU_ATAPI_COMMAND_PACKET@@PAU_DVD_COPY_PROTECT_KEY@@@Z|, DVDSetupReadKey

	EXPORT	|?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| ; CopyDVDKey

  00000			 AREA	 |.text| { |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| } ; comdat associative
|$T32426| DCD	|$L32425|
	DCD	0x40003002
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?CopyDVDKey@@YAKKPAU_DVD_COPY_PROTECT_KEY@@PAU_RKFMT_TITLE@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

⌨️ 快捷键说明

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