freebsd-dev/sys/kern
Poul-Henning Kamp 698bfad7f2 Now a dev_t is a pointer to struct specinfo which is shared by all specdev
vnodes referencing this device.

Details:
        cdevsw->d_parms has been removed, the specinfo is available
        now (== dev_t) and the driver should modify it directly
        when applicable, and the only driver doing so, does so:
        vn.c.  I am not sure the logic in checking for "<" was right
        before, and it looks even less so now.

        An intial pool of 50 struct specinfo are depleted during
        early boot, after that malloc had better work.  It is
        likely that fewer than 50 would do.

        Hashing is done from udev_t to dev_t with a prime number
        remainder hash, experiments show no better hash available
        for decent cost (MD5 is only marginally better)  The prime
        number used should not be close to a power of two, we use
        83 for now.

        Add new checkalias2() to get around the loss of info from
        dev2udev() in bdevvp();

        The aliased vnodes are hung on a list straight of the dev_t,
        and speclisth[SPECSZ] is unused.  The sharing of struct
        specinfo means that the v_specnext moves into the vnode
        which grows by 4 bytes.

        Don't use a VBLK dev_t which doesn't make sense in MFS, now
        we hang a dummy cdevsw on B/Cmaj 253 so that things look sane.

	Storage overhead from all of this is O(50k).

        Bump __FreeBSD_version to 400009

The next step will add the stuff needed so device-drivers can start to
hang things from struct specinfo
1999-07-20 09:47:55 +00:00
..
bus_if.m Add a hook for a bus to detect child devices which didn't find drivers. 1999-07-11 13:42:37 +00:00
device_if.m Update the comments on values than can be returned by DEVICE_PROBE. 1999-06-17 19:22:12 +00:00
imgact_aout.c Add the options MAP_PREFAULT and MAP_PREFAULT_PARTIAL to vm_map_find/insert, 1999-05-17 00:53:56 +00:00
imgact_elf.c Fix the previous warning a different way since the emul_path exposure was 1999-07-09 19:10:14 +00:00
imgact_gzip.c Correctly return ENOEXEC for really short zipped files. The way this is 1999-06-21 16:23:13 +00:00
imgact_shell.c Fix a couple of warnings and some bitrot in comments. 1999-05-09 16:04:14 +00:00
inflate.c
init_main.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
init_sysent.c Regenerated. 1999-05-13 09:12:57 +00:00
kern_acct.c Fix a dev_t/udev_t issue with accounting. lastcomm now shows the 1999-07-10 06:27:36 +00:00
kern_clock.c Added a sysctl "kern.timecounter.hardware" for selecting the hardware 1999-07-18 15:07:20 +00:00
kern_conf.c Now a dev_t is a pointer to struct specinfo which is shared by all specdev 1999-07-20 09:47:55 +00:00
kern_descrip.c From the submitter: 1999-06-07 20:37:29 +00:00
kern_environment.c
kern_exec.c
kern_exit.c From the submitter: 1999-06-07 20:37:29 +00:00
kern_fork.c Stop rfork(0) from panicing. (oops!!) 1999-07-03 20:58:44 +00:00
kern_intr.c
kern_jail.c Add beer-ware license and $Id$ 1999-04-30 06:51:51 +00:00
kern_kthread.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
kern_ktrace.c Make sure syscall arguments properly aligned in ktrace records. 1999-06-16 18:37:01 +00:00
kern_linker.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
kern_lock.c When requesting an exclusive lock with LK_NOWAIT, do not panic 1999-06-28 07:54:58 +00:00
kern_lockf.c Fixed corruption of the "blocked" list in lf_setlock() when tsleep() 1999-07-04 14:43:01 +00:00
kern_malloc.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
kern_mib.c add debug.sizeof.specinfo 1999-07-20 07:19:32 +00:00
kern_module.c Oops, set module->file.. 1999-05-20 00:00:58 +00:00
kern_ntptime.c
kern_physio.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
kern_proc.c Reverse the sense of a test, dev2udev() will be much cheaper than 1999-07-17 20:29:10 +00:00
kern_prot.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
kern_random.c Add sufficient braces to keep egcs happy about potentially ambiguous 1999-05-06 18:13:11 +00:00
kern_resource.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
kern_shutdown.c Centralize dumpdev handling. 1999-07-17 20:47:52 +00:00
kern_sig.c Reset SA_NOCLDWAIT on exec(). 1999-07-18 13:40:11 +00:00
kern_subr.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
kern_synch.c
kern_syscalls.c Call the chained module handler before unregistering the syscall so that 1999-06-27 09:38:44 +00:00
kern_sysctl.c Minor tweaks to make sure (new) prerequisites for <sys/buf.h> (mostly 1999-06-27 11:44:22 +00:00
kern_tc.c Added a sysctl "kern.timecounter.hardware" for selecting the hardware 1999-07-18 15:07:20 +00:00
kern_threads.c
kern_time.c Minor tweaks to make sure (new) prerequisites for <sys/buf.h> (mostly 1999-06-27 11:44:22 +00:00
kern_timeout.c
kern_xxx.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
ksched.c
link_aout.c Add enough include files to make this actually compile on an a.out system. 1999-05-15 23:18:32 +00:00
link_elf_obj.c Use KERNBASE for the load address of the kernel rather than magic constants 1999-05-08 13:03:49 +00:00
link_elf.c Use KERNBASE for the load address of the kernel rather than magic constants 1999-05-08 13:03:49 +00:00
Make.tags.inc
makedevops.pl Remove hack to accept French spelling of METHOD (METHODE) 1999-05-10 17:45:49 +00:00
Makefile Added ../sys/syscall.mk to targets. Back it up like all the other 1999-05-13 09:19:14 +00:00
makesyscalls.sh
md5c.c
p1003_1b.c
posix4_mib.c
subr_autoconf.c
subr_blist.c Add Id strings 1999-06-17 23:42:45 +00:00
subr_bus.c Add a hook for a bus to detect child devices which didn't find drivers. 1999-07-11 13:42:37 +00:00
subr_clist.c Quiet warnings on an Alpha. CBSIZE has long type and causes the other 1999-07-01 19:46:36 +00:00
subr_devstat.c Add sysctl descriptions to many SYSCTL_XXXs 1999-05-03 23:57:32 +00:00
subr_disklabel.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
subr_diskmbr.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
subr_diskslice.c dsopen: Print a message if the unit has an invalid sector size. 1999-06-21 03:48:16 +00:00
subr_dkbad.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
subr_log.c Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
subr_module.c
subr_param.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
subr_prf.c Oops, missed out one chunk of the last patch. (*blush*) 1999-07-14 17:37:53 +00:00
subr_prof.c Fixed profiling of elf kernels. Made high resolution profiling compile 1999-05-06 09:44:57 +00:00
subr_rman.c Make sure that we record the flags in all cases. 1999-06-26 10:27:30 +00:00
subr_scanf.c
subr_smp.c Implement an all-CPU shootdown-style rendezvous facility. This allows 1999-07-20 06:52:35 +00:00
subr_trap.c Changed the global `idt' from an array to a pointer so that npx.c 1999-06-18 14:32:21 +00:00
subr_xxx.c Try an fix a couple of dev_t/major/minor etc nits. 1999-05-12 22:30:50 +00:00
sys_generic.c
sys_pipe.c Restructure pipe_read in order to eliminate several race conditions. 1999-06-05 03:53:57 +00:00
sys_process.c Implement support for hardware debug registers on the i386. 1999-07-09 04:16:00 +00:00
sys_socket.c
syscalls.c Regenerated. 1999-05-13 09:12:57 +00:00
syscalls.master Fixed nonsense arg type `const caddr_t' in the prototype() for utrace(). 1999-05-13 09:09:37 +00:00
sysv_ipc.c Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
sysv_msg.c Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
sysv_sem.c Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
sysv_shm.c For consistency with other implementations, check for the existence 1999-06-19 23:53:13 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Quieten some warnings as a result of changes in ls_items[] constness over 1999-06-26 12:19:03 +00:00
tty_pty.c Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
tty_snoop.c Add Id strings 1999-06-17 23:42:45 +00:00
tty_subr.c Quiet warnings on an Alpha. CBSIZE has long type and causes the other 1999-07-01 19:46:36 +00:00
tty_tb.c
tty_tty.c Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
tty.c Don't call calcru() on a swapped-out process. calcru() access p_stats, which 1999-05-22 20:10:31 +00:00
uipc_domain.c
uipc_mbuf.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
uipc_proto.c
uipc_sockbuf.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
uipc_socket2.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
uipc_socket.c Reviewed by: the cast of thousands 1999-06-17 23:54:50 +00:00
uipc_syscalls.c
uipc_usrreq.c Divorce "dev_t" from the "major|minor" bitmap, which is now called 1999-05-11 19:55:07 +00:00
vfs_aio.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
vfs_bio.c bufhashinit() is called with a caddr_t and is expected to return the 1999-07-09 16:41:19 +00:00
vfs_cache.c
vfs_cluster.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vfs_conf.c Fix warnings in last commit (dev_t is not an int, and not even int 1999-07-03 17:40:31 +00:00
vfs_default.c Add Id strings 1999-06-17 23:42:45 +00:00
vfs_export.c Now a dev_t is a pointer to struct specinfo which is shared by all specdev 1999-07-20 09:47:55 +00:00
vfs_extattr.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
vfs_init.c
vfs_lookup.c
vfs_mount.c Fix warnings in last commit (dev_t is not an int, and not even int 1999-07-03 17:40:31 +00:00
vfs_subr.c Now a dev_t is a pointer to struct specinfo which is shared by all specdev 1999-07-20 09:47:55 +00:00
vfs_syscalls.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
vfs_vnops.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vnode_if.pl Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00
vnode_if.sh Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00
vnode_if.src Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00