aacf6448c6c9c18ca1c7952a352212c3992eb30e
[reactos.git] / lib / soft386 / common.h
1 /*
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: 386/486 CPU Emulation Library
4 * FILE: common.h
5 * PURPOSE: Common functions used internally by Soft386 (header file).
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 #ifndef _COMMON_H_
10 #define _COMMON_H_
11
12 /* DEFINES ********************************************************************/
13
14 #define GET_SEGMENT_RPL(s) ((s) & 3)
15 #define GET_SEGMENT_INDEX(s) ((s) & 0xFFF8)
16
17 /* FUNCTIONS ******************************************************************/
18
19 inline
20 BOOLEAN
21 Soft386ReadMemory
22 (
23 PSOFT386_STATE State,
24 INT SegmentReg,
25 ULONG Offset,
26 BOOLEAN InstFetch,
27 PVOID Buffer,
28 ULONG Size
29 );
30
31 inline
32 BOOLEAN
33 Soft386WriteMemory
34 (
35 PSOFT386_STATE State,
36 INT SegmentReg,
37 ULONG Offset,
38 PVOID Buffer,
39 ULONG Size
40 );
41
42 inline
43 BOOLEAN
44 Soft386StackPush
45 (
46 PSOFT386_STATE State,
47 ULONG Value
48 );
49
50 inline
51 BOOLEAN
52 Soft386StackPop
53 (
54 PSOFT386_STATE State,
55 PULONG Value
56 );
57
58 inline
59 BOOLEAN
60 Soft386LoadSegment
61 (
62 PSOFT386_STATE State,
63 INT Segment,
64 USHORT Selector
65 );
66
67 inline
68 BOOLEAN
69 Soft386FetchByte
70 (
71 PSOFT386_STATE State,
72 PUCHAR Data
73 );
74
75 inline
76 BOOLEAN
77 Soft386FetchWord
78 (
79 PSOFT386_STATE State,
80 PUSHORT Data
81 );
82
83 inline
84 BOOLEAN
85 Soft386FetchDword
86 (
87 PSOFT386_STATE State,
88 PULONG Data
89 );
90
91 inline
92 BOOLEAN
93 Soft386InterruptInternal
94 (
95 PSOFT386_STATE State,
96 USHORT SegmentSelector,
97 ULONG Offset,
98 BOOLEAN InterruptGate
99 );
100
101 inline
102 BOOLEAN
103 Soft386GetIntVector
104 (
105 PSOFT386_STATE State,
106 UCHAR Number,
107 PSOFT386_IDT_ENTRY IdtEntry
108 );
109
110 VOID
111 __fastcall
112 Soft386Exception
113 (
114 PSOFT386_STATE State,
115 INT ExceptionCode
116 );
117
118 #endif // _COMMON_H_
119
120 /* EOF */