Alexandre Julliard | b7258be | 1995-09-01 15:57:28 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Misc. emulation definitions |
| 3 | * |
| 4 | * Copyright 1995 Alexandre Julliard |
| 5 | */ |
| 6 | |
Alexandre Julliard | 234bc24 | 1994-12-10 13:02:28 +0000 | [diff] [blame] | 7 | #ifndef __WINE_MISCEMU_H |
| 8 | #define __WINE_MISCEMU_H |
| 9 | |
Alexandre Julliard | ca22b33 | 1996-07-12 19:02:39 +0000 | [diff] [blame] | 10 | #include <stdio.h> |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 11 | #include "winnt.h" |
Alexandre Julliard | a2f2e01 | 1995-06-06 16:40:35 +0000 | [diff] [blame] | 12 | |
Alexandre Julliard | 641ee76 | 1997-08-04 16:34:36 +0000 | [diff] [blame] | 13 | /* msdos/dosmem.c */ |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 14 | extern HANDLE16 DOSMEM_BiosSeg; |
Alexandre Julliard | ac9c9b0 | 1996-07-28 18:50:11 +0000 | [diff] [blame] | 15 | extern DWORD DOSMEM_CollateTable; |
Alexandre Julliard | b7258be | 1995-09-01 15:57:28 +0000 | [diff] [blame] | 16 | |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 17 | extern DWORD DOSMEM_ErrorCall; |
| 18 | extern DWORD DOSMEM_ErrorBuffer; |
| 19 | |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 20 | extern BOOL32 DOSMEM_Init(HMODULE16 hModule); |
Alexandre Julliard | f0cbfa0 | 1997-02-15 14:29:56 +0000 | [diff] [blame] | 21 | extern void DOSMEM_Tick(void); |
| 22 | extern WORD DOSMEM_AllocSelector(WORD); |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 23 | extern char * DOSMEM_MemoryBase(HMODULE16 hModule); |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 24 | extern LPVOID DOSMEM_GetBlock(HMODULE16 hModule, UINT32 size, UINT16* p); |
| 25 | extern BOOL32 DOSMEM_FreeBlock(HMODULE16 hModule, void* ptr); |
| 26 | extern LPVOID DOSMEM_ResizeBlock(HMODULE16 hModule, void* ptr, UINT32 size, UINT16* p); |
| 27 | extern UINT32 DOSMEM_Available(HMODULE16 hModule); |
Alexandre Julliard | f0cbfa0 | 1997-02-15 14:29:56 +0000 | [diff] [blame] | 28 | extern LPVOID DOSMEM_MapRealToLinear(DWORD); /* real-mode to linear */ |
| 29 | extern LPVOID DOSMEM_MapDosToLinear(UINT32); /* linear DOS to Wine */ |
| 30 | extern UINT32 DOSMEM_MapLinearToDos(LPVOID); /* linear Wine to DOS */ |
| 31 | |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 32 | /* msdos/interrupts.c */ |
Alexandre Julliard | d30dfd2 | 1998-09-27 18:28:36 +0000 | [diff] [blame] | 33 | extern FARPROC16 INT_GetPMHandler( BYTE intnum ); |
| 34 | extern void INT_SetPMHandler( BYTE intnum, FARPROC16 handler ); |
| 35 | extern FARPROC16 INT_GetRMHandler( BYTE intnum ); |
| 36 | extern void INT_SetRMHandler( BYTE intnum, FARPROC16 handler ); |
| 37 | extern FARPROC16 INT_CtxGetHandler( CONTEXT *context, BYTE intnum ); |
| 38 | extern void INT_CtxSetHandler( CONTEXT *context, BYTE intnum, FARPROC16 handler ); |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 39 | extern int INT_RealModeInterrupt( BYTE intnum, PCONTEXT context ); |
Alexandre Julliard | a2f2e01 | 1995-06-06 16:40:35 +0000 | [diff] [blame] | 40 | |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 41 | /* msdos/ioports.c */ |
Alexandre Julliard | 23946ad | 1997-06-16 17:43:53 +0000 | [diff] [blame] | 42 | extern void IO_port_init (void); |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 43 | extern DWORD IO_inport( int port, int count ); |
| 44 | extern void IO_outport( int port, int count, DWORD value ); |
| 45 | |
Alexandre Julliard | d30dfd2 | 1998-09-27 18:28:36 +0000 | [diff] [blame] | 46 | /* msdos/int10.c */ |
| 47 | extern void WINAPI INT_Int10Handler(CONTEXT*); |
| 48 | |
Joseph Pranevich | 20a2c1e | 1998-10-17 11:56:44 +0000 | [diff] [blame] | 49 | /* msdos/int11.c */ |
| 50 | extern void WINAPI INT_Int11Handler(CONTEXT*); |
| 51 | |
Joseph Pranevich | 912049d | 1998-10-24 10:40:36 +0000 | [diff] [blame^] | 52 | /* msdos/int13.c */ |
| 53 | extern void WINAPI INT_Int13Handler(CONTEXT*); |
| 54 | |
Joseph Pranevich | 20a2c1e | 1998-10-17 11:56:44 +0000 | [diff] [blame] | 55 | /* msdos/int16.c */ |
| 56 | extern void WINAPI INT_Int16Handler(CONTEXT*); |
Joseph Pranevich | 912049d | 1998-10-24 10:40:36 +0000 | [diff] [blame^] | 57 | |
| 58 | /* msdos/int17.c */ |
| 59 | extern void WINAPI INT_Int17Handler(CONTEXT*); |
| 60 | |
| 61 | /* msdos/int19.c */ |
| 62 | extern void WINAPI INT_Int19Handler(CONTEXT*); |
| 63 | |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 64 | /* msdos/int1a.c */ |
Alexandre Julliard | b7258be | 1995-09-01 15:57:28 +0000 | [diff] [blame] | 65 | extern DWORD INT1A_GetTicksSinceMidnight(void); |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 66 | extern void WINAPI INT_Int1aHandler(CONTEXT*); |
| 67 | |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 68 | /* msdos/int20.c */ |
| 69 | extern void WINAPI INT_Int20Handler(CONTEXT*); |
| 70 | |
Alexandre Julliard | d30dfd2 | 1998-09-27 18:28:36 +0000 | [diff] [blame] | 71 | /* msdos/int25.c */ |
| 72 | extern void WINAPI INT_Int25Handler(CONTEXT*); |
| 73 | |
Joseph Pranevich | 20a2c1e | 1998-10-17 11:56:44 +0000 | [diff] [blame] | 74 | /* msdos/int29.c */ |
| 75 | extern void WINAPI INT_Int29Handler(CONTEXT*); |
| 76 | |
| 77 | /* msdos/int25.c */ |
| 78 | extern void WINAPI INT_Int25Handler(CONTEXT*); |
| 79 | |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 80 | /* msdos/int2f.c */ |
| 81 | extern void WINAPI INT_Int2fHandler(CONTEXT*); |
Alexandre Julliard | b7258be | 1995-09-01 15:57:28 +0000 | [diff] [blame] | 82 | |
Ove Kaaven | 7dc3c60 | 1998-10-11 12:15:18 +0000 | [diff] [blame] | 83 | /* msdos/dpmi.c */ |
Alexandre Julliard | d30dfd2 | 1998-09-27 18:28:36 +0000 | [diff] [blame] | 84 | extern void WINAPI INT_Int31Handler(CONTEXT*); |
| 85 | |
Ove Kaaven | 7dc3c60 | 1998-10-11 12:15:18 +0000 | [diff] [blame] | 86 | /* msdos/xms.c */ |
| 87 | extern void WINAPI XMS_Handler(CONTEXT*); |
| 88 | |
Alexandre Julliard | 641ee76 | 1997-08-04 16:34:36 +0000 | [diff] [blame] | 89 | /* loader/signal.c */ |
| 90 | extern BOOL32 SIGNAL_Init(void); |
| 91 | extern void SIGNAL_SetHandler( int sig, void (*func)(), int flags ); |
| 92 | extern void SIGNAL_MaskAsyncEvents( BOOL32 flag ); |
| 93 | |
| 94 | /* if1632/signal.c */ |
| 95 | extern BOOL32 SIGNAL_InitEmulator(void); |
| 96 | |
Alexandre Julliard | f90efa9 | 1998-06-14 15:24:15 +0000 | [diff] [blame] | 97 | /* misc/aspi.c */ |
| 98 | extern void ASPI_DOS_HandleInt(CONTEXT *context); |
| 99 | |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 100 | #define CTX_SEG_OFF_TO_LIN(context,seg,off) \ |
| 101 | (ISV86(context) ? (void*)(V86BASE(context)+((seg)<<4)+off) \ |
| 102 | : PTR_SEG_OFF_TO_LIN(seg,off)) |
| 103 | |
Alexandre Julliard | 808cb04 | 1995-08-17 17:11:36 +0000 | [diff] [blame] | 104 | #define INT_BARF(context,num) \ |
Alexandre Julliard | e2991ea | 1995-07-29 13:09:43 +0000 | [diff] [blame] | 105 | fprintf( stderr, "int%x: unknown/not implemented parameters:\n" \ |
| 106 | "int%x: AX %04x, BX %04x, CX %04x, DX %04x, " \ |
| 107 | "SI %04x, DI %04x, DS %04x, ES %04x\n", \ |
Alexandre Julliard | 808cb04 | 1995-08-17 17:11:36 +0000 | [diff] [blame] | 108 | (num), (num), AX_reg(context), BX_reg(context), CX_reg(context), \ |
| 109 | DX_reg(context), SI_reg(context), DI_reg(context), \ |
Alexandre Julliard | 9ea19e5 | 1997-01-01 17:29:55 +0000 | [diff] [blame] | 110 | (WORD)DS_reg(context), (WORD)ES_reg(context) ) |
Alexandre Julliard | e2991ea | 1995-07-29 13:09:43 +0000 | [diff] [blame] | 111 | |
Alexandre Julliard | 234bc24 | 1994-12-10 13:02:28 +0000 | [diff] [blame] | 112 | #endif /* __WINE_MISCEMU_H */ |