- Ability to add/remove hot-spare disks (previously only 'add' was accepted).
- Ability to add/remove pass-through disks.
- Ability to create/remove RAID volumes with optional size, stripe, level,
member disks and others.
- Ability to start/stop consistency checks in a RAID volume.
- Ability to show only information about physical disks, volumes or both.
Rather than using multiple flags, the utility has been modified to use
the same mode than dkctl(8) (and maybe others), i.e:
$ ./bioctl
usage: bioctl device command [arg [...]]
Available commands:
show [disks] | [volumes]
alarm [enable] | [disable] | [silence] | [test]
blink start | stop [channel:target[.lun]]
hotspare add | remove channel:target.lun
passthru add DISKID | remove channel:target.lun
check start | stop VOLID
create volume VOLID DISKIDs [SIZE] STRIPE RAID_LEVEL channel:target.lun
remove volume VOLID channel:target.lun
$
I'll add support for other features soon.
other drivers in the future):
- Added BIOC_SVCHECKING to the BIOCVOL ioctl, to know if a volume is
running a consistency check.
- Added three more volume levels for the BIOCVOL ioctl.
- Added BIOC_SDPASSTHRU to the BIOCDISK ioctl, to know if a disk is
in pass-through mode.
- Added BIOCDISK_NOVOL; it's used with the same reason than BIOCDISK,
but it's used only to get information about the physical disks connected
in a controller (regardless if they are in a volume set or not).
- Added BIOC_SSDELHOTSPARE, BIOC_SSPASTHRU, BIOC_SSDELPASSTHRU,
BIOC_SSCHECKSTART_VOL and BIOC_SSCHECKSTOPVOL; to remove a hot-spare,
add and remove a pass-through disk and to start/stop a consistency
check in a volume.
- Added the BIOC_VOLOPS ioctl; to create/remove a volume set.
- Removed the BIOCCREATERAID ioctl, it was too limited for my needs.
- Added compatibility ioctls for BIOCDISK and BIOCVOL, enabled via COMPAT_30.
a pointer to that struct, so that we cannot assign pointers of
arbitrary type to cardbus_chipset_tag_t. Tweak cbb(4) to accomodate
this change.
Make Cardbus_conf_read() and Carbus_conf_write() pass the right
arguments to cardbus_functions->cardbus_conf_{read,write}() for a
change.
Let's hope this stops the crash in cardbus_function_enable() that
macallan@ reported to me.
Michael Lorenz, macallan@, actually found this bug.
(I will change cardbus_chipset_tag_t to a struct * from void *, so
that the compiler will detect similar typos in the future.)
(reported by macallan@).
I originally detected this bug by activating 'PCI master target
abort' interrupts on the AMD Elan SC520 processor. Lo and behold,
several interrupts occurred before the system had finished booting!
NetBSD should probably activate PCI exception reporting whenever
it is available.
this fixes a deadlock between pipe_direct_write and pipeclose.
XXX this code should be simplified.
it's mostly pointless to have two struct pipes linked together,
esp. when we don't support bi-directional pipes.
can now be developed in userspace using puffs for development
(I hate emulators, they are annoyingly clumsy).
To e.g. mount psshfs using puffs-on-puffs, run fs/bin/syspuffs/syspuffs
with the regular mount_psshfs command line as an argument:
golem> ./syspuffs /usr/sbin/mount_psshfs ftp.netbsd.org:/pub /puffs
This will make the mount appear as usual, with the exception that the
requests will be passed through puffs both in the kernel and userspace:
ftp.netbsd.org:/pub on /puffs type puffs|p2k|puffs|psshfs
* I heard a wild rumor that vp_interlock is a mutex these days (hi ad!)
* init new locks (hi ad)
* observe that with simple_locks only deadlocks would be caught while
releasing unlocked locks would go unnoticed. make locking work (hi pooka)
If the env variable PUFFS_COMFD is set, the descriptor value
contained in it is used for communication instead of opening
/dev/puffs and doing mount(2).
This feature is obviously very undocumented and should not be used
without adult supervision.
in sysmon_envsys_events.c.
- Separate sme_event_check_low_power() into sme_battery_check(),
sme_acadapter_check() and sme_battery_critical() (no functional changes).
- create a mostly working sysinst/ramdisk environment. i was
able to successfully run sysinst, but the screen displays many
"bad format `p'" errors i am yet to track down entirely that
make it somewhat difficult to see.
with a suitable ramdisk etc, you can actually install successfully.
mostly the changes from port-prep are to switch the prep mkbootimage
to an msdos boot partition with a copy of ofwboot in it.
its children.
Fix an off-by-one bug in the sensor initialization which stopped
it from completing.
Extract sensor initialization into a new subroutine. If there is
an error while initializing sensors, do not let sc_sme dangle.
panics with a DIAGNOSTIC kernel.
In sysmon_envsys_find_40(), wait until an envsys is not busy before
settings its busy flag, in the pattern of sysmon_envsys_find().