blob: 6188c66127861c4f45e19b45d7401c068faa41ec [file] [log] [blame]
Alexandre Julliard767e6f61998-08-09 12:47:43 +00001/*
2 * DOS EXE loader
3 *
4 * Copyright 1998 Ove Kåven
5 */
6
Patrik Stridvall1e1cf481998-10-17 12:56:00 +00007#ifndef __WINE_DOSEXE_H
8#define __WINE_DOSEXE_H
Alexandre Julliard767e6f61998-08-09 12:47:43 +00009
Marcus Meissner317af321999-02-17 13:51:06 +000010#include <sys/types.h> /* pid_t */
Michael Veksler3fbb8dc1999-02-21 18:23:26 +000011#include "winbase.h" /* for LPSTARTUPINFO32A */
Ove Kaaven53942581999-03-25 10:53:08 +000012#include "winnt.h" /* for PCONTEXT */
Alexandre Julliard767e6f61998-08-09 12:47:43 +000013
Ove Kaaven53942581999-03-25 10:53:08 +000014struct _DOSEVENT;
15
Alexandre Julliard767e6f61998-08-09 12:47:43 +000016typedef struct _DOSTASK {
Alexandre Julliard770eb512000-09-24 20:47:50 +000017 WORD psp_seg;
18 WORD dpmi_flag;
Alexandre Julliard767e6f61998-08-09 12:47:43 +000019} DOSTASK, *LPDOSTASK;
20
Ove Kaaven53942581999-03-25 10:53:08 +000021#define DOS_PRIORITY_REALTIME 0 /* IRQ0 */
22#define DOS_PRIORITY_KEYBOARD 1 /* IRQ1 */
23#define DOS_PRIORITY_VGA 2 /* IRQ9 */
24#define DOS_PRIORITY_MOUSE 5 /* IRQ12 */
25#define DOS_PRIORITY_SERIAL 10 /* IRQ4 */
26
Ove Kaaven8ccb0a51998-12-07 16:18:17 +000027#if defined(linux) && defined(__i386__)
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000028#define MZ_SUPPORTED
Ove Kaaven8ccb0a51998-12-07 16:18:17 +000029#endif /* linux-i386 */
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000030
Ove Kaaven7f740cb1998-11-01 12:41:19 +000031#define V86_FLAG 0x00020000
32
Ove Kaaven7248d472000-07-31 20:56:28 +000033extern BOOL MZ_LoadImage( HMODULE module, HANDLE hFile, LPCSTR filename );
Ove Kaavene54d4d11999-05-22 10:40:15 +000034extern LPDOSTASK MZ_Current( void );
Alexandre Julliard770eb512000-09-24 20:47:50 +000035extern LPDOSTASK MZ_AllocDPMITask( void );
Alexandre Julliard617955d1999-06-26 18:40:24 +000036extern int DOSVM_Enter( CONTEXT86 *context );
Ove Kaavene54d4d11999-05-22 10:40:15 +000037extern void DOSVM_Wait( int read_pipe, HANDLE hObject );
Alexandre Julliard770eb512000-09-24 20:47:50 +000038extern void DOSVM_QueueEvent( int irq, int priority, void (*relay)(CONTEXT86*,void*), void *data );
Ove Kaaven53942581999-03-25 10:53:08 +000039extern void DOSVM_PIC_ioport_out( WORD port, BYTE val );
Alexandre Julliard638f1691999-01-17 16:32:32 +000040extern void DOSVM_SetTimer( unsigned ticks );
41extern unsigned DOSVM_GetTimer( void );
Patrik Stridvall1e1cf481998-10-17 12:56:00 +000042
43#endif /* __WINE_DOSEXE_H */