head 1.14; access; symbols netbsd-9-5-RELEASE:1.14 netbsd-11-0-RELEASE:1.14 netbsd-11-0-RC7:1.14 netbsd-11-0-RC6:1.14 netbsd-11-0-RC5:1.14 netbsd-11-0-RC4:1.14 netbsd-11-0-RC3:1.14 netbsd-11-0-RC2:1.14 netbsd-11-0-RC1:1.14 perseant-exfatfs-base-20250801:1.14 netbsd-11:1.14.0.56 netbsd-11-base:1.14 netbsd-10-1-RELEASE:1.14 perseant-exfatfs-base-20240630:1.14 perseant-exfatfs:1.14.0.54 perseant-exfatfs-base:1.14 netbsd-8-3-RELEASE:1.14 netbsd-9-4-RELEASE:1.14 netbsd-10-0-RELEASE:1.14 netbsd-10-0-RC6:1.14 netbsd-10-0-RC5:1.14 netbsd-10-0-RC4:1.14 netbsd-10-0-RC3:1.14 netbsd-10-0-RC2:1.14 thorpej-ifq:1.14.0.52 thorpej-ifq-base:1.14 thorpej-altq-separation:1.14.0.50 thorpej-altq-separation-base:1.14 netbsd-10-0-RC1:1.14 netbsd-10:1.14.0.48 netbsd-10-base:1.14 bouyer-sunxi-drm:1.14.0.46 bouyer-sunxi-drm-base:1.14 netbsd-9-3-RELEASE:1.14 thorpej-i2c-spi-conf2:1.14.0.44 thorpej-i2c-spi-conf2-base:1.14 thorpej-futex2:1.14.0.42 thorpej-futex2-base:1.14 thorpej-cfargs2:1.14.0.40 thorpej-cfargs2-base:1.14 cjep_sun2x-base1:1.14 cjep_sun2x:1.14.0.38 cjep_sun2x-base:1.14 cjep_staticlib_x-base1:1.14 netbsd-9-2-RELEASE:1.14 cjep_staticlib_x:1.14.0.36 cjep_staticlib_x-base:1.14 thorpej-i2c-spi-conf:1.14.0.34 thorpej-i2c-spi-conf-base:1.14 thorpej-cfargs:1.14.0.32 thorpej-cfargs-base:1.14 thorpej-futex:1.14.0.30 thorpej-futex-base:1.14 netbsd-9-1-RELEASE:1.14 bouyer-xenpvh-base2:1.14 phil-wifi-20200421:1.14 bouyer-xenpvh-base1:1.14 phil-wifi-20200411:1.14 bouyer-xenpvh:1.14.0.28 bouyer-xenpvh-base:1.14 is-mlppp:1.14.0.26 is-mlppp-base:1.14 phil-wifi-20200406:1.14 netbsd-8-2-RELEASE:1.14 ad-namecache-base3:1.14 netbsd-9-0-RELEASE:1.14 netbsd-9-0-RC2:1.14 ad-namecache-base2:1.14 ad-namecache-base1:1.14 ad-namecache:1.14.0.24 ad-namecache-base:1.14 netbsd-9-0-RC1:1.14 phil-wifi-20191119:1.14 netbsd-9:1.14.0.22 netbsd-9-base:1.14 phil-wifi-20190609:1.14 netbsd-8-1-RELEASE:1.14 netbsd-8-1-RC1:1.14 isaki-audio2:1.14.0.20 isaki-audio2-base:1.14 pgoyette-compat-merge-20190127:1.14 pgoyette-compat-20190127:1.14 pgoyette-compat-20190118:1.14 pgoyette-compat-1226:1.14 pgoyette-compat-1126:1.14 pgoyette-compat-1020:1.14 pgoyette-compat-0930:1.14 pgoyette-compat-0906:1.14 netbsd-7-2-RELEASE:1.13 pgoyette-compat-0728:1.14 netbsd-8-0-RELEASE:1.14 phil-wifi:1.14.0.18 phil-wifi-base:1.14 pgoyette-compat-0625:1.14 netbsd-8-0-RC2:1.14 pgoyette-compat-0521:1.14 pgoyette-compat-0502:1.14 pgoyette-compat-0422:1.14 netbsd-8-0-RC1:1.14 pgoyette-compat-0415:1.14 pgoyette-compat-0407:1.14 pgoyette-compat-0330:1.14 pgoyette-compat-0322:1.14 pgoyette-compat-0315:1.14 netbsd-7-1-2-RELEASE:1.13 pgoyette-compat:1.14.0.16 pgoyette-compat-base:1.14 netbsd-7-1-1-RELEASE:1.13 tls-maxphys-base-20171202:1.14 matt-nb8-mediatek:1.14.0.14 matt-nb8-mediatek-base:1.14 nick-nhusb-base-20170825:1.14 perseant-stdc-iso10646:1.14.0.12 perseant-stdc-iso10646-base:1.14 netbsd-8:1.14.0.10 netbsd-8-base:1.14 prg-localcount2-base3:1.14 prg-localcount2-base2:1.14 prg-localcount2-base1:1.14 prg-localcount2:1.14.0.8 prg-localcount2-base:1.14 pgoyette-localcount-20170426:1.14 bouyer-socketcan-base1:1.14 jdolecek-ncq:1.14.0.6 jdolecek-ncq-base:1.14 pgoyette-localcount-20170320:1.14 netbsd-7-1:1.13.0.10 netbsd-7-1-RELEASE:1.13 netbsd-7-1-RC2:1.13 nick-nhusb-base-20170204:1.14 netbsd-7-nhusb-base-20170116:1.13 bouyer-socketcan:1.14.0.4 bouyer-socketcan-base:1.14 pgoyette-localcount-20170107:1.14 netbsd-7-1-RC1:1.13 nick-nhusb-base-20161204:1.14 pgoyette-localcount-20161104:1.14 netbsd-7-0-2-RELEASE:1.13 nick-nhusb-base-20161004:1.14 localcount-20160914:1.14 netbsd-7-nhusb:1.13.0.8 netbsd-7-nhusb-base:1.13 pgoyette-localcount-20160806:1.14 pgoyette-localcount-20160726:1.14 pgoyette-localcount:1.14.0.2 pgoyette-localcount-base:1.14 nick-nhusb-base-20160907:1.14 nick-nhusb-base-20160529:1.14 netbsd-7-0-1-RELEASE:1.13 nick-nhusb-base-20160422:1.14 nick-nhusb-base-20160319:1.14 nick-nhusb-base-20151226:1.13 netbsd-7-0:1.13.0.6 netbsd-7-0-RELEASE:1.13 nick-nhusb-base-20150921:1.13 netbsd-7-0-RC3:1.13 netbsd-7-0-RC2:1.13 netbsd-7-0-RC1:1.13 nick-nhusb-base-20150606:1.13 nick-nhusb-base-20150406:1.13 nick-nhusb:1.13.0.4 nick-nhusb-base:1.13 netbsd-6-0-6-RELEASE:1.10 netbsd-6-1-5-RELEASE:1.10 netbsd-7:1.13.0.2 netbsd-7-base:1.13 yamt-pagecache-base9:1.13 yamt-pagecache-tag8:1.10 netbsd-6-1-4-RELEASE:1.10 netbsd-6-0-5-RELEASE:1.10 tls-earlyentropy:1.12.0.2 tls-earlyentropy-base:1.13 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.12 riastradh-drm2-base3:1.12 netbsd-6-1-3-RELEASE:1.10 netbsd-6-0-4-RELEASE:1.10 netbsd-6-1-2-RELEASE:1.10 netbsd-6-0-3-RELEASE:1.10 rmind-smpnet-nbase:1.13 netbsd-6-1-1-RELEASE:1.10 riastradh-drm2-base2:1.11 riastradh-drm2-base1:1.11 riastradh-drm2:1.11.0.8 riastradh-drm2-base:1.11 rmind-smpnet:1.11.0.6 rmind-smpnet-base:1.13 netbsd-6-1:1.10.0.24 netbsd-6-0-2-RELEASE:1.10 netbsd-6-1-RELEASE:1.10 khorben-n900:1.11.0.4 netbsd-6-1-RC4:1.10 netbsd-6-1-RC3:1.10 agc-symver:1.11.0.2 agc-symver-base:1.11 netbsd-6-1-RC2:1.10 netbsd-6-1-RC1:1.10 yamt-pagecache-base8:1.10 netbsd-6-0-1-RELEASE:1.10 yamt-pagecache-base7:1.10 matt-nb6-plus-nbase:1.10 yamt-pagecache-base6:1.10 netbsd-6-0:1.10.0.20 netbsd-6-0-RELEASE:1.10 netbsd-6-0-RC2:1.10 tls-maxphys:1.10.0.18 tls-maxphys-base:1.13 matt-nb6-plus:1.10.0.16 matt-nb6-plus-base:1.10 netbsd-6-0-RC1:1.10 jmcneill-usbmp-base10:1.10 yamt-pagecache-base5:1.10 jmcneill-usbmp-base9:1.10 yamt-pagecache-base4:1.10 jmcneill-usbmp-base8:1.10 jmcneill-usbmp-base7:1.10 jmcneill-usbmp-base6:1.10 jmcneill-usbmp-base5:1.10 jmcneill-usbmp-base4:1.10 jmcneill-usbmp-base3:1.10 jmcneill-usbmp-pre-base2:1.10 jmcneill-usbmp-base2:1.10 netbsd-6:1.10.0.14 netbsd-6-base:1.10 jmcneill-usbmp:1.10.0.12 jmcneill-usbmp-base:1.10 jmcneill-audiomp3:1.10.0.10 jmcneill-audiomp3-base:1.10 yamt-pagecache-base3:1.10 yamt-pagecache-base2:1.10 yamt-pagecache:1.10.0.8 yamt-pagecache-base:1.10 rmind-uvmplock-nbase:1.10 cherry-xenmp:1.10.0.6 cherry-xenmp-base:1.10 bouyer-quota2-nbase:1.10 bouyer-quota2:1.10.0.4 bouyer-quota2-base:1.10 jruoho-x86intr:1.10.0.2 jruoho-x86intr-base:1.10 matt-mips64-premerge-20101231:1.10 uebayasi-xip-base4:1.7 uebayasi-xip-base3:1.6 yamt-nfs-mp-base11:1.6 uebayasi-xip-base2:1.5 yamt-nfs-mp-base10:1.5 uebayasi-xip-base1:1.5 rmind-uvmplock:1.4.0.4 rmind-uvmplock-base:1.10 yamt-nfs-mp:1.4.0.2 yamt-nfs-mp-base9:1.4 uebayasi-xip:1.3.0.2 uebayasi-xip-base:1.3 matt-premerge-20091211:1.3 jym-xensuspend-nbase:1.2; locks; strict; comment @# @; 1.14 date 2016.01.26.23.22.22; author pooka; state Exp; branches; next 1.13; commitid f7VGowJUPFMwUuSy; 1.13 date 2014.04.25.13.10.42; author pooka; state Exp; branches 1.13.4.1; next 1.12; commitid w7UeE3VtEhyK74yx; 1.12 date 2014.03.10.22.44.11; author pooka; state Exp; branches 1.12.2.1; next 1.11; commitid 8hI0uZ8d6iknMcsx; 1.11 date 2013.03.07.18.49.13; author pooka; state Exp; branches 1.11.6.1; next 1.10; 1.10 date 2011.01.02.12.52.25; author pooka; state Exp; branches 1.10.8.1 1.10.18.1; next 1.9; 1.9 date 2010.11.21.17.34.11; author pooka; state Exp; branches; next 1.8; 1.8 date 2010.11.17.21.49.52; author pooka; state Exp; branches; next 1.7; 1.7 date 2010.10.27.20.34.50; author pooka; state Exp; branches; next 1.6; 1.6 date 2010.09.01.19.13.38; author pooka; state Exp; branches; next 1.5; 1.5 date 2010.04.14.14.12.48; author pooka; state Exp; branches; next 1.4; 1.4 date 2010.03.05.18.41.46; author pooka; state Exp; branches 1.4.2.1 1.4.4.1; next 1.3; 1.3 date 2009.11.26.09.20.07; author pooka; state Exp; branches 1.3.2.1; next 1.2; 1.2 date 2009.10.15.16.39.22; author pooka; state Exp; branches; next 1.1; 1.1 date 2009.10.14.17.17.00; author pooka; state Exp; branches; next ; 1.13.4.1 date 2016.03.19.11.30.37; author skrll; state Exp; branches; next ; commitid 2PHKtPSg1vDV9fZy; 1.12.2.1 date 2014.08.10.06.56.51; author tls; state Exp; branches; next ; commitid SqReByPtwiDFCMLx; 1.11.6.1 date 2014.05.18.17.46.18; author rmind; state Exp; branches; next ; commitid mL5ZYSzpqK6QS2Bx; 1.10.8.1 date 2014.05.22.11.41.15; author yamt; state Exp; branches; next ; commitid VUUXuyNWnt3AKwBx; 1.10.18.1 date 2013.06.23.06.20.28; author tls; state Exp; branches; next 1.10.18.2; commitid eVjr9caYRQbRGHUw; 1.10.18.2 date 2014.08.20.00.04.41; author tls; state Exp; branches; next 1.10.18.3; commitid jTnpym9Qu0o4R1Nx; 1.10.18.3 date 2017.12.03.11.39.16; author jdolecek; state Exp; branches; next ; commitid XcIYRZTAh1LmerhA; 1.4.2.1 date 2010.03.05.18.41.46; author yamt; state dead; branches; next 1.4.2.2; 1.4.2.2 date 2010.03.11.15.04.38; author yamt; state Exp; branches; next 1.4.2.3; 1.4.2.3 date 2010.08.11.22.55.07; author yamt; state Exp; branches; next 1.4.2.4; 1.4.2.4 date 2010.10.09.03.32.44; author yamt; state Exp; branches; next ; 1.4.4.1 date 2010.05.30.05.18.06; author rmind; state Exp; branches; next 1.4.4.2; 1.4.4.2 date 2011.03.05.20.56.15; author rmind; state Exp; branches; next ; 1.3.2.1 date 2010.04.30.14.44.30; author uebayasi; state Exp; branches; next 1.3.2.2; 1.3.2.2 date 2010.10.22.07.22.50; author uebayasi; state Exp; branches; next 1.3.2.3; 1.3.2.3 date 2010.11.06.08.08.51; author uebayasi; state Exp; branches; next ; desc @@ 1.14 log @generate privhdrs to new location @ text @; $NetBSD: rumpkern.ifspec,v 1.13 2014/04/25 13:10:42 pooka Exp $ NAME|kern PUBHDR|include/rump/rumpkern_if_pub.h PRIVHDR|include/rump-sys/kern_if.h WRAPPERS|librump/rumpkern/rumpkern_if_wrappers.c ; type | name | args ; int |module_init |const struct modinfo * const *, size_t int |module_fini |const struct modinfo * int |kernelfsym_load|void *, uint64_t, char *, uint64_t struct uio * |uio_setup |void *, size_t, off_t, enum rump_uiorw size_t |uio_getresid |struct uio * off_t |uio_getoff |struct uio * size_t |uio_free |struct uio * struct kauth_cred*|cred_create |uid_t, gid_t, size_t, gid_t * void |cred_put |struct kauth_cred * ; lwp and proc creation / switching interfaces int |lwproc_rfork |int int |lwproc_newlwp |pid_t void |lwproc_switch |struct lwp * void |lwproc_releaselwp |void struct lwp * |lwproc_curlwp |void void |lwproc_sysent_usenative|void void |allbetsareoff_setid |pid_t, int ; wrappers for etfs interfaces. They are not handled by librump, ; but having the function interfaces here makes it possible to always ; link clients which can then get a runtime failure if components ; handling etfs are not present. int |etfs_register |const char *, const char *, enum rump_etfs_type int |etfs_register_withsize |const char *, const char *, \ enum rump_etfs_type, uint64_t, \ uint64_t int |etfs_remove |const char * @ 1.13 log @Move the etfs linkage from rumpvfs to rumpkern, and replace the weak alias show with an honest pointer indirection. No client-visible change. (apart from this version working e.g. on musl w/ dlopen) @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.12 2014/03/10 22:44:11 pooka Exp $ d5 1 a5 1 PRIVHDR|librump/rumpkern/rumpkern_if_priv.h @ 1.13.4.1 log @Sync with HEAD @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.14 2016/01/26 23:22:22 pooka Exp $ d5 1 a5 1 PRIVHDR|include/rump-sys/kern_if.h @ 1.12 log @rump_getversion() does not require a thread context, so make it a straight call instead of being wrapped around rump_pub_getversion(). @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.11 2013/03/07 18:49:13 pooka Exp $ d32 10 @ 1.12.2.1 log @Rebase. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.13 2014/04/25 13:10:42 pooka Exp $ a31 10 ; wrappers for etfs interfaces. They are not handled by librump, ; but having the function interfaces here makes it possible to always ; link clients which can then get a runtime failure if components ; handling etfs are not present. int |etfs_register |const char *, const char *, enum rump_etfs_type int |etfs_register_withsize |const char *, const char *, \ enum rump_etfs_type, uint64_t, \ uint64_t int |etfs_remove |const char * @ 1.11 log @Support multiple syscall emuls. Rump kernels with only local clients have it easy, since they have to support at most two syscall vectors (some calls such as mount/unmount can be made only through the "native" NetBSD vector). Remote clients are a whole different tin of green beans. This change addresses local clients only. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.10 2011/01/02 12:52:25 pooka Exp $ a10 2 int |getversion |void @ 1.11.6.1 log @sync with head @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.11 2013/03/07 18:49:13 pooka Exp $ d11 2 a33 10 ; wrappers for etfs interfaces. They are not handled by librump, ; but having the function interfaces here makes it possible to always ; link clients which can then get a runtime failure if components ; handling etfs are not present. int |etfs_register |const char *, const char *, enum rump_etfs_type int |etfs_register_withsize |const char *, const char *, \ enum rump_etfs_type, uint64_t, \ uint64_t int |etfs_remove |const char * @ 1.10 log @There is a use case where preserving the parent's fd table is relevant, so to accommodate that change rump_lwproc_newproc() to rump_lwproc_rfork(). The new interface has the rfork() fd table semantics. The equivalent of rump_lwproc_newproc() is rump_lwproc_rfork(RUMP_RFCFDG). @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.9 2010/11/21 17:34:11 pooka Exp $ d31 1 @ 1.10.8.1 log @sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.10 2011/01/02 12:52:25 pooka Exp $ d11 2 a30 1 void |lwproc_sysent_usenative|void a32 10 ; wrappers for etfs interfaces. They are not handled by librump, ; but having the function interfaces here makes it possible to always ; link clients which can then get a runtime failure if components ; handling etfs are not present. int |etfs_register |const char *, const char *, enum rump_etfs_type int |etfs_register_withsize |const char *, const char *, \ enum rump_etfs_type, uint64_t, \ uint64_t int |etfs_remove |const char * @ 1.10.18.1 log @resync from head @ text @d1 1 a1 1 ; $NetBSD$ a30 1 void |lwproc_sysent_usenative|void @ 1.10.18.2 log @Rebase to HEAD as of a few days ago. @ text @d11 2 a33 10 ; wrappers for etfs interfaces. They are not handled by librump, ; but having the function interfaces here makes it possible to always ; link clients which can then get a runtime failure if components ; handling etfs are not present. int |etfs_register |const char *, const char *, enum rump_etfs_type int |etfs_register_withsize |const char *, const char *, \ enum rump_etfs_type, uint64_t, \ uint64_t int |etfs_remove |const char * @ 1.10.18.3 log @update from HEAD @ text @d5 1 a5 1 PRIVHDR|include/rump-sys/kern_if.h @ 1.9 log @Realize the >1yo comment above rump_reboot and retire them to make room for sys_reboot. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.8 2010/11/17 21:49:52 pooka Exp $ d26 1 a26 1 int |lwproc_newproc |void @ 1.8 log @remove rump_pub_syscall -- unused/unusable @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.7 2010/10/27 20:34:50 pooka Exp $ a10 1 void |reboot |int @ 1.7 log @Retire the old sysproxy nonsense (as part of doing it slightly better). Introduce rump_pub_syscall() as the generic interface for making system calls with already marshalled arguments. So it's kinda like syscall(2), except it also remembered to breathe instead of having to figure out how to deal with 64bit values. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.6 2010/09/01 19:13:38 pooka Exp $ a33 2 int |syscall |int, void *, register_t * @ 1.6 log @Rewrite rump process and lwp allocation routines now that I have some idea of how they should be done. This change essentially moves the responsibility of pid/lwpid management from the application side into the rump kernel. It also introduces clear rules on what happens when, i.e. introduces semantics (these semantics will be documented on the man page, and more importantly in atf tests). @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.5 2010/04/14 14:12:48 pooka Exp $ d35 1 a35 3 int |sysproxy_set |rump_sysproxy_t, void * int |sysproxy_socket_setup_client |int int |sysproxy_socket_setup_server |int @ 1.5 log @Use "struct kauth_cred *" instead of kauth_cred_t in all exported interfaces. Allows to remove hairbrained _t typedef dance. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.4 2010/03/05 18:41:46 pooka Exp $ a23 1 struct kauth_cred*|cred_suserget|void d26 8 a33 7 ; lwp interfaces. these need much love struct lwp * |newproc_switch |void struct lwp * |lwp_alloc |pid_t, lwpid_t struct lwp * |lwp_alloc_and_switch |pid_t, lwpid_t struct lwp * |lwp_curlwp |void void |lwp_switch |struct lwp * void |lwp_release |struct lwp * @ 1.4 log @Use improved kernel module interfaces: instead of adding + loading modules in bootstrap, just add them. Load them later the same way as the kernel does: module_init_class(). Change the signature of rump_module_init() to take a vector instead of just one module. All modules in a DSO should be init'd at the same time because they might depend on each other, and code outside the rump kernel cannot know which way. (binary kernel modules are still loaded with rump_sys_modctl() the usual way). @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.3 2009/11/26 09:20:07 pooka Exp $ d23 3 a25 3 kauth_cred_t |cred_create |uid_t, gid_t, size_t, gid_t * kauth_cred_t |cred_suserget |void void |cred_put |kauth_cred_t @ 1.4.4.1 log @sync with head @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.4 2010/03/05 18:41:46 pooka Exp $ d23 3 a25 3 struct kauth_cred*|cred_create |uid_t, gid_t, size_t, gid_t * struct kauth_cred*|cred_suserget|void void |cred_put |struct kauth_cred * @ 1.4.4.2 log @sync with head @ text @d1 1 a1 1 ; $NetBSD$ d11 1 d24 1 d27 11 a37 8 ; lwp and proc creation / switching interfaces int |lwproc_rfork |int int |lwproc_newlwp |pid_t void |lwproc_switch |struct lwp * void |lwproc_releaselwp |void struct lwp * |lwproc_curlwp |void void |allbetsareoff_setid |pid_t, int @ 1.4.2.1 log @file rumpkern.ifspec was added on branch yamt-nfs-mp on 2010-03-11 15:04:38 +0000 @ text @d1 37 @ 1.4.2.2 log @sync with head @ text @a0 37 ; $NetBSD$ NAME|kern PUBHDR|include/rump/rumpkern_if_pub.h PRIVHDR|librump/rumpkern/rumpkern_if_priv.h WRAPPERS|librump/rumpkern/rumpkern_if_wrappers.c ; type | name | args ; void |reboot |int int |getversion |void int |module_init |const struct modinfo * const *, size_t int |module_fini |const struct modinfo * int |kernelfsym_load|void *, uint64_t, char *, uint64_t struct uio * |uio_setup |void *, size_t, off_t, enum rump_uiorw size_t |uio_getresid |struct uio * off_t |uio_getoff |struct uio * size_t |uio_free |struct uio * kauth_cred_t |cred_create |uid_t, gid_t, size_t, gid_t * kauth_cred_t |cred_suserget |void void |cred_put |kauth_cred_t ; lwp interfaces. these need much love struct lwp * |newproc_switch |void struct lwp * |lwp_alloc |pid_t, lwpid_t struct lwp * |lwp_alloc_and_switch |pid_t, lwpid_t struct lwp * |lwp_curlwp |void void |lwp_switch |struct lwp * void |lwp_release |struct lwp * int |sysproxy_set |rump_sysproxy_t, void * int |sysproxy_socket_setup_client |int int |sysproxy_socket_setup_server |int @ 1.4.2.3 log @sync with head. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.4.2.2 2010/03/11 15:04:38 yamt Exp $ d23 3 a25 3 struct kauth_cred*|cred_create |uid_t, gid_t, size_t, gid_t * struct kauth_cred*|cred_suserget|void void |cred_put |struct kauth_cred * @ 1.4.2.4 log @sync with head @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.4.2.3 2010/08/11 22:55:07 yamt Exp $ d24 1 d27 7 a33 8 ; lwp and proc creation / switching interfaces int |lwproc_newproc |void int |lwproc_newlwp |pid_t void |lwproc_switch |struct lwp * void |lwproc_releaselwp |void struct lwp * |lwproc_curlwp |void void |allbetsareoff_setid |pid_t, int @ 1.3 log @Add rump_kernelfsym_load(), which loads the kernel symbol table. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.2 2009/10/15 16:39:22 pooka Exp $ d14 2 a15 2 int |module_init |struct modinfo *, prop_dictionary_t int |module_fini |struct modinfo * @ 1.3.2.1 log @Sync with HEAD. @ text @d1 1 a1 1 ; $NetBSD$ d14 2 a15 2 int |module_init |const struct modinfo * const *, size_t int |module_fini |const struct modinfo * d23 3 a25 3 struct kauth_cred*|cred_create |uid_t, gid_t, size_t, gid_t * struct kauth_cred*|cred_suserget|void void |cred_put |struct kauth_cred * @ 1.3.2.2 log @Sync with HEAD (-D20101022). @ text @d24 1 d27 7 a33 8 ; lwp and proc creation / switching interfaces int |lwproc_newproc |void int |lwproc_newlwp |pid_t void |lwproc_switch |struct lwp * void |lwproc_releaselwp |void struct lwp * |lwproc_curlwp |void void |allbetsareoff_setid |pid_t, int @ 1.3.2.3 log @Sync with HEAD. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.3.2.2 2010/10/22 07:22:50 uebayasi Exp $ d35 3 a37 1 int |syscall |int, void *, register_t * @ 1.2 log @Give lwp usage some much-needed love: stop treating lwp0 as the all-sink and make sure each separate thread in rump has its own lwp. Happy-go-lucky callers will get scheduled a temporary lwp on entry, while true lwp connoisseurs may request a stable lwp for their purposes. Some more love may be required later down the road, but for now different threads will stepping on each others toes. @ text @d1 1 a1 1 ; $NetBSD: rumpkern.ifspec,v 1.1 2009/10/14 17:17:00 pooka Exp $ d16 1 @ 1.1 log @Create rump public interfaces from description tables. This allows us to control and wrap all entry points from "userspace" into rump. This in turn is necessary for the upcoming rump cpu scheduler. For each interface "foo" a public wrapper called "rump_foo" is created. It calls the internal implementation "rumppriv_foo". In case foo is to be called from inside of rump kernel space, the private interface "rumppriv_foo" is used -- the userspace wrapper prototypes are not even exported into the rump kernel namespace. Needless to say, the rump kernel internal interfaces are not exported for users. Now, three classes of interfaces fight for control of rump: + the noble local control interfaces (which this commit addresses) + the insidious rump system calls (which are generated from syscalls.master) + and the evil vnode interfaces (which are generated from vnode_if.src) @ text @d1 1 a1 1 ; $NetBSD$ d27 6 a32 5 struct lwp * |newproc_switch |void struct lwp * |setup_curlwp |pid_t, lwpid_t, int struct lwp * |get_curlwp |void void |set_curlwp |struct lwp * void |clear_curlwp |void @