 6f77685609
			
		
	
	
		6f77685609
		
	
	
	
	
		
			
			mainly in the kernel and headers. This split based on work by Ingmar Alting <iaalting@cs.vu.nl> done for his Minix PowerPC architecture port. . kernel does not program the interrupt controller directly, do any other architecture-dependent operations, or contain assembly any more, but uses architecture-dependent functions in arch/$(ARCH)/. . architecture-dependent constants and types defined in arch/$(ARCH)/include. . <ibm/portio.h> moved to <minix/portio.h>, as they have become, for now, architecture-independent functions. . int86, sdevio, readbios, and iopenable are now i386-specific kernel calls and live in arch/i386/do_* now. . i386 arch now supports even less 86 code; e.g. mpx86.s and klib86.s have gone, and 'machine.protected' is gone (and always taken to be 1 in i386). If 86 support is to return, it should be a new architecture. . prototypes for the architecture-dependent functions defined in kernel/arch/$(ARCH)/*.c but used in kernel/ are in kernel/proto.h . /etc/make.conf included in makefiles and shell scripts that need to know the building architecture; it defines ARCH=<arch>, currently only i386. . some basic per-architecture build support outside of the kernel (lib) . in clock.c, only dequeue a process if it was ready . fixes for new include files files deleted: . mpx/klib.s - only for choosing between mpx/klib86 and -386 . klib86.s - only for 86 i386-specific files files moved (or arch-dependent stuff moved) to arch/i386/: . mpx386.s (entry point) . klib386.s . sconst.h . exception.c . protect.c . protect.h . i8269.c
		
			
				
	
	
		
			73 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| #ifndef _I386_PROTO_H
 | |
| #define _I386_PROTO_H
 | |
| 
 | |
| /* Hardware interrupt handlers. */
 | |
| _PROTOTYPE( void hwint00, (void) );
 | |
| _PROTOTYPE( void hwint01, (void) );
 | |
| _PROTOTYPE( void hwint02, (void) );
 | |
| _PROTOTYPE( void hwint03, (void) );
 | |
| _PROTOTYPE( void hwint04, (void) );
 | |
| _PROTOTYPE( void hwint05, (void) );
 | |
| _PROTOTYPE( void hwint06, (void) );
 | |
| _PROTOTYPE( void hwint07, (void) );
 | |
| _PROTOTYPE( void hwint08, (void) );
 | |
| _PROTOTYPE( void hwint09, (void) );
 | |
| _PROTOTYPE( void hwint10, (void) );
 | |
| _PROTOTYPE( void hwint11, (void) );
 | |
| _PROTOTYPE( void hwint12, (void) );
 | |
| _PROTOTYPE( void hwint13, (void) );
 | |
| _PROTOTYPE( void hwint14, (void) );
 | |
| _PROTOTYPE( void hwint15, (void) );
 | |
| 
 | |
| 
 | |
| /* Exception handlers (real or protected mode), in numerical order. */
 | |
| void _PROTOTYPE( int00, (void) ), _PROTOTYPE( divide_error, (void) );
 | |
| void _PROTOTYPE( int01, (void) ), _PROTOTYPE( single_step_exception, (void) );
 | |
| void _PROTOTYPE( int02, (void) ), _PROTOTYPE( nmi, (void) );
 | |
| void _PROTOTYPE( int03, (void) ), _PROTOTYPE( breakpoint_exception, (void) );
 | |
| void _PROTOTYPE( int04, (void) ), _PROTOTYPE( overflow, (void) );
 | |
| void _PROTOTYPE( int05, (void) ), _PROTOTYPE( bounds_check, (void) );
 | |
| void _PROTOTYPE( int06, (void) ), _PROTOTYPE( inval_opcode, (void) );
 | |
| void _PROTOTYPE( int07, (void) ), _PROTOTYPE( copr_not_available, (void) );
 | |
| void                              _PROTOTYPE( double_fault, (void) );
 | |
| void                              _PROTOTYPE( copr_seg_overrun, (void) );
 | |
| void                              _PROTOTYPE( inval_tss, (void) );
 | |
| void                              _PROTOTYPE( segment_not_present, (void) );
 | |
| void                              _PROTOTYPE( stack_exception, (void) );
 | |
| void                              _PROTOTYPE( general_protection, (void) );
 | |
| void                              _PROTOTYPE( page_fault, (void) );
 | |
| void                              _PROTOTYPE( copr_error, (void) );
 | |
| 
 | |
| /* Software interrupt handlers, in numerical order. */
 | |
| _PROTOTYPE( void trp, (void) );
 | |
| _PROTOTYPE( void s_call, (void) ), _PROTOTYPE( p_s_call, (void) ); 
 | |
| _PROTOTYPE( void level0_call, (void) );
 | |
| 
 | |
| /* klib386.s */
 | |
| _PROTOTYPE( void level0, (void (*func)(void))                           );
 | |
| _PROTOTYPE( void monitor, (void)                                        );
 | |
| _PROTOTYPE( void reset, (void)                                          );
 | |
| _PROTOTYPE( void int86, (void)                     			);
 | |
| _PROTOTYPE( unsigned long read_cr0, (void)                              );
 | |
| _PROTOTYPE( void write_cr0, (unsigned long value)                       );
 | |
| _PROTOTYPE( void write_cr3, (unsigned long value)                       );
 | |
| _PROTOTYPE( unsigned long read_cpu_flags, (void)                        );
 | |
| _PROTOTYPE( void phys_insb, (U16_t port, phys_bytes buf, size_t count)  );
 | |
| _PROTOTYPE( void phys_insw, (U16_t port, phys_bytes buf, size_t count)  );
 | |
| _PROTOTYPE( void phys_outsb, (U16_t port, phys_bytes buf, size_t count) );
 | |
| _PROTOTYPE( void phys_outsw, (U16_t port, phys_bytes buf, size_t count) );
 | |
| 
 | |
| /* protect.c */
 | |
| _PROTOTYPE( void prot_init, (void)                     			);
 | |
| _PROTOTYPE( void init_codeseg, (struct segdesc_s *segdp, phys_bytes base,
 | |
|                 vir_bytes size, int privilege)                          );
 | |
| _PROTOTYPE( void init_dataseg, (struct segdesc_s *segdp, phys_bytes base,
 | |
|                 vir_bytes size, int privilege)                          );
 | |
| _PROTOTYPE( void enable_iop, (struct proc *pp)                          );
 | |
| 
 | |
| /* functions defined in architecture-independent kernel source. */
 | |
| #include "../../proto.h"
 | |
| 
 | |
| #endif
 |