 9647fbc94e
			
		
	
	
		9647fbc94e
		
	
	
	
	
		
			
			added consistency check in random; added source of randomness internal to random using timing; only retrieve random bins that are full.
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* General macros and constants used by the kernel. */
 | |
| #ifndef CONST_H
 | |
| #define CONST_H
 | |
| 
 | |
| #include <minix/config.h>
 | |
| #include <minix/bitmap.h>
 | |
| 
 | |
| #include "config.h"
 | |
| #include "debug.h"
 | |
| 
 | |
| /* Map a process number to a privilege structure id. */
 | |
| #define s_nr_to_id(n)	(NR_TASKS + (n) + 1)
 | |
| 
 | |
| /* Translate a pointer to a field in a structure to a pointer to the structure
 | |
|  * itself. So it translates '&struct_ptr->field' back to 'struct_ptr'.
 | |
|  */
 | |
| #define structof(type, field, ptr) \
 | |
| 	((type *) (((char *) (ptr)) - offsetof(type, field)))
 | |
| 
 | |
| /* Translate an endpoint number to a process number, return success. */
 | |
| #define isokendpt(e,p) isokendpt_d((e),(p),0)
 | |
| #define okendpt(e,p)   isokendpt_d((e),(p),1)
 | |
| 
 | |
| /* Constants used in virtual_copy(). Values must be 0 and 1, respectively. */
 | |
| #define _SRC_	0
 | |
| #define _DST_	1
 | |
| 
 | |
| #define get_sys_bit(map,bit) \
 | |
| 	( MAP_CHUNK(map.chunk,bit) & (1 << CHUNK_OFFSET(bit) )
 | |
| #define get_sys_bits(map,bit) \
 | |
| 	( MAP_CHUNK(map.chunk,bit) )
 | |
| #define set_sys_bit(map,bit) \
 | |
| 	( MAP_CHUNK(map.chunk,bit) |= (1 << CHUNK_OFFSET(bit) )
 | |
| #define unset_sys_bit(map,bit) \
 | |
| 	( MAP_CHUNK(map.chunk,bit) &= ~(1 << CHUNK_OFFSET(bit) )
 | |
| #define NR_SYS_CHUNKS	BITMAP_CHUNKS(NR_SYS_PROCS)
 | |
| 
 | |
| #define reallock  do { int d; d = intr_disabled(); intr_disable(); locklevel++; if(d && locklevel == 1) { minix_panic("reallock while interrupts disabled first time", __LINE__); } } while(0)
 | |
| 
 | |
| #define realunlock   do { if(!intr_disabled()) { minix_panic("realunlock while interrupts enabled", __LINE__); } if(locklevel < 1) { minix_panic("realunlock while locklevel below 1", __LINE__); } locklevel--; if(locklevel == 0) { intr_enable(); } } while(0)
 | |
| 
 | |
| /* Disable/ enable hardware interrupts. The parameters of lock() and unlock()
 | |
|  * are used when debugging is enabled. See debug.h for more information.
 | |
|  */
 | |
| #define lock      reallock
 | |
| #define unlock    realunlock
 | |
| 
 | |
| /* args to intr_init() */
 | |
| #define INTS_ORIG	0	/* restore interrupts */
 | |
| #define INTS_MINIX	1	/* initialize interrupts for minix */
 | |
| 
 | |
| /* for kputc() */
 | |
| #define END_OF_KMESS	0
 | |
| 
 | |
| #endif /* CONST_H */
 |