RTEMS 6.1-rc1
|
Real mode interrupt call implementation. More...
Data Structures | |
struct | RTEMS_PACKED |
Used for passing and retrieving registers content to/from real mode interrupt call. More... | |
Functions | |
void * | i386_get_default_rm_buffer (uint16_t *size) |
Returns buffer and its size usable with real mode interrupt call. More... | |
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. More... | |
Real mode interrupt call implementation.
void * i386_get_default_rm_buffer | ( | uint16_t * | size | ) |
Returns buffer and its size usable with real mode interrupt call.
Provides position to real mode buffer. It is buffer accessible from real mode context - it is located below address ~0x100000 in order for it to be accessible This buffer is meant to be pointed to by segReg:GenPurpReg and through this get bigger portion of an information to/from interrupt service routine than just by using register.
[out] | size | pointer to variable, where the size of buffer will be filled |
pointer | to buffer |
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.
This function allows calling interrupts in real mode and to set processor registers as desired before interrupt call is made and to retrieve the registers content after call was made.
[in] | interrupt_number | interrupt number to be called |
[in] | ir | pointer to structure containing registers to be passed to interrupt and to retrieve register content after call was made. |
0 | call failed (GDT too small or pagin is on) |
1 | call successful |