History log of /src/sys/compat/netbsd32/syscalls.master
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
# 1.147 09-May-2025 martin

PR 59352: add netbsd32 compat for semtimedop(2)


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
# 1.146 20-May-2024 christos

branches: 1.146.2;
Rename dup3110 to dup3100 to match historical practice for NetBSD-11,
because we already have kevent100. Fix compat_dup3 to belong in compat_100
not compat_110.


# 1.145 19-May-2024 christos

version dup3


Revision tags: thorpej-ifq-base thorpej-altq-separation-base
# 1.144 30-Jul-2023 rin

COMPAT_NETBSD32: Add support for epoll(2).


# 1.143 30-Jul-2023 rin

COMPAT_NETBSD32: Add support for memfd_create(2).


# 1.142 29-Jul-2023 rin

COMPAT_NETBSD32: Catch up with sys___kevent100() addition.

XXX
Add epoll_* and memfd_create.


Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
# 1.141 20-Sep-2021 thorpej

Add the eventfd(2) system call to COMPAT_NETBSD32.


# 1.140 20-Sep-2021 thorpej

Add timerfd system calls to COMPAT_NETBSD32.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.139 10-Oct-2020 rin

Teach about getrandom(2) to COMPAT_NETBSD32.


# 1.138 16-May-2020 christos

Add ACL support for FFS. From FreeBSD.


# 1.137 26-Apr-2020 thorpej

Mirror the change made to native -- move futex calls to 166-168.


# 1.136 26-Apr-2020 thorpej

Add a NetBSD native futex implementation, mostly written by riastradh@.
Map the COMPAT_LINUX futex calls to the native ones.


Revision tags: bouyer-xenpvh-base2
# 1.135 22-Apr-2020 thorpej

Remove _lwp_gettid(2) system call. This problem is going to be solved
another way. (Note: this call was never exposed in libc, so we can just
recycle the syscall number.)


Revision tags: phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base phil-wifi-20200406
# 1.134 04-Apr-2020 thorpej

branches: 1.134.2;
Add support for lazily generating a "global thread ID" for a LWP. This
identifier uniquely identifies an LWP across the entire system, and will
be used in future improvements in user-space synchronization primitives.

(Test disabled and libc stub not included intentionally so as to avoid
multiple libc version bumps.)


# 1.133 12-Mar-2020 pgoyette

Split out the quota code from the rest of compat_netbsd32 module. This
allows loading of compat_netbsd32 on kernels that don't have ``options
QUOTA'' enabled.


# 1.132 07-Mar-2020 pgoyette

Properly mark netbsd32_compat_43 syscalls that are directly implemented
by calling their compat_43 equivalents. With these changes, and with
built-in versions of COMPAT_NETBSD32, COMPAT_NOMID, and COMPAT_09, I can
now run a netbsd-0.9 statically linked i386 (32-bit) version of /bin/ls
on a 9.99.x amd64 host!

Addresses PR kern/55047 but more changes coming to handle non-built-in
modules.

XXX pullup-9


Revision tags: is-mlppp-base ad-namecache-base3 ad-namecache-base2
# 1.131 18-Jan-2020 kamil

Catch up after getpid/getgid/getuid changes in native ABI in 2008

getpid(), getuid() and getgid() used to call respectively sys_getpid(),
sys_getuid() and sys_getgid(). In the BSD4.3 compat mode there was a
fallback to call sys_getpid_with_ppid() and related functions.

In 2008 the compat ifdef was removed in sys/kern/syscalls.master r. 1.216.

For purity reasons we probably shall restore the NetBSD original behavior
and implement BSD4.3 one as a compat module, however it is not worth the
complexity.

Align the netbsd32 compat ABI to native ABI and call functions that return
two integers as in BSD4.3.


Revision tags: ad-namecache-base1 ad-namecache-base phil-wifi-20191119
# 1.130 04-Nov-2019 rin

branches: 1.130.2;
netbsd32_size_t should be used instead of size_t for argument of
32-bit syscalls:

- netbsd32___getvfsstat90: bufsize
- netbsd32___fhstatvfs190: fh_size

No need to pullup, since these syscalls were introduced after
branch of netbsd-9.


# 1.129 04-Nov-2019 rin

For netbsd32_readlinkat(2), bufsize is netbsd_size_t, not size_t.
Since bufsize is the last argument, this affects only LP64EB.

XXX
pullup to netbsd-9, -8, and -7


# 1.128 22-Sep-2019 christos

Add a new member to struct vfsstat and grow the unused members
The new member is caled f_mntfromlabel and it is the dkw_wname
of the corresponding wedge. This is now used by df -W to display
the mountpoint name as NAME=


Revision tags: netbsd-9-base
# 1.127 18-Jun-2019 christos

branches: 1.127.2;
Add ifdef for quota and include the syscall numbers header


# 1.126 18-Jun-2019 christos

use option quota


Revision tags: phil-wifi-20190609 isaki-audio2-base
# 1.125 27-Jan-2019 pgoyette

Merge the [pgoyette-compat] branch


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.124 24-Dec-2018 mrg

move mmap(), compat 40 mount(), pipe() and getfh() into their own files
as the implementation is non trivial or is compat. mark old mount()
properly instead of manually #if'ing ito to ENOSYS.


Revision tags: pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
# 1.123 31-Jul-2018 rjs

Add getsockopt2().


Revision tags: pgoyette-compat-0728
# 1.122 12-Jul-2018 maxv

Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.


Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
# 1.121 10-May-2018 christos

branches: 1.121.2;
add {send,recv}mmsg


Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.120 06-Jan-2018 kamil

branches: 1.120.2;
Revert vadvise(2) removal

This system call was used in legacy Lisp code, that was inherited to modern
age and still compiled against supported compat layers (e.g. in clisp,
oaklisp, Franz Lisp).

It used to instruct the kernel about paging policy (G/C aware, flush etc).

Newly compiled code (assuming that it will detect vadvise()) will use the
libc stub for vadvise(). The headers for this interface are gone.

vadvise(2) could be marked as COMPAT_80, but as long as we support ultrix,
sunos or aout68k ABI, don't bother with this.

Requested by <mrg>


# 1.119 19-Dec-2017 kamil

Drop SYS_vadvise

The (o)vadvise syscall is dummy since the beginning of NetBSD.

It is an obsolete remnant from the old UNIX.

Sponsored by <The NetBSD Foundation>


# 1.118 19-Dec-2017 kamil

Drop SYS_sbrk

sbrk - change data segment size

This syscall is dummy since the inception of the project.

Sponsored by <The NetBSD Foundation>


# 1.117 19-Dec-2017 kamil

Drop the sstk(2) syscall stub

sstk - change stack section size

This functionality has never been implemented and is a remnant from 16-bit
UNIX. This stub appeared with the first NetBSD commit.

Sponsored by <The NetBSD Foundation>


# 1.116 19-Dec-2017 kamil

Sync syscalls.master in compat_netbsd32(8) with kern/syscalls.master

___lwp_part60 removed 'const' from the ts argument.

'const struct timespec *ts' -> 'struct timespec *ts'

Sponsored by <The NetBSD Foundation>


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.115 19-Oct-2016 skrll

branches: 1.115.8;
PR kern/51514: ptrace(2) fails for 32-bit process on 64-bit kernel

Updated from the original patch in the PR by me.


Revision tags: nick-nhusb-base-20161004
# 1.114 23-Sep-2016 skrll

Add wait6 and clock_getcpuclockid2


Revision tags: localcount-20160914
# 1.113 10-Sep-2016 skrll

Add _sched_protect


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.112 03-Dec-2015 pgoyette

branches: 1.112.2;
Split out the SYSV IPC stuff into its own compat_netbsd32_sysvipc
module. Adjust dependencies as needed.


# 1.111 01-Dec-2015 pgoyette

Prepare for new compat_netbsd32_mqueue module to be split out of
compat_netbsd32. Refactor the COMPAT_50 code related to mqueue,
and update the syscall definitions. Remove dependency on mqueue
from the compat_netbsd32 module (the new module will gain this
dependency).

Continuation of work on PR kern/50489


# 1.110 01-Dec-2015 pgoyette

Mark the nfssvc syscall as auto-loadable from the compat_netbsd32_nfssrv
module (to be committed shortly).


Revision tags: nick-nhusb-base-20150921
# 1.109 23-Jun-2015 dholland

Don't reference netbsd32_nfssvc unless NFSSERVER is defined.
Fixes PR 49994.


# 1.108 22-Jun-2015 mrg

add netbsd32 support for nfssvc(2). we do this by defining 5 copyin/out
functions that do all the ugly work, are just plain copyin/out for the
native system calls, and do the necessary translations for netbsd32.

with this i'm able to run 32 bit nfsd and mountd on 64 bit kernel and
mount the file systems remotely.


# 1.107 21-Jun-2015 martin

Add pset_* calls


# 1.106 21-Jun-2015 martin

Cosmetics: fill in details about some currently unimplemented syscalls.


# 1.105 21-Jun-2015 martin

Add the two versioned mq_* calls I missed in the last round


# 1.104 20-Jun-2015 martin

Add sigqueuinfo, modctl and mq_*.


# 1.103 16-Jun-2015 martin

Add posix_fallocate and fdiscard


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.102 25-Feb-2015 christos

readlinkat returns ssize_t


Revision tags: nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.101 13-Jun-2014 joerg

branches: 1.101.2; 1.101.4;
Rename argument like the native syscall.


Revision tags: rmind-smpnet-nbase rmind-smpnet-base
# 1.100 15-May-2014 njoly

Fix setcontext signature, which has a single argument not three.


Revision tags: yamt-pagecache-base9
# 1.99 30-Apr-2014 njoly

Do not use native off_t type under compat netbsd32, but a new
netbsd32_off_t that provide the expected alignment for 64bit types.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.98 17-Oct-2013 njoly

branches: 1.98.2;
Change mknodat(2) device argument type from uint32_t to dev_t.
Adds needed extra PAD argument for 64bit alignment, and libc wrapper.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
# 1.97 29-Mar-2013 christos

branches: 1.97.4;
compat glue for new lwp_park


Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.96 02-Oct-2012 christos

kernel portion of clock_nanosleep()


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4
# 1.95 08-Apr-2012 martin

branches: 1.95.2;
Rework posix_spawn locking and memory management:
- always provide a vmspace for the new proc, initially borrowing from proc0
(this part fixes PR 46286)
- increase parallelism between parent and child if arguments allow this,
avoiding a potential deadlock on exec_lock
- add a new flag for userland to request old (lockstepped) behaviour for
better error reporting
- adapt test cases to the previous two and add a new variant to test the
diagnostics flag
- fix a few memory (and lock) leaks
- provide netbsd32 compat


Revision tags: jmcneill-usbmp-base8 jmcneill-usbmp-base7
# 1.94 10-Mar-2012 joerg

P1003_1B_SEMAPHORE is no longer optional.


# 1.93 08-Mar-2012 joerg

Add entry for _ksem_timedwait.


Revision tags: jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
# 1.92 19-Feb-2012 rmind

Make SA calls obsolete (use stubs in kern case, as libc needs them for now).


Revision tags: jmcneill-usbmp-base2 netbsd-6-base
# 1.91 01-Feb-2012 dholland

branches: 1.91.2;
Update compat_netbsd32 for new quotactl.


# 1.90 01-Feb-2012 dholland

Change the syscall API for quotas over to the new non-proplib one.

- struct vfs_quotactl_args -> struct quotactl_args
- add sys/stdint.h to sys/quotactl.h for clean userland build
- install sys/quotactl.h in /usr/include
- update set lists for same
- add new marshalling code in libquota
- add new unmarshalling code in vfs_syscalls.c
- discard proplib interpreter code in vfs_quotactl.c
- add dispatching code for the 14 quotactl ops in vfs_quotactl.c
- mark the proplib quotactl syscall obsolete
- add a new syscall number for the new quotactl syscall
- change the name of the syscall to __quotactl()
- remove the decl of the old quotactl from quota/quotaprop.h
- add a decl of the new quotactl to sys/quotactl.h
- update the libc build
- update ktruss
- remove proplib marshalling code from libquota
- update copy of syscall table in gdb ppc sources
- hack rumphijack to accomodate new quotactl name (as I recall,
pooka wanted such a name change to simplify something, but I
don't really see what/how)

This change appears to require a kernel version bump for rumpish
reasons.


# 1.89 31-Jan-2012 matt

Add the *at syscalls and other missing syscalls.


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3
# 1.88 08-Nov-2011 njoly

branches: 1.88.4;
Add kqueue1(2) support.


Revision tags: yamt-pagecache-base2 yamt-pagecache-base
# 1.87 31-Aug-2011 njoly

branches: 1.87.2;
Add dup3 syscall support.


# 1.86 05-Jul-2011 njoly

Add pipe2 syscall now needed for popen(3).


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
# 1.85 06-Mar-2011 bouyer

merge the bouyer-quota2 branch. This adds a new on-disk format
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.

See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.84 02-Mar-2010 pooka

branches: 1.84.2; 1.84.4; 1.84.6;
Kill fs_nfs.h and #ifdef NFS by making getfh() support unconditional
and nfssvc unsupport unconditional. nfs server was just a fancy
NOP anyway for all except Ultrix. I know I'm boring but I couldn't
imagine why someone would want to run an Ultrix nfs server (and I
also doubt that it would work anymore with all the changes to fs
exporting etc).


# 1.83 02-Mar-2010 pooka

-fs_lfs.h


# 1.82 02-Mar-2010 pooka

Remove lfs syscall support from compat. I can't really imagine
anyone wanting to run lfs megamaid as a e.g. FreeBSD binary.
Besides, the real action has been in fcntl() for >5 years now.
The only place where the compat syscalls might have made the tiniest
bit of sense was netbsd32, but they were unimplemented there.


Revision tags: uebayasi-xip-base
# 1.81 14-Dec-2009 matt

branches: 1.81.2;
Merge from matt-nb5-mips64


Revision tags: matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 jym-xensuspend-nbase
# 1.80 17-May-2009 pooka

pad -> PAD


Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
# 1.79 16-Mar-2009 njoly

Fix dev_t alignment, by not using the new 64bit value directly but
rather a 32bit aligned version (netbsd32_dev_t = netbsd32_uint64).

ok by cube@.


Revision tags: nick-hppapmap-base2
# 1.78 26-Feb-2009 christos

fix kernel build with no options NTP


Revision tags: mjf-devfs2-base
# 1.77 13-Jan-2009 pooka

branches: 1.77.2;
Convert the syscalls.master to a format from which it is easier
to parse and generate the compat name and basename (e.g. __stat50
and stat). Use this to autogenerate __RENAME()'s to the rump_syscalls
header so that they can be called e.g. rump_sys_socket() instead
of rump_sys___socket30().


# 1.76 13-Jan-2009 pooka

UNIMPL police: remove pseudo-prototypes


# 1.75 11-Jan-2009 christos

merge christos-time_t


Revision tags: christos-time_t-nbase christos-time_t-base haad-dm-base2 haad-nbase2 ad-audiomp2-base haad-dm-base
# 1.74 22-Nov-2008 mrg

branches: 1.74.4;
implement netbsd32__sched_setparam(), netbsd32__sched_getparam(),
netbsd32__sched_setaffinity() and netbsd32__sched_getaffinity().


# 1.73 19-Nov-2008 ad

Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime


# 1.72 14-Nov-2008 ad

Replace semid_t with intptr_t. No function change. This is a libc/kernel
private interface and so the name change should not affect any third
party code.


# 1.71 12-Nov-2008 ad

Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.


Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1
# 1.70 15-Oct-2008 wrstuden

branches: 1.70.2; 1.70.4;
Merge wrstuden-revivesa into HEAD.


Revision tags: wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
# 1.69 24-Apr-2008 ad

branches: 1.69.2; 1.69.4; 1.69.8;
- Retire SYCALL_MPSAFE. With the exceptions of darwin and irix emulations,
all system calls are now MPSAFE.
- Remove unneeded acquire/release of kernel_lock.


Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
# 1.68 24-Feb-2008 martin

branches: 1.68.2;
Desupport compatibility for the old posix_fadvise syscall per yamt's
request and just ignore it.


Revision tags: nick-net80211-sync-base mjf-devfs-base
# 1.67 27-Jan-2008 martin

branches: 1.67.2; 1.67.6;
Catch up with versioning of posix_fadvise


# 1.66 26-Jan-2008 dsl

Add a wrapper for posix_fadvise()


Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
# 1.65 19-Jan-2008 dsl

Add netbsd32 wrapper for sys_mremap(), compiles, and assuming the mmap()
wrapper is ok, it should work!
I presume the kernel knows not to map above 4GB though....


Revision tags: vmlocking2-base3 matt-armv6-base
# 1.64 17-Dec-2007 dsl

Remove all the 'const'. Although the fields might be 32bit pointers to
constant data, the 'const' applies to the field itself - which is stupid.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase jmcneill-pm-base
# 1.63 07-Dec-2007 ad

branches: 1.63.4;
Add: _lwp_setname, _lwp_getname, _lwp_ctl.


Revision tags: vmlocking2-base1 bouyer-xenamd64-base2 vmlocking-nbase bouyer-xenamd64-base reinoud-bufcleanup-base
# 1.62 09-Nov-2007 dsl

branches: 1.62.2;
Add arguments to sys_syscall and sys___syscall.
Use MI wrappers for them in netbsd32.
Change prefix for constants from netbsd32 to NETBSD32 (used in #defines etc).


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base yamt-x86pmap-base4 yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
# 1.61 15-Aug-2007 ad

branches: 1.61.2; 1.61.6; 1.61.8;
Changes to make ktrace LKM friendly and reduce ifdef KTRACE. Proposed
on tech-kern.


# 1.60 07-Aug-2007 ad

- Fix a bug with _lwp_park() where if the computed wakeup time was under
1 microsecond into the future, the thread could enter an untimed sleep.
- Change the signature of _lwp_park() to accept an lwpid_t and second
hint pointer, but do so in a way that remains compatible with older
pthread libraries. This can be used to wake another thread before the
calling thread goes asleep, saving at least one syscall + involuntary
context switch. This turns out to be a fairly large win on the condvar
benchmarks that I have tried.
- Mark some more syscalls MP safe.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
# 1.59 04-Mar-2007 christos

branches: 1.59.2; 1.59.6; 1.59.10; 1.59.14;
fix fallout from caddr_t changes.


# 1.58 04-Mar-2007 christos

Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.


Revision tags: ad-audiomp-base
# 1.57 19-Feb-2007 cube

Mark MPSAFE the syscalls that are not translated (and of course, only when
the native syscall is itself marked MPSAFE).


# 1.56 18-Feb-2007 cube

Add missing lwp syscalls. Put them all together into a new file,
netbsd32_lwp.c, and remove remaining traces of SA.

This still needs some MD (and possibly MI, depending on the chosen
solution) changes to actually work.


Revision tags: post-newlock2-merge
# 1.55 09-Feb-2007 ad

branches: 1.55.2;
Merge newlock2 to head.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
# 1.54 09-Nov-2006 cube

- Make better use of COMPAT_XX type in syscalls.master
- Remove useless (thanks to COMPAT_XX behaviour) #ifdefs in
syscalls.master
- Make netbsd32_compat_43.c compiled per COMPAT_LINUX32 because the latter
needs stuff from it.

Fixes Perry's PR#34951.


Revision tags: yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
# 1.53 01-Sep-2006 matt

branches: 1.53.2; 1.53.4;
Don't conditionalize *sys_ptrace. The lack of sys_ptrace will be dealt
with differently.


# 1.52 30-Aug-2006 cube

Protect netbsd32_ptrace with options PTRACE.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.51 31-Jul-2006 martin

Step 1 to make filehandles completely opaque to userland


# 1.50 13-Jul-2006 pavel

do not protect the getfh syscall by
#if defined(NFS) || defined(NFSSERVER).
The native syscall also isn't.


# 1.49 13-Jul-2006 martin

Fix alignement problems for fhandle_t, exposed by gcc4.1.

While touching all vptofh/fhtovp functions, get rid of VFS_MAXFIDSIZ,
version the getfh(2) syscall and explicitly pass the size available in
the filehandle from userland.

Discussed on tech-kern, with lots of help from yamt (thanks!).


# 1.48 26-Jun-2006 mrg

version the socket(2) syscall. for compat30 socket, we use
EPROTONOSUPPORT instead of EAFNOSUPPORT.

from pavel@ with a little bit of clean up from myself.

XXX: netbsd32 (and perhaps other emulations) should be able
XXX: to call the standard socket calls for this i think, but
XXX: revisit this at another time.


Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base simonb-timecounters-base
# 1.47 31-May-2006 drochner

branches: 1.47.2;
support ntp_gettime again
compile tested by Havard Eidnes


# 1.46 29-May-2006 drochner

Remove emulation of ntp_gettime. In preparation for "timecounters" we
will change "struct ntptimeval", so some translation would be necessary.
ntp_gettine is considered dispensable, the only userland program known
to use it is "ntptime".


Revision tags: yamt-pdpolicy-base5 elad-kernelauth-base
# 1.45 05-May-2006 cube

branches: 1.45.2;
Follow on fhstat(2) versioning. While there, add sys_posix_fadvise (no
emulation needed there).


Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3
# 1.44 29-Mar-2006 cube

Implement the _lwp* and sa_* families of syscalls, using the newly
introduced hooks in the native code.


Revision tags: peter-altq-base yamt-pdpolicy-base2
# 1.43 06-Mar-2006 cube

branches: 1.43.2; 1.43.4;
Implement the SysV IPC family of syscalls.


Revision tags: yamt-pdpolicy-base
# 1.42 05-Mar-2006 cube

branches: 1.42.2;
Implement the ksem_* family of syscalls.


Revision tags: yamt-uio_vmspace-base5
# 1.41 11-Dec-2005 christos

branches: 1.41.4; 1.41.6;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base ktrace-lwp-base
# 1.40 23-Oct-2005 cube

- Split sys_kevent into kevent1 so that it can be used by COMPAT_NETBSD32
code.

- To achieve COMPAT_NETBSD32 compatibility, introduce a parameter to
kevent1 that points to functions that do the actual copyin/copyout
operations. This is similar to what was done in FreeBSD by Paul Saab.

- Add the COMPAT_NETBSD32 definitions and hooks.


Revision tags: yamt-vop-base
# 1.39 19-Aug-2005 christos

branches: 1.39.2;
Fix lossage I created with the 64 bit ino_t change.


# 1.38 19-Aug-2005 christos

64 bit inode changes.


# 1.37 23-Jul-2005 cube

Implement __sigtimedwait(2).


# 1.36 23-Jul-2005 cube

Implement the timer_create(2) family of syscalls.


# 1.35 12-Jul-2005 cube

Add the *xattr(2) family of syscalls. Just like the *extattr(2) family,
they're waiting for an actual FS back-end to be tested, but are still
straightforward enough.


# 1.34 11-Jul-2005 cube

Add rasctl(2). Thanks to the regression tests for that syscall, I was able
to discover the bugs in netbsd32_setitimer() and netbsd32_execve().


# 1.33 10-Jul-2005 cube

Add support for fsync_range(2).


# 1.32 10-Jul-2005 cube

Implement __clone(2).


# 1.31 09-Jul-2005 cube

Implement pselect(2) and pollts(2).


# 1.30 08-Jul-2005 cube

Add mlockall(2) and munlockall(2).


# 1.29 08-Jul-2005 cube

Implement the extattr(3) family of syscalls.

XXX However, those remain untested as there are currently no backend for
XXX extattr(9) in NetBSD.


# 1.28 04-Jul-2005 cube

branches: 1.28.2;
Implement uuidgen(2).


# 1.27 30-May-2005 chs

track change to swapctl args in kern/syscalls.master.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base
# 1.26 17-Jun-2004 cube

o Add support for the statvfs family of syscalls (statvfs1, fstatvfs1,
fhstatvfs1 and getvfsstat)
o Move the statfs family out of netbsd32_fs.c and netbsd32_netbsd.c to
netbsd_compat_20.c, compiled with COMPAT_20

Reviewed by christos@.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.25 25-Oct-2003 chs

allow COMPAT_SUNOS without COMPAT_43.


# 1.24 13-Oct-2003 fvdl

Define compat_16 as valid prefix; define the 1.6 compat sigreturn.


# 1.23 18-Jan-2003 thorpej

branches: 1.23.2;
Merge the nathanw_sa branch.


Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
# 1.22 23-Oct-2002 scw

In preparation for COMPAT_NETBSD32 on SH-5:

- The MD netbsd32_machdep.h header now defines the 32-bit pointer type
instead of using u_int32_t everywhere,
- The MD netbsd32_machdep.h header now defines a macro (at least on
current implementations) which converts a 32-bit pointer to its 64-bit
equivalent,
- Change the MI code to utilise the above two items in all the right places,
- Implement netbsd32___sigaction_sigtramp().

Tested on Sparc64 by Matt Green.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.21 29-Apr-2002 mrg

build the netbsd32_compat* objects into libcompat.a, so they are available
to emulations not just netbsd itself. rename the compat_10 functions to
match everything else. fixes a problem reported by julian coleman.


Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.20 30-May-2001 mrg

branches: 1.20.2;
use _KERNEL_OPT.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.19 10-Apr-2001 kleink

Slight indentation nit.


# 1.18 02-Feb-2001 mrg

branches: 1.18.2;
add lchflags, issetugid, utrace, reserves for [gs]etcontext, and sched/SA.


# 1.17 27-Jan-2001 thorpej

getpid(2) is MP-safe.


# 1.16 09-Dec-2000 mycroft

Add the %% separators.


# 1.15 30-Nov-2000 jdolecek

always include netbsd32_ntp_adjtime(), LKMify


# 1.14 07-Aug-2000 bjh21

Changes to syscalls.master to exclude ntp_adjtime(2) entirely if NTP is not
defined. Changes to other files will follow in a moment.


# 1.13 09-Jul-2000 mrg

- massive warning fix fest.
- fix pread/pwrite return values (plus some other syscalls that looked
similarly broken).
- prototypes and clean up for netbsd32_ioctl.c

now getpw*() works under compat32!


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base chs-ubc2-newbase
# 1.12 31-Jan-2000 christos

__semctl13 -> ____semctl13


# 1.11 30-Dec-1999 eeh

Update to 32-bit compatibility routines.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
# 1.10 11-Oct-1999 eeh

branches: 1.10.2;
Add netbsd32_compat_14.c

Rename everything from compat_netbsd32 -> netbsd32 so we don't have silly
names like compat_14_compat_netbsd32_sys_shmctl().


Revision tags: chs-ubc2-base
# 1.9 12-Jul-1999 kleink

branches: 1.9.2;
XSH5: change function signature to `void *sbrk(intptr_t)'.


# 1.8 09-Jun-1999 christos

Propagate kern changes


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.7 25-Mar-1999 mrg

branches: 1.7.4;
move sparc32 to netbsd32; split out MD part (signal handling) (mostly via repository copy, rename and perl -pi :-)


# 1.6 25-Mar-1999 mrg

make this match the main syscalls.master a bit better.


# 1.5 10-Dec-1998 christos

Defopt COMPAT_43


Revision tags: kenh-if-detach-base chs-ubc-base
# 1.4 19-Oct-1998 tron

Defopt SYSVMSG, SYSVSEM and SYSVSHM.


# 1.3 01-Oct-1998 eeh

Overhaul. Now will run simple things like /bin/sh and /bin/echo.


# 1.2 26-Aug-1998 mrg

make oreboot work.


# 1.1 26-Aug-1998 mrg

add a 32-bit compatibility module for the sparc64 port, so it can run NetBSD/sparc binaries with a LP64 kernel.