- Timestamp:
- May 16, 2012, 10:19:24 AM (13 years ago)
- Location:
- trunk/src
- Files:
-
- 8 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/Makefile
r125 r133 50 50 !endif 51 51 52 CC_INCLUDE = -I$(DDK)\base\h \ 52 CC_INCLUDE = -I..\include \ 53 -I$(DDK)\base\h \ 53 54 -I$(DDK)\base\ibmh \ 54 55 -I$(DDK)\base\src\dev\dasd\diskh \ … … 78 79 ctxhook.obj apm.obj ioctl.obj trace.obj 79 80 80 INCS = os2ahci.h ahci.h version.h 81 INCS = os2ahci.h ahci.h version.h ioctl.h ..\include\ahci-idc.h 81 82 82 83 … … 122 123 etags.exe $(SRCS) $(INCS) $(DDK)\base\src\dev\dasd\diskh\dhcalls.h \ 123 124 $(DDK)\base\src\dev\dasd\diskh\iorb.h \ 124 $(DDK)\base\h\bsedos16.h 125 $(DDK)\base\h\bsedos16.h \ 126 $(DDK)\base\h\devcmd.h \ 127 $(DDK)\base\h\reqpkt.h 125 128 126 129 bldday.h: -
trunk/src/os2ahci/init.asm
r128 r133 6 6 7 7 ; ----------------------------------------------------------------------------- 8 ; Constants 9 DEV_IDC EQU 0400h ; IDC bit for ADD flags 10 11 ; ----------------------------------------------------------------------------- 8 12 ; Public symbols 9 13 10 14 PUBLIC _asm_strat ; low-level strategy routine 15 PUBLIC _asm_idc_entry ; low-level IDC entry point 11 16 PUBLIC _readl ; MMIO read (32 bits) 12 17 PUBLIC _writel ; MMIO write (32 bits) … … 29 34 DEVHDR SEGMENT WORD PUBLIC 'DATA' 30 35 _dev_hdr dd _legacy_hdr ; next device header 31 dw DEVLEV_3 + DEV_CHAR_DEV ; flags for ADD drivers36 dw DEVLEV_3 + DEV_CHAR_DEV + DEV_IDC ; flags for ADD drivers 32 37 dw OFFSET _asm_strat ; strategy routine 33 dw 0 ; no IDC routine38 dw OFFSET _asm_idc_entry ; IDC entry point 34 39 db "OS2AHCI$" ; name of character device 35 40 dq 0 ; 8 reserved bytes … … 40 45 dw DEVLEV_3 + DEV_CHAR_DEV ; flags for ADD drivers 41 46 dw OFFSET _asm_strat ; strategy routine 42 dw 0 ; no IDC routine47 dw 0 ; IDC entry point 43 48 db "IBMS506$" ; name of character device 44 49 dq 0 ; 8 reserved bytes … … 129 134 RET 130 135 _asm_strat ENDP 136 137 138 ; IDC entry point (Assembler stub) 139 _asm_idc_entry PROC FAR 140 141 ; push request packet address 142 PUSH ES 143 PUSH BX 144 CLD 145 146 ; call C IDC entry point - which is the strategy routine 147 CALL _c_strat 148 149 POP BX 150 POP ES 151 MOV WORD PTR ES:[BX+3], AX 152 RET 153 _asm_idc_entry ENDP 131 154 132 155 .386 -
trunk/src/os2ahci/os2ahci.c
r131 r133 124 124 * for initialization purposes; all other calls go directly to the adapter 125 125 * device driver's strategy function. 126 * 127 * NOTE: this is also used as the IDC entry point. We expect an IOCTL request 128 * packet for IDC calls, so they can be handled by gen_ioctl. 126 129 */ 127 130 USHORT _cdecl c_strat(RPH _far *req) … … 247 250 case 'r': 248 251 /* reset ports during initialization */ 249 252 init_reset = 1; 250 253 break; 251 254 … … 427 430 428 431 } 432 break; 433 434 case OS2AHCI_IDC_CATEGORY: 435 switch (ioctl->Function) { 436 437 case OS2AHCI_IDC_BIOSMODE: 438 /* reconfigure adapters in BIOS/int13 mode; needed for generating 439 * trap dumps on some machines. This is called by ACPI.PSD. 440 * 441 * To enter BIOS mode, we flush all write caches, turn off interrupts 442 * and restore the BIOS configuration. This is exactly what 443 * apm_suspend() does. 444 */ 445 apm_suspend(); 446 return(STDON); 447 448 case OS2AHCI_IDC_BEEP: 449 /* IOCTL for IDC testing - just beep */ 450 DevHelp_Beep(2000, 100); 451 return(STDON); 452 } 453 break; 429 454 430 455 case DSKSP_CAT_GENERIC: -
trunk/src/os2ahci/os2ahci.h
r125 r133 63 63 64 64 #include "ahci.h" 65 #include "ahci-idc.h" 65 66 #include "version.h" 66 67 -
trunk/src/os2ahci/version.h
r128 r133 14 14 15 15 16 #define VERSION 12 2/* driver version (2 implied decimals) */16 #define VERSION 123 /* driver version (2 implied decimals) */ 17 17
Note:
See TracChangeset
for help on using the changeset viewer.