FreeBASIC  0.91.0
sys_isr.c File Reference
#include "../fb.h"
#include <dpmi.h>
#include <go32.h>
#include <pc.h>
Include dependency graph for sys_isr.c:

Go to the source code of this file.

Data Structures

struct  _FB_DOS_STACK_INFO
 

Macros

#define fb_lock_memory_fn(fn_name)   fb_dos_lock_code( fn_name, fn_name ## _end - fn_name )
 Ensures that the specified memory region isn't swappable. More...
 
#define fb_lock_memory_data(var_name)   fb_dos_lock_data( &var_name ## _start, &var_name ## _end - &var_name ## _start )
 

Typedefs

typedef struct _FB_DOS_STACK_INFO FB_DOS_STACK_INFO
 

Functions

void __fb_hDrvIntHandler_PIC1 (void)
 
void __fb_hDrvIntHandler_PIC2 (void)
 
static int do_lock (int is_code, int(*proc)(__dpmi_meminfo *), const void *address, size_t size)
 
int fb_dos_lock_data (const void *address, size_t size)
 
int fb_dos_lock_code (const void *address, size_t size)
 
int fb_dos_unlock_data (const void *address, size_t size)
 
int fb_dos_unlock_code (const void *address, size_t size)
 
static __inline__ int _my_es (void)
 
static __inline__ int _my_fs (void)
 
static __inline__ int _my_gs (void)
 
static void fb_isr_exit (void)
 
static int fb_isr_init (void)
 
int fb_isr_set (unsigned irq_number, FnIntHandler pfnIntHandler, size_t fn_size, size_t stack_size)
 
int fb_isr_reset (unsigned irq_number)
 
FnIntHandler fb_isr_get (unsigned irq_number)
 

Variables

static int isr_inited = FALSE
 
static size_t function_sizes [16] = { 0 }
 
char __fb_hDrvIntHandler_start
 
__dpmi_paddr __fb_hDrvIntHandler_OldIRQs [16]
 
FnIntHandler __fb_hDrvIntHandler [16]
 
FB_DOS_STACK_INFO __fb_hDrvIntStacks [16]
 
unsigned __fb_hDrvSelectors [5]
 
int __fb_dos_cli_level
 
char __fb_hDrvIntHandler_end
 

Macro Definition Documentation

#define fb_lock_memory_data (   var_name)    fb_dos_lock_data( &var_name ## _start, &var_name ## _end - &var_name ## _start )

Definition at line 33 of file sys_isr.c.

#define fb_lock_memory_fn (   fn_name)    fb_dos_lock_code( fn_name, fn_name ## _end - fn_name )

Ensures that the specified memory region isn't swappable.

Definition at line 30 of file sys_isr.c.

Typedef Documentation

Function Documentation

void __fb_hDrvIntHandler_PIC1 ( void  )

Here is the caller graph for this function:

void __fb_hDrvIntHandler_PIC2 ( void  )

Here is the caller graph for this function:

static __inline__ int _my_es ( void  )
static

Definition at line 71 of file sys_isr.c.

Here is the caller graph for this function:

static __inline__ int _my_fs ( void  )
static

Definition at line 79 of file sys_isr.c.

Here is the caller graph for this function:

static __inline__ int _my_gs ( void  )
static

Definition at line 87 of file sys_isr.c.

Here is the caller graph for this function:

static int do_lock ( int  is_code,
int(*)(__dpmi_meminfo *)  proc,
const void *  address,
size_t  size 
)
static

Definition at line 36 of file sys_isr.c.

Here is the caller graph for this function:

int fb_dos_lock_code ( const void *  address,
size_t  size 
)

Definition at line 55 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int fb_dos_lock_data ( const void *  address,
size_t  size 
)

Definition at line 50 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int fb_dos_unlock_code ( const void *  address,
size_t  size 
)

Definition at line 65 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int fb_dos_unlock_data ( const void *  address,
size_t  size 
)

Definition at line 60 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void fb_isr_exit ( void  )
static

Definition at line 94 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

FnIntHandler fb_isr_get ( unsigned  irq_number)

Definition at line 333 of file sys_isr.c.

static int fb_isr_init ( void  )
static

Definition at line 141 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int fb_isr_reset ( unsigned  irq_number)

Definition at line 299 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int fb_isr_set ( unsigned  irq_number,
FnIntHandler  pfnIntHandler,
size_t  fn_size,
size_t  stack_size 
)

Definition at line 254 of file sys_isr.c.

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

int __fb_dos_cli_level
FnIntHandler __fb_hDrvIntHandler[16]
char __fb_hDrvIntHandler_end
__dpmi_paddr __fb_hDrvIntHandler_OldIRQs[16]
char __fb_hDrvIntHandler_start
FB_DOS_STACK_INFO __fb_hDrvIntStacks[16]
unsigned __fb_hDrvSelectors[5]
size_t function_sizes[16] = { 0 }
static

Definition at line 14 of file sys_isr.c.

int isr_inited = FALSE
static

Definition at line 13 of file sys_isr.c.