62 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* Global variables used in the kernel. This file contains the declarations;
 | |
|  * storage space for the variables is allocated in table.c, because EXTERN is
 | |
|  * defined as extern unless the _TABLE definition is seen. 
 | |
|  */
 | |
| #ifdef _TABLE
 | |
| #undef EXTERN
 | |
| #define EXTERN
 | |
| #endif
 | |
| 
 | |
| /* MINIX' shutdown sequence uses watchdog timers to stop system services. The
 | |
|  * flag shutting_down must be initialized to FALSE. We rely on the compiler's 
 | |
|  * default initialization (0) of global variables here.
 | |
|  */
 | |
| EXTERN int skip_stop_sequence;	/* set to TRUE in case of an exception() */
 | |
| EXTERN int shutting_down;	/* TRUE if the system is shutting down */
 | |
| EXTERN struct proc *shutdown_process;	/* process awaiting shutdown of */
 | |
| EXTERN timer_t shutdown_timer;  /* watchdog function called after timeout */ 
 | |
| 
 | |
| /* Kernel information structures. This groups vital kernel information. */
 | |
| EXTERN phys_bytes aout;		/* address of a.out headers */
 | |
| EXTERN struct kinfo kinfo;	/* kernel information for users */
 | |
| EXTERN struct machine machine;	/* machine information for users */
 | |
| EXTERN struct kmessages kmess;  /* diagnostic messages in kernel */
 | |
| EXTERN struct memory mem[NR_MEMS];	/* base and size of chunks of memory */
 | |
| 
 | |
| /* Low level notifications may be put on the 'held' queue to prevent races. */
 | |
| EXTERN struct proc *held_head;	/* head of queue of held-up interrupts */
 | |
| EXTERN struct proc *held_tail;	/* tail of queue of held-up interrupts */
 | |
| EXTERN unsigned char k_reenter;	/* kernel reentry count (entry count less 1)*/
 | |
| 
 | |
| /* Process table.  Here to stop too many things having to include proc.h. */
 | |
| EXTERN struct proc *proc_ptr;	/* pointer to currently running process */
 | |
| 
 | |
| /* Miscellaneous. */
 | |
| EXTERN unsigned lost_ticks;	/* clock ticks counted outside the clock task */
 | |
| 
 | |
| #if (CHIP == INTEL)
 | |
| 
 | |
| /* Interrupt related variables. */
 | |
| EXTERN irq_hook_t irq_hooks[NR_IRQ_HOOKS];	/* hooks for general use */
 | |
| EXTERN irq_hook_t *irq_handlers[NR_IRQ_VECTORS];/* list of IRQ handlers */
 | |
| EXTERN int irq_actids[NR_IRQ_VECTORS];		/* IRQ ID bits active */
 | |
| EXTERN int irq_use;			/* bit map of all in-use irq's */
 | |
| 
 | |
| /* Miscellaneous. */
 | |
| EXTERN reg_t mon_ss, mon_sp;	/* monitor stack */
 | |
| EXTERN int mon_return;		/* true if return to the monitor possible */
 | |
| 
 | |
| /* Variables that are initialized elsewhere are just extern here. */
 | |
| extern struct system_image image[]; 	/* system image processes (table.c) */
 | |
| extern char *t_stack[];		/* stack space for kernel tasks (table.c) */
 | |
| extern struct segdesc_s gdt[];	/* protected mode global descriptor (protect.c) */
 | |
| 
 | |
| EXTERN _PROTOTYPE( void (*level0_func), (void) );
 | |
| #endif /* (CHIP == INTEL) */
 | |
| 
 | |
| #if (CHIP == M68000)
 | |
| /* M68000 specific variables go here. */
 | |
| #endif
 | |
| 
 | |
| 
 | 
