Commit Graph

1384 Commits

Author SHA1 Message Date
pooka
a955550ec3 Namespace rump-only kernel biglock routines appropriately.
No functional change.
2010-05-18 15:16:10 +00:00
pooka
fdeac1d7df Move routines related to kernel locking and scheduling from
locks.c to klock.c.

No functional change.
2010-05-18 15:12:19 +00:00
pooka
b1b7862792 Make it possible to use the scheduler lock as the rumpuser condvar
interlock.  This is applicable in cases where the actual interlock
is the CPU the currently running thread is scheduled on.  Borrowing
the scheduler lock as the mutex mandated by pthread_cond_wait()
does away with need to have an additional mutex.  This both optimizes
runtime execution and simplifies code, as the extra lock typically
lead to quite some trickeries to avoid the dungeon collapsing due
to zaps from the wand of deadlock.
2010-05-18 14:58:41 +00:00
njoly
d52f4f14b6 Regen for multiple inclusion protection. 2010-05-17 12:37:20 +00:00
pooka
366a313d12 Pick up after people who find build-testing their changes too difficult. 2010-05-14 13:04:14 +00:00
pooka
dc34f07022 fix inversion: advance clock on cpu0, not the complement of cpu0 2010-05-12 16:48:21 +00:00
pooka
1616addc6a Actually, push defining _RUMPKERNEL down to libkern, since it's
not needed elsewhere.
2010-05-11 22:21:05 +00:00
pooka
d3280f90bc Limit visibility of _RUMPKERNEL to prevent abuse. 2010-05-11 21:08:07 +00:00
pooka
65972a0f32 add __HAVE_CPU_COUNTER stubs where possible (i.e. where the arch
doesn't think inlines are the second compiling)
2010-05-11 21:03:41 +00:00
pooka
17bb799409 adjust comment in previous.
XXX: should make that (and physmem) mean something here
2010-05-11 20:25:14 +00:00
pooka
a96791040e remove unnecessary #ifdef 2010-05-11 20:21:56 +00:00
pooka
7e3cbd3f20 regen: _RUMPKERNEL -> _KERNEL 2010-05-11 20:11:47 +00:00
pooka
14d288df20 _RUMPKERNEL -> _KERNEL 2010-05-11 20:09:11 +00:00
pooka
27d01ae5b3 Cache directory entry name length. This brings kernel bootstrap
time down: 14ms -> 12ms.  Further hashing etc. did not seem to have
any noticable effect.
(without /dev node creation bootstrap time is 8ms, so it's still
the bottleneck)
2010-05-11 16:59:42 +00:00
pooka
6e2452d938 Initialize p_pgrp when creating a new process structure (and not
only for proc0).  This makes something work.  I just can't remember
what it was anymore.
2010-05-11 14:57:20 +00:00
pooka
7037dbf8d5 Set default number of vnodes to 1k instead of 64k: a large default
reserves a large amount of memory by default and this is not
desirable in a rump kernel where the typical usage is minimal.
Maybe I should write a few lines to autoscale desiredvnodes up to
a hard limit after the soft limit is reached?
2010-05-11 14:49:07 +00:00
pooka
2315e5705a Fix reclaim locking so that we don't attempt lock reentry if making
a new rumpfs vnode triggers a reclaim for a rumpfs vnode.
2010-05-11 14:42:24 +00:00
pooka
484a50b1cb uvm_object_printit() should be wrapped in DEBUGPRINT 2010-05-11 14:06:08 +00:00
pooka
c33b4c9a6b update slightly 2010-05-11 11:58:14 +00:00
pooka
ed541767a0 drop silly backronym. just rump. 2010-05-11 09:45:59 +00:00
pooka
14a8ac5592 Reclaim spec-type vnodes properly. 2010-05-11 09:28:40 +00:00
pooka
e7f4f9320b ABC2010 paper 2010-05-02 11:11:36 +00:00
pooka
811310d0d4 remember to add audio to the list of device components 2010-05-01 23:24:40 +00:00
pooka
3a2dd9aab6 support pad(4) 2010-05-01 23:21:24 +00:00
pooka
f60e2f41a7 add audio(4) support 2010-05-01 23:19:56 +00:00
pooka
7d2b64974c forward-declare struct uio (required by rumpvnode_if.h) 2010-05-01 23:16:31 +00:00
pooka
2bb0e81bf1 cleanup non-used code (superceded by rump_printevcnts) 2010-05-01 14:46:32 +00:00
pooka
b367c26e41 Add rump_printevcnts() which dumps values from all event counters.
(NOTE! it is run unscheduled for various experimentation etcetc. reasons)
2010-05-01 14:40:36 +00:00
pooka
dd87051350 Adjust event counter names to be less redundant. 2010-05-01 14:37:53 +00:00
pooka
53d420f9a2 Now that we have a big devsw_conv0, need at least as many entries
in devsw as the highest device number in the conv table.  Do a
"good for a hundred years" guess now, fix properly later.
2010-05-01 09:00:06 +00:00
pooka
99d0de7a5e Remove bpf modload code. With the current state of affairs, the
kernel module either be autoloaded from the host or the kernel
module ABI is not supported on the given arch.
2010-04-30 21:05:52 +00:00
pooka
66708c492e Autogenerate /dev nodes. Use (recreate) the naming policy in
MAKEDEV. -- Not the famous irrational file system devfs, but an
incredible simulation.
2010-04-30 21:02:36 +00:00
pooka
f6d46ec2d9 Include devsw_conv0 from an i386 kernel compilation (no, we don't
care about the arch as long as all the devices we care about are
present).  The file should be autogenerated, but that requires some
more changes to config(1).
2010-04-30 20:54:17 +00:00
pooka
9572163398 genfs_eopnotsuppify symlink, otherwise unlocky things happen! 2010-04-30 20:05:29 +00:00
pooka
6e3fa8db54 Add translation from vtype to dirent type. Convert rumpfs now.
I'll convert the rest of the file servers in need after the next
version bump to avoid the coding module crisis.
2010-04-30 10:03:13 +00:00
pooka
e7ad158bcf Get better results if initialize a field before calling strlen().
(can't believe that worked last night.  the stars must've been in
the "lottery, stupid" position)
2010-04-30 09:44:38 +00:00
pooka
e8ae82c755 p2k asserts get upset if VOP_ISLOCKED() doesn't reflect lock status.
So let genfs do its thing.
2010-04-29 22:45:40 +00:00
pooka
cea04129a0 add simple VOP_READDIR for rumpfs 2010-04-29 22:32:49 +00:00
pooka
704b1cf6f8 Instead of causing a catastrophic failure when uvm_loanuobjpages()
is called, just pretend it hit a wired page and return EBUSY.  This
should cause callers to use a non-loaning access path instead.

Fixes file read path of stock nfs kernel module (previously it was
easy to just frob the nfsd_use_loan boolean into the other position
by simple value assingment, but now that nfsserver can be autoloaded
at runtime into the rump kernel, that approach is a little more
challenging since the variable isn't available in application
linkage.  yes, things like adding a sysctl for the variable would
work, but now everything works out-of-the-box).
2010-04-28 16:34:25 +00:00
pooka
eb67c195b0 Uncrack my brain, buggy let me !be.
In other words, make previous commit to this file actually work.
Funny how it's possible to fix things to not dump core and still
have them not work.
2010-04-28 14:51:07 +00:00
pooka
18757709dd Set l_sysent so that syscall autoload actually works instead of autocores. 2010-04-28 14:23:57 +00:00
pooka
c4a03daef5 If RUMP_NCPU is set, use that for virtual CPU count instead of
host CPU count.
2010-04-28 11:34:18 +00:00
pooka
c1cd247fa4 Make initial devsw a little more believable. Especially adjust
max_sys_devsw, since it was previously a bit too much, given that
the correct value is 0.
2010-04-28 07:42:55 +00:00
pooka
1456f9b65f Make number of virtual CPUs match number of host CPUs on NetBSD/x86 hosts. 2010-04-28 00:43:16 +00:00
pooka
52e4f6355a Limit virtual CPUs to MAXCPUS for now. 2010-04-28 00:42:16 +00:00
pooka
f2e68164ab set first attached cpu as primary 2010-04-28 00:34:25 +00:00
pooka
db171f695e Add rumpuser interface to fetch number of host cpus. 2010-04-28 00:33:45 +00:00
pooka
a801fd0fcf Fix snafu which caused the clock to travel lightspeed. 2010-04-28 00:32:30 +00:00
pooka
651a6f7848 Fix multiple virtual cpu support.
... or at least on x86.  CPU_INFO_FOREACH() still isn't MI, and I
don't want to support 2^n different versions.
2010-04-27 23:30:29 +00:00
pooka
7c5b388514 Fix off-by-atleast-1 error.
Note: etfs doesn't work if rumpfs is not mounted as root.  Given
that rumpfs_mount always return EOPNOTSUPP (except for mountroot),
this is not a pressible tragedy currently, but nevertheless
could/should be fixed in the future.
2010-04-27 13:26:12 +00:00
pooka
5ddf0d5711 regen: rump_enosys -> sys_nomodule for modular system calls 2010-04-27 10:58:55 +00:00
pooka
717accdd51 Register module_base as an etfs recursive subdirectory. This means
that rump will autoload kernel modules from the host
/stand/arch/vers/modules directory.
2010-04-26 23:43:36 +00:00
pooka
3ff8b6d009 Add directory support to etfs: host directories and their contents
will be mapped to rumpfs based on the given key.  The directory
can be mapped either for a single level or recursively down the
entire subtree.
2010-04-26 23:40:22 +00:00
pooka
b468e56e8c Implement kobj_renamespace() for rump. Support for a few archs is
missing, but that doesn't really matter, since they are living in
their own "everything is a macro" happyland and don't support the
native kernel ABI anyway.
2010-04-26 23:17:13 +00:00
pooka
560d308a49 Give a cpp hint if the native kernel abi is supported. 2010-04-26 23:01:53 +00:00
pooka
445cf1a49a Change machine from "rump" to MACHINE so that module_base goes
right.

Now, any guesses on how many archs this seemingly trivial change
will break the principal metric, i.e. The Build(tm)?  Keep the bets
coming in.
2010-04-26 20:10:23 +00:00
pooka
a43970a6ae ungrossify 2010-04-26 09:47:46 +00:00
dholland
e4759b9b17 Remove trailing comma in enum, per PR kern/43200.
(trailing commas in enums are allowed in C99, but not C89, and possibly
not in C++, so let's be nice to older and deviant compilers)
2010-04-24 01:47:34 +00:00
pooka
516d9bde16 more signal stuff to group. no functional change. 2010-04-22 07:10:47 +00:00
pooka
fbe5f09ac1 remove stuff which now comes via std. kernel source modules 2010-04-21 20:07:02 +00:00
pooka
34244e1069 Reduce #ifdef spew by attaching wapbl as a module.
(no, it's still too ifdef-ridden to be able to actually do anything
useful and module-like like load into any kernel)
2010-04-21 16:51:24 +00:00
pooka
4a383bb8da Move sys_module from vfs to kern -- while modules cannot be loaded,
there's not forbidden about querying the list of (builtin) modules
even when running without vfs.
2010-04-21 16:29:08 +00:00
pooka
70e61cdef2 regen: get/setrlimit 2010-04-21 16:18:35 +00:00
pooka
edc96984f5 support kern_resource 2010-04-21 16:16:31 +00:00
pooka
77c91f3324 Move all signal-related from emul.c to signals.c. Additionally,
define a few alternate signal models for the rump kernel, including
ones where signals are ignored or sent to host processes.
2010-04-21 11:38:05 +00:00
pooka
3cc6a65772 Add rumpuser_kill, which sends a signal to a host process. 2010-04-21 11:13:29 +00:00
pooka
e213e0de8f rumpfs is mpsafe (has always been), so mark it as such. 2010-04-21 07:35:12 +00:00
pooka
cfbced9328 no \n in panic 2010-04-19 11:26:33 +00:00
pooka
9cf6a57529 One emul is enough and since we need emul_netbsd, retire emul_rump. 2010-04-17 16:34:29 +00:00
pooka
18871937dd Move scheduling related routines from emul.c to scheduler.c 2010-04-17 13:13:45 +00:00
pooka
fcb3eddea0 we've had ksyms since forever 2010-04-17 13:10:02 +00:00
pooka
686226da28 Define some options (although they're currently unused due to how
_KERNEL_OPT (doesn't) work.  but be stubborn and define them anyway).
2010-04-17 13:02:34 +00:00
pooka
db7c519ac1 no longer used 2010-04-17 12:57:37 +00:00
pooka
835e533be4 Remove unused count (invariably "4") from pseudo-device fss. 2010-04-16 13:48:27 +00:00
pooka
f9ae378a99 Use reserved major for rumpblk instead of picking something which
may conflict.
2010-04-14 16:05:53 +00:00
pooka
8b9238922a Use kern_syscall.c instead of homegrown syscall dis/establishment routines. 2010-04-14 14:49:05 +00:00
pooka
171f210283 regen: kauth_cred_t -> struct kauth_cred * 2010-04-14 14:14:52 +00:00
pooka
794cd3c3dc Use "struct kauth_cred *" instead of kauth_cred_t in all exported
interfaces.  Allows to remove hairbrained _t typedef dance.
2010-04-14 14:12:48 +00:00
pooka
00dd646066 regen: rump vnodeif went on a diet 2010-04-14 14:00:04 +00:00
pooka
592f1701c5 regenefactor for comment and whitespace changes 2010-04-14 12:21:04 +00:00
pooka
c741c01282 Add comment about clock mismatch. 2010-04-14 10:34:54 +00:00
pooka
d3b3912fd0 Include kern_tc and use a timecounter driver instead of homerolled
kern_tc implementation.
2010-04-14 10:27:53 +00:00
pooka
0b2753000a support file system snapshot device 2010-04-12 22:31:48 +00:00
pooka
90bd012fbe Support real file system transactions/suspension (vfs_trans.c)
instead of just stubbing it.
2010-04-12 22:19:17 +00:00
pooka
626c9a3996 support lwp specificdata 2010-04-12 22:17:23 +00:00
pooka
96f952e897 Report f_iosize as 512. Some callers want it, and we can only
guess a safe default here (because of etfs).
2010-04-12 21:37:44 +00:00
pooka
344e2f2f16 Following nullfs, rename rumpfs_umapfs to rumpfs_umap to make the
basename the same as the kernel module (this too was in-tree only
for a little over a week with the old name).
2010-04-11 05:45:57 +00:00
pooka
b764352d60 Rename librumpfs_nullfs to librumpfs_null to make the basename the
same as with the kernel module (and hence MOUNT_NULL).

I added the old name to the obsolete list, but given that it was
in-tree for only a bit over a week, I'll remove the entries in a
few weeks.
2010-04-10 21:32:59 +00:00
pooka
cfff0936d1 regen: remove unused vdesc_transports 2010-04-10 19:44:02 +00:00
joerg
936abdd9c5 Fix typo 2010-04-05 16:35:30 +00:00
joerg
58e867556f Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf
check into the inline functions as well the fourth argument for
bpf_attach.
2010-04-05 07:19:28 +00:00
pooka
d1c9da6dac Create kern.hostname sysctl node. Using init_sysctl.c for creating
the nodes requires some weeding, so don't try to use it yet.
2010-03-31 18:56:07 +00:00
pooka
9e9ab330be support kernfs 2010-03-31 14:18:33 +00:00
pooka
1b840b2df1 separate vfs-like components from actual drivers
(no functional change)
2010-03-31 14:12:33 +00:00
pooka
59e540bbd0 We don't have a real rootdev (by default at least), so set it to NODEV. 2010-03-31 14:08:33 +00:00
pooka
bca98ac3f6 set kernel boottime 2010-03-31 12:16:15 +00:00
pooka
9ad78fb4c9 * initialize msgbuf
* for banner, use aprint_verbose instead of if (verbose) printf
2010-03-31 11:35:33 +00:00
pooka
0ebcba0046 support nullfs and umapfs 2010-03-30 00:59:07 +00:00
pooka
b0d97215bc Support unionfs (and layervfs, which is required for unionfs). 2010-03-29 18:12:23 +00:00
pooka
9d4c3a0469 Support fifofs in rump. Do not include it in rumpvfs directly,
since it involves some very non-fs'y components like sockets and
local domain networking.  Also (for better or worse?), call it
rump*v*fs_fifofs instead of rumpfs_fifofs, since it does not really
provide a file system driver.

XXX: uses duplicate common symbols and functionality depends on
link order ... (but at least it works better than before this change)
2010-03-29 13:20:31 +00:00
mrg
98a4c48317 apply a patch from dennis fergusson:
fix the powerpc64 quirk handling by introducing a prefix quirk and
using it as appropriate.  fix the (postfix) quirk.

now rump and powerpc64 get along nicely.
2010-03-28 04:29:34 +00:00
pooka
acd98b55f4 rootfstype is not a vfs stub, so it doesn't belong in vfs_stubs 2010-03-26 18:21:28 +00:00
pooka
a183ecd06c Remove unused opt_bluetooth.h
plunky: "feel free"
2010-03-26 18:15:15 +00:00
pooka
54be9a9f62 Catch up with cosmetic changes to output from config(1) 2010-03-26 15:51:55 +00:00
pooka
1af4db65a0 define the incredible FLAWLESSCALL macro in one place 2010-03-25 19:54:19 +00:00
pooka
28a9c4ad96 use config_init_component() 2010-03-25 19:54:08 +00:00
pooka
9a12bbeba5 Include bthub support.
As mario knows, it should be in another component, but just cram
it here for now until someone solves kernel module dependencies
for us.
2010-03-22 14:47:02 +00:00
pooka
9a702d8fe4 USB bluetooth device rump component.
This is a curious driver in the sense that unlike all other current
device drivers, it does not require vfs.  This is because the driver
is controlled via bluetooth, which is controlled via PF_BLUETOOTH
sockets (as opposed to a /dev node).
2010-03-22 12:14:51 +00:00
pooka
5f0c4c358e bluetooth stack component for rump 2010-03-22 12:08:44 +00:00
pooka
e0010d2a0e * support isochronous transfers (for as much as they can be supported
considering our ugen driver doesn't support isochronous write.
  kern/25960 seems to contain a patch and could be investigated for that)
* add a dirty rotten hack which makes interrupt transfers of >16
  work for me
2010-03-22 12:05:45 +00:00
mrg
eeea16608f add + _SYMQUIRK='|\.(rump|RUMP)' for powerpc64, as recommended by pooka.
it gets rid of many of the warnings trying to link rump_cd9960, but
there are a bunch remaining.  atomic ops seem missing, and some ktrace
points.
2010-03-22 05:39:00 +00:00
pooka
40bb87a667 Move make snippets for use with config(1) ioconf functionality from
rump into share/mk.  This is to make it useful for all kernel
builders.

Note: we have waaay too many weird and wonderful ways of making
kernel code (monolithic kernel, modules, rump).  There should be
only one way to build kernel code instead of a maze of twisty little
.mk files, all not quite alike.  When that is fixed, this snippet can go
into the more generic .mk file.
2010-03-21 06:55:44 +00:00
pooka
ce24d5b7db attempt to know my a-b-c's 2010-03-08 12:30:04 +00:00
pooka
f50cf92e3a support mfs 2010-03-08 12:29:01 +00:00
pooka
ffc8ba1227 mfs miniroot is mandatory 2010-03-08 12:17:45 +00:00
pooka
57959b3859 Convert to pseudo-root.
These can be moved out of wip (once I get some time).
2010-03-08 10:57:25 +00:00
pooka
9ca7991252 need -Irumpkern for RUMP_COMPONENT 2010-03-08 10:56:12 +00:00
pooka
38516f3ec5 convert to ioconf & pseudo-root 2010-03-08 10:54:21 +00:00
pooka
d5184dc0e0 Update minimum to make compile. i don't have the hardware anymore,
so i can't test other changes.
2010-03-08 10:36:10 +00:00
pooka
1590160e06 convert to ioconf/pseudo-root 2010-03-08 10:30:17 +00:00
pooka
e5fc54d868 Use config pseudo-root keyword instead of monolithic configurations
starting from root.
2010-03-08 10:24:37 +00:00
pooka
6ee30969d0 Make rump devfs expose ttyU1 and dtyU1 as well. 2010-03-07 17:44:40 +00:00
pooka
2408ca4cf0 tweak previous to actually work 2010-03-07 16:55:44 +00:00
pooka
b89595d78e pmf wants buf_syncwait() which is a part of optional vfs 2010-03-07 16:46:10 +00:00
pooka
c2efc59235 During bootstrap, process all modinfos in a DSO in one go. Get
rid of dependency tricks, since they are no longer necessary.
2010-03-05 18:47:49 +00:00
pooka
52672c7e21 regen for rump_module interface change 2010-03-05 18:43:58 +00:00
pooka
23f0cd6bfb 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).
2010-03-05 18:41:46 +00:00
pooka
694d83c90b regen (for lfs syscalls #ifdef removal). 2010-03-05 09:00:26 +00:00
pooka
dd0604d344 Reflect removal of fs_nfs.h and -DNFS 2010-03-02 23:37:16 +00:00
pooka
4f49fb9915 Don't generate unused fs_thefs.h headers. 2010-03-02 16:43:48 +00:00
pooka
5a03797ea6 While I like redundant computing, specifying each option just once
is generally enough.
2010-03-02 11:29:04 +00:00
pooka
89e1ba2569 Rename IOCONFIG to IOCONF. It matches the config(1) keyword and
aligns better in Makefiles.
2010-03-01 15:41:15 +00:00
pooka
510a73e003 Introduce RUMP_COMPONENT. It behaves mostly like a simplified
module which is linked into the kernel and cannot be unloaded.
The main purpose is to get the proper constructors run and create
any /dev nodes necessary for said component.  Once more of the
kernel (e.g. networking stack and device drivers) are converted to
MODULE and devfs pops up from somewhere, rump components can be
retired.
2010-03-01 13:12:19 +00:00
pooka
15022b379a "support" unmount of rumpfs 2010-03-01 13:03:30 +00:00
pooka
e4791c2626 Add types for LWP_CREATE and LWP_EXIT rpc calls. Currently unimplemented. 2010-03-01 13:02:46 +00:00
pooka
566bdea883 Free memory in unmap instead of panicking.
(this is currently not very actively called, though, as can be seen
from the previous "implementation")
2010-03-01 13:01:16 +00:00
pooka
bc4e423976 add signal stubs required by mfs 2010-03-01 11:35:58 +00:00
pooka
0bd00d250f add u3g 2010-03-01 11:34:27 +00:00
pooka
6e4a9f9133 librumpuser is not _KERNEL code and does not belong in sys. Move
the source files from src/sys/rump/librump/rumpuser to src/lib/librumpuser
(from where it is already built).  Even so, keep rumpuser.h in
sys/rump/include for kernel source tree self-containment.
2010-02-26 18:54:20 +00:00
pooka
5b02e50b03 Rename rumpuser_dl_module_bootstrap() to rumpuser_dl_bootstrap(),
since it hasn't been involved only with modules for quite a while now.
2010-02-26 15:23:20 +00:00
pooka
1142233da6 Expose rump_schedule() and rump_unschedule(). These can be used
for wrapping application space calls to the rump kernel without
having to do heavyweight interface specification with ifspec.
2010-02-24 14:56:04 +00:00
pooka
546515e65b * abort correct endpoint in bulk xfers
* actually free memory in the freem method (well, usually stick
  it to the usb freelist, but same thing)
2010-02-23 14:05:04 +00:00
pooka
da9a2c25a9 * get UDESC_CONFIG for proper config index
* support UR_SET_CONFIG for root hub
* set port change bits for root hub interrupts
+ cosmetics
2010-02-22 14:47:40 +00:00
pooka
91f03c22e5 Fix snafu with error reporting in bulk transfers. 2010-02-20 13:56:29 +00:00
pooka
0569cd0d25 Don't leak control endpoint descriptors. 2010-02-18 16:24:19 +00:00
pooka
35e8f16689 Actually, detach is possible enough if the device isn't in use.
So just support it.
2010-02-18 16:13:30 +00:00
pooka
a798dc1e14 Change match to be based on the existence of the ugen device node
and signal the root hub interrupt only once we are succesfully able
to open the device node.  This makes it possible to insert a device
after the rump kernel was booted and have it succesfully attach
(does not make detach possible yet, though, as there are some
ugen and host kernel uhci/ohci/ehci evil crashies with that).

XXX: optimally, match would fail if there is a permanent error in
opening.  However, it is difficult to figure out the difference
between the device backing ugen not being present, a transient
error in opening and a permanent error in opening.  For example,
which of the latter two would EPERM be?  And, ugen returns ENXIO
if the device is not present, but how would be know that's really
the case and not some other ENXIO from elsewhere in the stack?
2010-02-18 15:25:13 +00:00
pooka
7775600816 Also, don't try to figure out the size of devices if size matters not. 2010-02-18 12:32:30 +00:00
pooka
88b1bf8a5e Allow NULL as size and file type pointers. 2010-02-18 12:21:28 +00:00
pooka
d97a943f37 Support SCSIVERBOSE. 2010-02-17 20:44:34 +00:00