RTEMS  5.1
realmode_int.h
Go to the documentation of this file.
1 
14 /*
15  * Copyright (C) 2014 Jan Doležal (dolezj21@fel.cvut.cz)
16  * CTU in Prague.
17  *
18  * The license and distribution terms for this file may be
19  * found in the file LICENSE in this distribution or at
20  * http://www.rtems.org/license/LICENSE.
21  */
22 
23 #ifndef _REALMODE_INT_H
24 #define _REALMODE_INT_H
25 
26 #include <rtems/score/cpu.h>
27 #include <stdint.h>
28 
29 #ifndef ASM /* ASM */
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif /* __cplusplus */
34 
35 /* --- BIOS service interrupt number --- */
36 /* number of interrupt servicing video functions */
37 #define INTERRUPT_NO_VIDEO_SERVICES 0x10
38 
43 typedef struct {
44  uint32_t reg_eax;
45  uint32_t reg_ebx;
46  uint32_t reg_ecx;
47  uint32_t reg_edx;
48  uint32_t reg_esi;
49  uint32_t reg_edi;
50  uint16_t reg_ds;
51  uint16_t reg_es;
52  uint16_t reg_fs;
53  uint16_t reg_gs;
54 } RTEMS_PACKED i386_realmode_interrupt_registers;
55 
70 extern void *i386_get_default_rm_buffer(uint16_t *size);
71 
86 extern int i386_real_interrupt_call(
87  uint8_t interrupt_number,
88  i386_realmode_interrupt_registers *ir
89 );
90 
91 #ifdef __cplusplus
92 }
93 #endif /* __cplusplus */
94 
95 #endif /* ASM */
96 
97 #endif /* _REALMODE_INT_H */
void * i386_get_default_rm_buffer(uint16_t *size)
Returns buffer and its size usable with real mode interrupt call.
Definition: realmode_int.c:228
Used for passing and retrieving registers content to/from real mode interrupt call.
Definition: realmode_int.h:43
int i386_real_interrupt_call(uint8_t interrupt_number, i386_realmode_interrupt_registers *ir)
Call to real mode interrupt with specified int NO and processor registers.
Definition: realmode_int.c:233
unsigned size
Definition: tte.h:74