mirror of
https://github.com/opnsense/src.git
synced 2026-02-15 08:38:13 -05:00
o Introduce private types for use in linux syscalls for two reasons:
1. establish type independence for ease in porting and,
2. provide a visual queue as to which syscalls have proper
prototypes to further cleanup the i386/alpha split.
Linuxulator types are prefixed by 'l_'. void and char have not
been "virtualized".
o Provide dummy functions for all syscalls and remove dummy functions
or implementations of truely obsolete syscalls.
o Sanitize the shm*, sem* and msg* syscalls.
o Make a first attempt to implement the linux_sysctl syscall. At this
time it only returns one MIB (KERN_VERSION), but most importantly,
it tells us when we need to add additional sysctls :-)
o Bump the kenel version up to 2.4.2 (this is not the same as the
KERN_VERSION MIB, BTW).
o Implement new syscalls, of which most are specific to i386. Our
syscall table is now up to date with Linux 2.4.2. Some highlights:
- Implement the 32-bit uid_t and gid_t bases syscalls.
- Implement a couple of 64-bit file size/offset bases syscalls.
o Fix or improve numerous syscalls and prototypes.
o Reduce style(9) violations while I'm here. Especially indentation
inconsistencies within the same file are addressed. Re-indenting
did not obfuscate actual changes to the extend that it could not
be combined.
NOTE: I spend some time testing these changes and found that if there
were regressions, they were not caused by these changes AFAICT.
It was observed that installing a RH 7.1 runtime environment
did make matters worse. Hangs and/or reboots have been observed
with and without these changes, so when it failed to make life
better in cases it doesn't look like it made it worse.
36 lines
985 B
Makefile
36 lines
985 B
Makefile
# $FreeBSD$
|
|
|
|
MAINTAINER= marcel@FreeBSD.org
|
|
|
|
.PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_ARCH}/linux
|
|
|
|
KMOD= linux
|
|
SRCS= linux_dummy.c linux_file.c linux_getcwd.c linux_ioctl.c linux_ipc.c \
|
|
linux_machdep.c linux_mib.c linux_misc.c linux_signal.c linux_socket.c \
|
|
linux_stats.c linux_sysctl.c linux_sysent.c linux_sysvec.c \
|
|
linux_util.c opt_compat.h opt_linux.h opt_vmpage.h vnode_if.h
|
|
OBJS= linux_locore.o
|
|
|
|
.if ${MACHINE_ARCH} == "i386"
|
|
SRCS+= linux_uid16.c imgact_linux.c
|
|
.endif
|
|
|
|
CLEANFILES= linux_assym.h linux_genassym.o
|
|
|
|
linux_assym.h: linux_genassym.o
|
|
.if exists(@)
|
|
linux_assym.h: @/kern/genassym.sh
|
|
.endif
|
|
sh @/kern/genassym.sh linux_genassym.o > ${.TARGET}
|
|
|
|
linux_locore.o: linux_locore.s linux_assym.h
|
|
${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
|
|
${.IMPSRC} -o ${.TARGET}
|
|
|
|
linux_genassym.o: linux_genassym.c linux.h @ machine
|
|
${CC} -c ${CFLAGS} ${.IMPSRC}
|
|
|
|
opt_compat.h:
|
|
echo "#define COMPAT_43 1" > opt_compat.h
|
|
|
|
.include <bsd.kmod.mk>
|