correct window size in banked vbe, and added doublebuffered test
[vidsys] / cdpmi.h
1 #ifndef CDPMI_H_
2 #define CDPMI_H_
3
4 #include <stdlib.h>
5 #include "sizeint.h"
6
7 #pragma pack (push, 1)
8 struct dpmi_regs {
9         uint32_t edi, esi, ebp;
10         uint32_t reserved;
11         uint32_t ebx, edx, ecx, eax;
12         uint16_t flags;
13         uint16_t es, ds, fs, gs;
14         uint16_t ip, cs, sp, ss;
15 };
16 #pragma pack (pop)
17
18 enum {
19         FLAGS_CF        = 0x000001,
20         FLAGS_PF        = 0x000004,
21         FLAGS_ZF        = 0x000040,
22         FLAGS_SF        = 0x000080,
23         FLAGS_IF        = 0x000020,
24         FLAGS_DF        = 0x000040,
25         FLAGS_VM        = 0x020000,
26         FLAGS_ID        = 0x200000,
27 };
28
29 int dpmi_init(void);
30 void dpmi_cleanup(void);
31 void *dpmi_lowbuf(void);
32
33 uint16_t dpmi_alloc(unsigned int par, uint16_t *sel);
34 void dpmi_free(uint16_t sel);
35 int dpmi_rmint(int inum, struct dpmi_regs *regs);
36 void *dpmi_mmap(uint32_t phys_addr, unsigned int size);
37 void dpmi_munmap(void *addr);
38
39 #endif  /* CDPMI_H_ */