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

📄 dvdioctl.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 4 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	C:\WINCE500\PLATFORM\bvdmain\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 c:\wince500\platform\bvdmain\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
|$T33066| DCD	|$L33065|
	DCD	0x40000700
; Function compile flags: /Ogsy

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

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

; 29   : {

  00000		 |$L33065|
  00000		 |$M33063|

; 30   :     register DWORD dwResult;
; 31   :     
; 32   :     dwResult = (dwInput << 24) | ((dwInput & 0xff00) << 8) | ((dwInput & 0xff0000) >> 8) | (dwInput >> 24);
; 33   :         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

; 34   : }

  00018	e12fff1e	 bx          lr
  0001c		 |$M33064|

			 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
|$T33088| DCD	|$L33087|
	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

; 49   : {

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

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

  0000c	e3a030a4	 mov         r3, #0xA4

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

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

; 58   :     {
; 59   :         dwRet = 0;
; 60   :     }
; 61   :     else
; 62   :     {
; 63   :         dwRet = rkret[bKeyType];

  00018	959f3078	 ldrls       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	83a08000	 movhi       r8, #0
  00030	97938101	 ldrls       r8, [r3, +r1, lsl #2]

; 64   :     }
; 65   : 
; 66   : 
; 67   :     //
; 68   :     // set up endian swapped allocation length, and clear reserved
; 69   :     //
; 70   : 
; 71   :     *(PDWORD)(&pcdb->Reserved) = dwRet;
; 72   : 
; 73   :     //
; 74   :     // set up the LBA field
; 75   :     //
; 76   :     
; 77   :     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

; 78   : 
; 79   :     pcdb->NACA = 0;
; 80   : 
; 81   :     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]

; 82   : }

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

			 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
|$T33100| DCD	|$L33099|
	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

; 85   : {

  00000		 |$L33099|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33097|

; 86   :     PRDVDCDB pcdb = (PRDVDCDB)(pCmdPkt);
; 87   : 
; 88   :     pcdb->OpCode = DVDOP_READ_DVD_STRUC;

  00004	e3a030ad	 mov         r3, #0xAD

; 89   : 
; 90   :     pcdb->Lun = 0;
; 91   :     *((DWORD *)&pcdb->RMDLBA) = 0;
; 92   :     pcdb->Layer = 0;
; 93   :     pcdb->Format = DVDSTRUC_FMT_DISCKEY;
; 94   :     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]

; 95   :     pcdb->agid = bAgid;
; 96   :     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]

; 97   : 
; 98   :     return(sizeof (RKFMT_DISC));

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

; 99   : }

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

			 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
|$T33118| DCD	|$L33117|
	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

; 102  : {

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

; 103  :     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

; 107  :     case DvdDriveKey:
; 108  :         return(DVDSetupReadDiscKey(pCmdPkt, (BYTE)((pKey->SessionId) << 6)));
; 109  :     default:
; 110  :         return(DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType), (BYTE)pKey->SessionId, 0));

  00028	e5d63009	 ldrb        r3, [r6, #9]
  0002c	e3580004	 cmp         r8, #4
  00030	0a000023	 beq         |$L32832|
  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         |$L33114|
  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

; 111  :     }
; 112  :     return 0;
; 113  : }

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

; 104  :     {
; 105  :     case DvdTitleKey:
; 106  :         return(DVDSetupReadTitleKey(pCmdPkt, (BYTE)(pKey->KeyType), (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		 |$L33114|
  00100	e20810ff	 and         r1, r8, #0xFF
  00104	e1a00007	 mov         r0, r7
  00108	eb000000	 bl          |?DVDSetupReadTitleKey@@YAKPAU_ATAPI_COMMAND_PACKET@@EEK@Z|

; 111  :     }
; 112  :     return 0;
; 113  : }

⌨️ 快捷键说明

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