freebsd-nq/sys/kern
Robert Watson 5c8dd34218 Move to C99 sparse structure initialization for the mac_policy_ops
structure definition, rather than using an operation vector
we translate into the structure.  Originally, we used a vector
for two reasons:

(1) We wanted to define the structure sparsely, which wasn't
    supported by the C compiler for structures.  For a policy
    with five entry points, you don't want to have to stick in
    a few hundred NULL function pointers.

(2) We thought it would improve ABI compatibility allowing modules
    to work with kernels that had a superset of the entry points
    defined in the module, even if the kernel had changed its
    entry point set.

Both of these no longer apply:

(1) C99 gives us a way to sparsely define a static structure.

(2) The ABI problems existed anyway, due to enumeration numbers,
    argument changes, and semantic mismatches.  Since the going
    rule for FreeBSD is that you really need your modules to
    pretty closely match your kernel, it's not worth the
    complexity.

This submit eliminates the operation vector, dynamic allocation
of the operation structure, copying of the vector to the
structure, and redoes the vectors in each policy to direct
structure definitions.  One enourmous benefit of this change
is that we now get decent type checking on policy entry point
implementation arguments.

Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-10-30 18:48:51 +00:00
..
bus_if.m Add two interfaces to allow for busses to report the pnpinfo for 2002-10-07 05:06:38 +00:00
clock_if.m
device_if.m
genassym.sh
imgact_aout.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Handle binaries with arbitrary number PT_LOAD sections, not only 2002-10-23 01:57:39 +00:00
imgact_elfN.c
imgact_gzip.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_shell.c
inflate.c
init_main.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
init_sysent.c Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
kern_acct.c Make sure that the accounting credential is saved along with the vp 2002-10-05 20:05:23 +00:00
kern_acl.c
kern_alq.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_clock.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_condvar.c More work on the interaction between suspending and sleeping threads. 2002-10-25 07:11:12 +00:00
kern_conf.c Don't allow dev_stdclone(9) to accept minors larger than the system is 2002-10-05 17:10:28 +00:00
kern_descrip.c Change the way support for asynchronous I/O is indicated to applications 2002-10-27 18:07:41 +00:00
kern_environment.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
kern_event.c Minor comment typo fix. 2002-10-29 20:51:44 +00:00
kern_exec.c - Move the 'done1' label down below the unlock of the proc lock and move 2002-10-11 21:04:01 +00:00
kern_exit.c - Add a new global mutex 'ppeers_lock' to protect the p_peers list of 2002-10-15 00:14:32 +00:00
kern_fork.c Do not lock the process when calling fdfree() (this would have recursed on 2002-10-18 17:45:41 +00:00
kern_idle.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_intr.c Instead of (sizeof(source_buffer) - 1) bytes, copy at most 2002-10-17 21:02:02 +00:00
kern_jail.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
kern_kse.c Check NULL thread mailbox pointer. 2002-10-30 05:09:29 +00:00
kern_kthread.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_ktr.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_ktrace.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_linker.c fix kldload error return when a module is rejected because it's statically 2002-10-17 17:28:57 +00:00
kern_lock.c Have lockinit() initialize the debugging fields of a lock 2002-10-18 01:34:10 +00:00
kern_lockf.c Remove a conditional #include <sys/kernel.h>, it is already 2002-09-14 14:44:41 +00:00
kern_mac.c Move to C99 sparse structure initialization for the mac_policy_ops 2002-10-30 18:48:51 +00:00
kern_malloc.c - Split UMA_ZFLAG_OFFPAGE into UMA_ZFLAG_OFFPAGE and UMA_ZFLAG_HASH. 2002-09-18 08:26:30 +00:00
kern_mib.c Update a sysctl to use _POSIX_VERSION from <sys/unistd.h>, instead of 2002-10-13 14:26:29 +00:00
kern_module.c
kern_mtxpool.c
kern_mutex.c Disable the kernacc() check in mtx_validate() until such time that kernacc 2002-10-25 08:40:20 +00:00
kern_ntptime.c Remove an unused variable. 2002-10-11 10:36:22 +00:00
kern_physio.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
kern_poll.c
kern_proc.c Move thread related code from kern_proc.c to kern_thread.c. 2002-10-24 08:46:34 +00:00
kern_prot.c
kern_resource.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_sema.c
kern_shutdown.c Hook up mac_check_system_reboot(), a MAC Framework entry point that 2002-10-27 07:03:29 +00:00
kern_sig.c Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
kern_subr.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_switch.c Did you ever notice how stupid bugs show up much clearer 2002-10-14 20:43:02 +00:00
kern_sx.c
kern_synch.c Add an actual implementation of kse_thr_interrupt() 2002-10-30 02:28:41 +00:00
kern_syscalls.c
kern_sysctl.c Implement mac_check_system_sysctl(), a MAC Framework entry point to 2002-10-27 07:12:34 +00:00
kern_tc.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
kern_thread.c Check NULL thread mailbox pointer. 2002-10-30 05:09:29 +00:00
kern_time.c Round up instead of towards 0 in clock_getres() so that a resolution of 2002-09-25 12:00:38 +00:00
kern_timeout.c Fix a format buglet. 2002-09-05 11:42:03 +00:00
kern_uuid.c
kern_xxx.c
ksched.c Tidy up the scheduler's code for changing the priority of a thread. 2002-10-14 20:34:31 +00:00
link_elf_obj.c Add two hooks to signal module load and module unload to MD code. 2002-10-19 19:16:03 +00:00
link_elf.c Add two hooks to signal module load and module unload to MD code. 2002-10-19 19:16:03 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh The syscall names are string constants, so make them consts. 2002-10-29 15:47:06 +00:00
md4c.c
md5c.c We have memset() and memcpy() in the kernel now, so we don't need to 2002-10-20 22:33:42 +00:00
p1003_1b.c
posix4_mib.c Change the way support for asynchronous I/O is indicated to applications 2002-10-27 18:07:41 +00:00
sched_4bsd.c Tidy up the scheduler's code for changing the priority of a thread. 2002-10-14 20:34:31 +00:00
subr_acl_posix1e.c
subr_autoconf.c
subr_blist.c
subr_bus.c Use ; not , as statement separator in PDEBUG() macro. 2002-10-15 18:56:13 +00:00
subr_clist.c
subr_clock.c
subr_devstat.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
subr_disk.c This checkin reimplements the io-request priority hack in a way 2002-10-22 00:59:49 +00:00
subr_disklabel.c (This commit touches about 15 disk device drivers in a very consistent 2002-09-20 19:36:05 +00:00
subr_diskmbr.c Split MBR and PC98 on-disk sliceformats out from disklabel.h, step 1: 2002-10-01 07:24:55 +00:00
subr_diskslice.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
subr_eventhandler.c
subr_hints.c
subr_kobj.c Convert hit and miss counters to unsigned values. Surely negative values 2002-06-10 22:40:26 +00:00
subr_log.c Fix the calculations of the length of the unread message buffer 2002-10-20 23:13:05 +00:00
subr_mbuf.c Fix a fairly subtle bug in mbuf_init() where the reference counter 2002-10-16 19:59:08 +00:00
subr_mchain.c Don't dereference the 'x' pointer if it is NULL, instead skip the 2002-10-22 18:44:59 +00:00
subr_module.c
subr_param.c
subr_pcpu.c
subr_power.c
subr_prf.c - Rename the DDB specific %z printf format to %y. 2002-10-25 19:41:32 +00:00
subr_prof.c Don't #error if we are lint. 2002-10-01 13:15:11 +00:00
subr_rman.c Add debug.rman_debug sysctl MIB and loader tunable instead of broken 2002-09-05 11:45:02 +00:00
subr_rtc.c
subr_sbuf.c Add the new function "sbuf_done()" which returns non-zero if the sbuf is 2002-10-04 09:58:17 +00:00
subr_scanf.c Fix mis-indentation. 2002-10-02 09:09:25 +00:00
subr_smp.c Completely redo thread states. 2002-09-11 08:13:56 +00:00
subr_taskqueue.c
subr_trap.c iBack out david's last commit. the suspension code needs to be called 2002-10-26 04:44:17 +00:00
subr_turnstile.c Disable the kernacc() check in mtx_validate() until such time that kernacc 2002-10-25 08:40:20 +00:00
subr_witness.c #unifdef the code for checking blessed lock collisions until we need it. 2002-10-20 08:48:39 +00:00
subr_xxx.c
sys_generic.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
sys_pipe.c Remove a KASSERT I added in 1.73 to catch uninitialized pipes. 2002-10-14 21:15:04 +00:00
sys_process.c Add a missing PROC_UNLOCK in ptrace() for the PT_IO case. 2002-10-16 16:28:33 +00:00
sys_socket.c Integrate mac_check_socket_send() and mac_check_socket_receive() 2002-10-06 14:39:15 +00:00
syscalls.c The syscall names are string constants, so make them consts. 2002-10-29 15:47:06 +00:00
syscalls.master Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
sysv_ipc.c
sysv_msg.c Make SYSVMSG mpsafe. Right now there is a global lock over the 2002-08-13 08:00:36 +00:00
sysv_sem.c Don't leak memory in semop(2). (Fix a bug I introduced in rev 1.55.) 2002-10-19 02:07:35 +00:00
sysv_shm.c
tty_compat.c
tty_conf.c
tty_cons.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
tty_pty.c
tty_subr.c
tty_tty.c
tty.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
uipc_accf.c
uipc_cow.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
uipc_domain.c
uipc_jumbo.c
uipc_mbuf2.c Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
uipc_mbuf.c Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
uipc_proto.c
uipc_sem.c Be consistent about funtions being static. 2002-10-16 10:42:13 +00:00
uipc_sockbuf.c Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
uipc_socket2.c Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
uipc_socket.c Trim extraneous #else and #endif MAC comments per style(9). 2002-10-28 21:17:53 +00:00
uipc_syscalls.c Integrate mac_check_socket_send() and mac_check_socket_receive() 2002-10-06 14:39:15 +00:00
uipc_usrreq.c Trim extraneous #else and #endif MAC comments per style(9). 2002-10-28 21:17:53 +00:00
vfs_acl.c
vfs_aio.c Change the way support for asynchronous I/O is indicated to applications 2002-10-27 18:07:41 +00:00
vfs_bio.c When the number of dirty buffers rises too high, the buf_daemon runs 2002-10-18 01:29:59 +00:00
vfs_cache.c
vfs_cluster.c - Use incore() where no other interlock locking is necessary. 2002-09-25 02:12:32 +00:00
vfs_default.c Don't try to be cute and save a call/return by implementing a degenerate 2002-10-24 17:55:49 +00:00
vfs_export.c
vfs_extattr.c Fix a case in kern_rename() where a vn_finished_write() call was 2002-10-27 23:23:51 +00:00
vfs_init.c
vfs_lookup.c Add a new 'NOMACCHECK' flag to namei() NDINIT flags, which permits the 2002-10-19 21:25:51 +00:00
vfs_mount.c #include <geom/geom.h> to get proper prototypes. Contrary to my fears we 2002-10-25 18:44:42 +00:00
vfs_subr.c Slightly change the semantics of vnode labels for MAC: rather than 2002-10-26 14:38:24 +00:00
vfs_syscalls.c Fix a case in kern_rename() where a vn_finished_write() call was 2002-10-27 23:23:51 +00:00
vfs_vnops.c Within ufs, the ffs_sync and ffs_fsync functions did not always 2002-10-25 00:20:37 +00:00
vnode_if.src - We don't need any automated lock checking for vop_islocked. 2002-09-26 00:31:16 +00:00