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