source: trunk/src/os2ahci/os2ahci.def.template@ 144

Last change on this file since 144 was 144, checked in by rousseau, 13 years ago

Fixed the Open Watcom build

Building with Open Watcom produced a non working driver.

Causes & Fixes

o Enum types were 8 bits when using WCC

This caused the functions with variable arguments to fail.
Adding the -ei compiler-flag to WCC solved this issue.

o Incorrect inline assembler syntax to call DeviceHelp in os2ahci.c

DeviceHelp is a 16:16 far pointer residing in memory.
MASM interprets 'call DeviceHelp' differently than WASM.
The correct syntax is: 'call dword ptr [DeviceHelp]'.

o Missing segments from TGROUP in init.asm

WLINK then generates the AUTO class, most probably causing incorrect
relocation fixups.

Enhancements

o WASM (or JWASM) can now be used instead of ALP
o WCC can now be used instead of CL
o The Open Watcom linker (WLINK) can now be used instead of LINK
o Streamlined both makefiles a notch so it's easy to use both tool-chains

To investigate

o CL barks about a missing prototype for DevHelp_Yield() in lib.c

The prototype is actually defined in dhcalls.h but CL still barks.

o Using WCC with ALP and WLINK produces an oversized image

Probaly due to misplaced BSS segments. WCC with ALP and LINK produces
a normal sized image however.

  • Property svn:eol-style set to native
File size: 518 bytes
Line 
1library os2ahci
2Description '$@#Mensys:0.0.0#@##1## 2011/05/02 11:41:00 ECSDEVEL::::00::@@AHCI Driver. (c) Mensys BV 2011'
3protmode
4
5segments
6 'DEVHDR' CLASS 'DATA'
7 '_DATA' CLASS 'DATA'
8 'LIBDATA' CLASS 'DATA'
9 'CONST' CLASS 'CONST'
10 '_BSS' CLASS 'BSS'
11 'c_common' CLASS 'BSS'
12 '_z_data' CLASS 'BSS'
13 '_TEXT' CLASS 'CODE' IOPL
14 'CODE' CLASS 'CODE' IOPL
15 'LIBCODE' CLASS 'CODE' IOPL
16 'RMCode' CLASS 'CODE' IOPL
17 '_z_text' CLASS 'CODE' IOPL
Note: See TracBrowser for help on using the repository browser.