
. make exec() callers (i.e. vfs and rs) determine the memory layout by explicitly reserving regions using mmap() calls on behalf of the exec()ing process, i.e. handling all of the exec logic, thereby eliminating all special exec() knowledge from VM. . the new procedure is: clear the exec()ing process first, then call third-party mmap()s to reserve memory, then copy the executable file section contents in, all using callbacks tailored to the caller's way of starting an executable . i.e. no more explicit EXEC_NEWMEM-style calls in PM or VM as with rigid 2-section arguments . this naturally allows generalizing exec() by simply loading all ELF sections . drop/merge of lots of duplicate exec() code into libexec . not copying the code sections to vfs and into the executable again is a measurable performance improvement (about 3.3% faster for 'make' in src/servers/)
61 lines
2.0 KiB
C
61 lines
2.0 KiB
C
#ifndef _MINIX_SYS_CONFIG_H
|
|
#define _MINIX_SYS_CONFIG_H 1
|
|
|
|
/*===========================================================================*
|
|
* This section contains user-settable parameters *
|
|
*===========================================================================*/
|
|
#define _MINIX_MACHINE _MACHINE_IBM_PC
|
|
|
|
#define _MACHINE_IBM_PC 1 /* any 8088 or 80x86-based system */
|
|
|
|
/* Word size in bytes (a constant equal to sizeof(int)). */
|
|
#if __ACK__ || __GNUC__
|
|
#define _WORD_SIZE _EM_WSIZE
|
|
#define _PTR_SIZE _EM_WSIZE
|
|
#endif
|
|
|
|
#define _NR_PROCS 256
|
|
#define _NR_SYS_PROCS 64
|
|
|
|
/* Set the CHIP type based on the machine selected. The symbol CHIP is actually
|
|
* indicative of more than just the CPU. For example, machines for which
|
|
* CHIP == INTEL are expected to have 8259A interrrupt controllers and the
|
|
* other properties of IBM PC/XT/AT/386 types machines in general. */
|
|
#define _CHIP_INTEL 1 /* CHIP type for PC, XT, AT, 386 and clones */
|
|
#define _CHIP_M68000 2 /* CHIP type for Atari, Amiga, Macintosh */
|
|
#define _CHIP_SPARC 3 /* CHIP type for SUN-4 (e.g. SPARCstation) */
|
|
|
|
/* Set the FP_FORMAT type based on the machine selected, either hw or sw */
|
|
#define _FP_NONE 0 /* no floating point support */
|
|
#define _FP_IEEE 1 /* conform IEEE floating point standard */
|
|
|
|
#if (_MINIX_MACHINE == _MACHINE_IBM_PC)
|
|
#define _MINIX_CHIP _CHIP_INTEL
|
|
#endif
|
|
|
|
#ifndef _MINIX_FP_FORMAT
|
|
#define _MINIX_FP_FORMAT _FP_NONE
|
|
#endif
|
|
|
|
#ifndef _MINIX_MACHINE
|
|
error "In <minix/sys_config.h> please define _MINIX_MACHINE"
|
|
#endif
|
|
|
|
#ifndef _MINIX_CHIP
|
|
error "In <minix/sys_config.h> please define _MINIX_MACHINE to have a legal value"
|
|
#endif
|
|
|
|
#if (_MINIX_MACHINE == 0)
|
|
error "_MINIX_MACHINE has incorrect value (0)"
|
|
#endif
|
|
|
|
/* Kernel debug checks */
|
|
#define DEBUG_LOCK_CHECK 1 /* Interrupt Lock/unlock sanity checking. */
|
|
|
|
#define _KMESS_BUF_SIZE 10000
|
|
|
|
/* Default stack size (limit) */
|
|
#define DEFAULT_STACK_LIMIT (64 * 1024 * 1024)
|
|
|
|
#endif /* _MINIX_SYS_CONFIG_H */
|