Skip to content
Snippets Groups Projects
dosexe.h 1.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexandre Julliard's avatar
    Alexandre Julliard committed
    /*
     * DOS EXE loader
     *
     * Copyright 1998 Ove Kven
     */
    
    
    #ifndef __WINE_DOSEXE_H
    #define __WINE_DOSEXE_H
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    #include <sys/types.h> /* pid_t */
    
    #include "winbase.h"   /* for LPSTARTUPINFO32A */
    
    #include "winnt.h"     /* for PCONTEXT */
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    typedef struct _DOSTASK {
    
     WORD psp_seg, retval;
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    } DOSTASK, *LPDOSTASK;
    
    
    #define DOS_PRIORITY_REALTIME 0  /* IRQ0 */
    #define DOS_PRIORITY_KEYBOARD 1  /* IRQ1 */
    #define DOS_PRIORITY_VGA      2  /* IRQ9 */
    #define DOS_PRIORITY_MOUSE    5  /* IRQ12 */
    #define DOS_PRIORITY_SERIAL   10 /* IRQ4 */
    
    
    #if defined(linux) && defined(__i386__)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    #define MZ_SUPPORTED
    
    #endif /* linux-i386 */
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    extern BOOL MZ_LoadImage( LPCSTR cmdline );
    
    extern BOOL MZ_Exec( CONTEXT86 *context, LPCSTR filename, BYTE func, LPVOID paramblk );
    extern void MZ_Exit( CONTEXT86 *context, BOOL cs_psp, WORD retval );
    
    extern LPDOSTASK MZ_Current( void );
    
    extern LPDOSTASK MZ_AllocDPMITask( void );
    
    extern int DOSVM_Enter( CONTEXT86 *context );
    
    extern void DOSVM_Wait( int read_pipe, HANDLE hObject );
    
    extern void DOSVM_QueueEvent( int irq, int priority, void (*relay)(CONTEXT86*,void*), void *data );
    
    extern void DOSVM_PIC_ioport_out( WORD port, BYTE val );
    
    extern void DOSVM_SetTimer( unsigned ticks );
    extern unsigned DOSVM_GetTimer( void );
    
    
    #endif /* __WINE_DOSEXE_H */