Changeset 144 for trunk/src/os2ahci/init.asm
- Timestamp:
- Jan 3, 2013, 1:22:56 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/init.asm
r141 r144 8 8 ; Constants 9 9 DEV_IDC EQU 0400h ; IDC bit for ADD flags 10 10 11 11 ; ----------------------------------------------------------------------------- 12 12 ; Public symbols 13 13 14 14 PUBLIC _asm_strat ; low-level strategy routine 15 PUBLIC _asm_idc_entry ; low-level IDC entry point 15 PUBLIC _asm_idc_entry ; low-level IDC entry point 16 16 PUBLIC _asm_krnl_exit ; low-level kernel exit routine 17 17 PUBLIC _readl ; MMIO read (32 bits) … … 29 29 PUBLIC _end_of_data ; end of all data (label) 30 30 PUBLIC _end_of_code ; end of all code (label) 31 31 32 32 ; ---------------------------------------------------------------------------- 33 33 ; Device Driver Header … … 65 65 ; such as C. 66 66 67 ; When using the Watcom Linker, the segment ordering can be overridden in 68 ; the Watcom Makefile (wmakefile) where the Linker response-file is generated 69 ; containing statements for segment ordering. First you can order by class and 70 ; for each class you can specify the order of the segments within that class. 71 ; See the ORDER directive in the wlink documentation. 67 72 _DATA SEGMENT WORD PUBLIC 'DATA' 68 73 readl_dbg_fmt db "readl(%04x:%04x) = 0x%08lx" … … 72 77 _DATA ENDS 73 78 79 LIBDATA SEGMENT WORD PUBLIC 'DATA' 80 LIBDATA ENDS 81 74 82 CONST SEGMENT WORD PUBLIC 'CONST' 75 83 CONST ENDS … … 83 91 84 92 _z_data SEGMENT WORD PUBLIC 'BSS' 85 _end_of_data db 093 _end_of_data db ? 86 94 _z_data ENDS 87 95 … … 98 106 CODE ENDS 99 107 108 LIBCODE SEGMENT WORD PUBLIC 'CODE' 109 LIBCODE ENDS 110 100 111 RMCode SEGMENT WORD PUBLIC 'CODE' 101 112 RMCode ENDS 102 103 LIBCODE SEGMENT WORD PUBLIC 'CODE'104 LIBCODE ENDS105 113 106 114 _z_text SEGMENT WORD PUBLIC 'CODE' … … 108 116 _z_text ENDS 109 117 110 DGROUP GROUP DEVHDR, _DATA, CONST, _BSS, c_common, _z_data 111 TGROUP GROUP _TEXT, CODE, _z_text 118 119 ; The Watcom Linker behaves differently than the IBM/MS Linkers when segments 120 ; are defined but not added to the corresponding group. So when you define a 121 ; a new (logical) segment and want it to be part of a physical segment (group) 122 ; then don't forget to add it below or unresolvable or miscalculated 123 ; relocations can be the result. 124 DGROUP GROUP DEVHDR, _DATA, LIBDATA, _BSS, c_common, _z_data 125 TGROUP GROUP _TEXT, CODE, LIBCODE, RMCode, _z_text 126 112 127 113 128 ; ---------------------------------------------------------------------------- … … 140 155 ; IDC entry point (Assembler stub) 141 156 _asm_idc_entry PROC FAR 142 157 143 158 ; push request packet address 144 159 PUSH ES … … 171 186 172 187 RET 173 _asm_krnl_exit ENDP 174 188 _asm_krnl_exit ENDP 189 175 190 176 191 .386 … … 293 308 294 309 295 ; Halfway-decent 32-bit implementation of memcpy(). 310 ; Halfway-decent 32-bit implementation of memcpy(). 296 311 ; 297 312 ; C prototype: void *memcpy(void _far *d, void _far *s, size_t n); … … 377 392 378 393 379 ; Unsigned long divide routine; 394 ; Unsigned long divide routine; 380 395 ; taken from OS/2 Uniaud project, original author: Timur Tabi 381 396 __U4D proc near … … 394 409 ret 395 410 __U4D endp 396 397 ; Long multiply routine; 411 412 ; Long multiply routine; 398 413 ; taken from OS/2 Uniaud project, original author: Timur Tabi 399 414 __U4M proc near … … 412 427 413 428 414 ; Signed long divide routine; 429 ; Signed long divide routine; 415 430 ; taken from OS/2 Uniaud project, original author: Timur Tabi 416 431 __I4D proc near … … 429 444 ret 430 445 __I4D endp 431 446 432 447 .286 433 448
Note:
See TracChangeset
for help on using the changeset viewer.