ELF kernels should use an ELF sysvec. This allows us to move a.out

specific files to those platforms that acutally support a.out.
This commit is contained in:
obrien 2000-11-05 10:41:35 +00:00
parent f95e798de3
commit c3b27201d1
5 changed files with 9 additions and 4 deletions

View File

@ -598,9 +598,7 @@ isofs/cd9660/cd9660_rrip.c optional cd9660
isofs/cd9660/cd9660_util.c optional cd9660
isofs/cd9660/cd9660_vfsops.c optional cd9660
isofs/cd9660/cd9660_vnops.c optional cd9660
kern/imgact_aout.c standard
kern/imgact_elf.c standard
kern/imgact_gzip.c optional gzip
kern/imgact_shell.c standard
kern/inflate.c optional gzip
kern/init_main.c standard
@ -646,7 +644,6 @@ kern/kern_threads.c standard
kern/kern_time.c standard
kern/kern_timeout.c standard
kern/kern_xxx.c standard
kern/link_aout.c standard
kern/link_elf.c standard
kern/md5c.c standard
kern/subr_autoconf.c standard

View File

@ -351,6 +351,9 @@ isa/psm.c optional psm
isa/sio.c count sio
isa/syscons_isa.c optional sc
isa/vga_isa.c optional vga
kern/imgact_aout.c standard
kern/imgact_gzip.c optional gzip
kern/link_aout.c standard
kern/subr_diskmbr.c standard
libkern/divdi3.c standard
libkern/moddi3.c standard

View File

@ -84,7 +84,7 @@ static int exec_elf_imgact __P((struct image_params *imgp));
static int elf_trace = 0;
SYSCTL_INT(_debug, OID_AUTO, elf_trace, CTLFLAG_RW, &elf_trace, 0, "");
static struct sysentvec elf_freebsd_sysvec = {
struct sysentvec elf_freebsd_sysvec = {
SYS_MAXSYSCALL,
sysent,
0,

View File

@ -295,7 +295,11 @@ proc0_init(void *dummy __unused)
session0.s_count = 1;
session0.s_leader = p;
#ifdef __ELF__
p->p_sysent = &elf_freebsd_sysvec;
#else
p->p_sysent = &aout_sysvec;
#endif
p->p_flag = P_INMEM | P_SYSTEM;
p->p_stat = SRUN;

View File

@ -84,6 +84,7 @@ struct sysentvec {
#ifdef _KERNEL
extern struct sysentvec aout_sysvec;
extern struct sysentvec elf_freebsd_sysvec;
extern struct sysent sysent[];
#define NO_SYSCALL (-1)