FreeDOS/hdr/win.h
Jiri Malak db43a4b343 far-fix: symbols BIOSInt13, UserInt13 and BIOSInt19 are far (in LGROUP)
these symbols are in LGROUP and generaly cannot be addressed by DGROUP:offset
for Turbo C DGROUP offset overflow because symbols are too far to be addressed by DGROUP offset
2024-07-15 15:21:36 -04:00

46 lines
1.4 KiB
C

#ifndef __WINSUPPORT_H
#define __WINSUPPORT_H
#ifdef WIN31SUPPORT /* defined to enable kernel hooks for win3.x compatibility */
extern UWORD winInstanced; /* internal flag marking if Windows is active */
/* contains information about data that must be kept for each active DOS
instance, ie data that can NOT be shared between multiple VMs.
*/
struct WinStartupInfo
{
UWORD winver; /* this structure version, matches Windows version */
ULONG next; /* far pointer to next WinStartupInfo structure or NULL */
ULONG vddName; /* far pointer to ASCIIZ pathname of virtual device driver */
ULONG vddInfo; /* far pointer to vdd reference data or NULL if vddName=NULL */
ULONG instanceTable; /* far pointer to array of instance data */
ULONG optInstanceTable; /* used only if winver set to 0x400 (w95)*/
};
extern struct WinStartupInfo winStartupInfo;
#if defined __GNUC__
extern UWORD winseg1, winseg2, winseg3;
extern UBYTE markEndInstanceData;
extern struct lol FAR ASM DATASTART;
#endif
/* contains a list of offsets relative to DOS data segment of
various internal variables.
*/
struct WinPatchTable
{
UWORD dosver;
UWORD OffTempDS;
UWORD OffTempBX;
UWORD OffInDOS;
UWORD OffMachineID;
UWORD OffCritSectPatches;
UWORD OffLastMCBSeg; /* used by Win 3.1 if DOS version 5 or higher */
};
extern struct WinPatchTable winPatchTable;
#endif /* WIN31SUPPORT */
#endif /* __WINSUPPORT_H */