1: /* Global variables used in the kernel. */ 2: 3: /* EXTERN is defined as extern except in table.c. */ 4: #ifdef _TABLE 5: #undef EXTERN 6: #define EXTERN 7: #endif 8: 9: /* Kernel memory. */ 10: EXTERN phys_bytes code_base; /* base of kernel code */ 11: EXTERN phys_bytes data_base; /* base of kernel data */ 12: EXTERN phys_bytes aout; /* address of a.out headers */ 13: 14: /* Low level interrupt communications. */ 15: EXTERN struct proc *held_head; /* head of queue of held-up interrupts */ 16: EXTERN struct proc *held_tail; /* tail of queue of held-up interrupts */ 17: EXTERN unsigned char k_reenter; /* kernel reentry count (entry count less 1)*/ 18: 19: /* Process table. Here to stop too many things having to include proc.h. */ 20: EXTERN struct proc *proc_ptr; /* pointer to currently running process */ 21: 22: /* Signals. */ 23: EXTERN int sig_procs; /* number of procs with p_pending != 0 */ 24: 25: /* Memory sizes. */ 26: EXTERN struct memory mem[NR_MEMS]; /* base and size of chunks of memory */ 27: EXTERN phys_clicks tot_mem_size; /* total system memory size */ 28: 29: /* Miscellaneous. */ 30: extern struct tasktab tasktab[];/* initialized in table.c, so extern here */ 31: extern char *t_stack[]; /* initialized in table.c, so extern here */ 32: EXTERN unsigned lost_ticks; /* clock ticks counted outside the clock task */ 33: EXTERN clock_t tty_timeout; /* time to wake up the TTY task */ 34: EXTERN int current; /* currently visible console */ 35: 36: #if (CHIP == INTEL) 37: 38: /* Machine type. */ 39: EXTERN int pc_at; /* PC-AT compatible hardware interface */ 40: EXTERN int ps_mca; /* PS/2 with Micro Channel */ 41: EXTERN unsigned int processor; /* 86, 186, 286, 386, ... */ 42: #if _WORD_SIZE == 2 43: EXTERN int protected_mode; /* nonzero if running in Intel protected mode*/ 44: #else 45: #define protected_mode 1 /* 386 mode implies protected mode */ 46: #endif 47: 48: /* Video card types. */ 49: EXTERN int ega; /* nonzero if console is EGA */ 50: EXTERN int vga; /* nonzero if console is VGA */ 51: 52: /* Miscellaneous. */ 53: EXTERN irq_hook_t *irq_hooks[NR_IRQ_VECTORS]; /* list of IRQ handlers */ 54: EXTERN int irq_actids[NR_IRQ_VECTORS]; /* IRQ ID bits active */ 55: EXTERN int irq_use; /* bit map of all in-use irq's */ 56: EXTERN reg_t mon_ss, mon_sp; /* monitor stack */ 57: EXTERN int mon_return; /* true if return to the monitor possible */ 58: EXTERN phys_bytes mon_params; /* boot parameter block passed in/out */ 59: EXTERN size_t mon_parmsize; /* boot parameter block size */ 60: 61: /* Variables that are initialized elsewhere are just extern here. */ 62: extern struct segdesc_s gdt[]; /* global descriptor table for protected mode*/ 63: 64: EXTERN _PROTOTYPE( void (*level0_func), (void) ); 65: #endif /* (CHIP == INTEL) */ 66: 67: #if (CHIP == M68000) 68: /* Variables that are initialized elsewhere are just extern here. */ 69: extern int keypad; /* Flag for keypad mode */ 70: extern int app_mode; /* Flag for arrow key application mode */ 71: extern int STdebKey; /* nonzero if ctl-alt-Fx detected */ 72: extern struct tty *cur_cons; /* virtual cons currently displayed */ 73: extern unsigned char font8[]; /* 8 pixel wide font table (initialized) */ 74: extern unsigned char font12[]; /* 12 pixel wide font table (initialized) */ 75: extern unsigned char font16[]; /* 16 pixel wide font table (initialized) */ 76: extern unsigned short resolution; /* screen res; ST_RES_LOW..TT_RES_HIGH */ 77: #endif