Home | History | Annotate | Download | only in dev
History log of /src/sys/dev/bio.c
RevisionDateAuthorComments
 1.17  19-Dec-2020  thorpej malloc(9) -> kmem(9)
 1.16  10-Nov-2019  chs branches: 1.16.8;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.15  01-Mar-2019  pgoyette Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly
discussed on irc.

NFCI intended.

Ride the earlier kernel bump - it;s getting crowded.
 1.14  27-Jan-2019  pgoyette Merge the [pgoyette-compat] branch
 1.13  20-Aug-2015  christos branches: 1.13.16; 1.13.18;
include "ioconf.h" to get the 'void <driver>attach(int count);' prototype.
 1.12  12-Mar-2015  christos Dedup the conversion of bioc_disk and bioc_vol to envsys_data_t
 1.11  25-Jul-2014  dholland branches: 1.11.4;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.10  16-Mar-2014  dholland branches: 1.10.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.9  07-May-2009  cegger branches: 1.9.12; 1.9.22; 1.9.26;
struct device * -> device_t, no functional changes intended.
 1.8  09-Apr-2008  cegger branches: 1.8.4; 1.8.18;
use aprint_*_dev and device_xname
 1.7  03-Mar-2008  xtraeme Set D_OTHER | D_MPSAFE to d_flag for the cdevsw methods.
 1.6  03-Jan-2008  christos branches: 1.6.2; 1.6.6;
- remove casts
- sprinkle static
- move decls inside ifdef
 1.5  02-Jan-2008  xtraeme Improve the bio(4) API for incoming changes to arcmsr(4) (and perhaps
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.
 1.4  05-Dec-2007  ad branches: 1.4.4;
Match the docs: MUTEX_DRIVER/SPIN are now only for porting code written
for Solaris.
 1.3  19-Nov-2007  xtraeme branches: 1.3.2;
Make sure the mutex is initialized before using it, use the patch
provided by Martin Husemann on:
http://mail-index.netbsd.org/tech-kern/2007/11/16/0006.html

This fixes the uninitialized lock when calling bio_register() on mfi(4)
and other drivers, caught by LOCKDEBUG.

Ok'ed by Andrew Doran <ad@netbsd.org>
 1.2  02-Nov-2007  xtraeme branches: 1.2.2;
KNF, MALLOC -> malloc, u_intXX_t -> uintXX_t.
 1.1  01-May-2007  bouyer branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.14; 1.1.16; 1.1.18; 1.1.22; 1.1.24;
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
 1.1.24.2  21-Nov-2007  bouyer Sync with HEAD
 1.1.24.1  13-Nov-2007  bouyer Sync with HEAD
 1.1.22.3  15-Oct-2007  riz Clean up after a mistake I made pulling up ticket #1838. We
really only need one copy of each new file. :-)
 1.1.22.2  15-Oct-2007  riz Pull up following revisions via patch (requested by bouyer in ticket #1838):
distrib/sets/lists/man/mi: revision 1.997
sbin/bioctl/strtonum.c: revision 1.1
sys/dev/Makefile: revision 1.25
sys/arch/amd64/conf/GENERIC: revision 1.139
sbin/bioctl/strtonum.h: revision 1.1
sys/dev/bio.c: revision 1.1
sbin/bioctl/bioctl.c: revision 1.1
share/man/man4/bio.4: revision 1.1
sbin/bioctl/bioctl.8: revision 1.1
sys/sys/envsys.h: revision 1.11
sbin/bioctl/bioctl.8: revision 1.3
sbin/bioctl/bioctl.8: revision 1.4
sys/arch/i386/conf/XEN2_DOM0: revision 1.25
distrib/sets/lists/base/mi: revision 1.704
sys/conf/majors: revision 1.34
share/man/man4/Makefile: revision 1.426
etc/MAKEDEV.tmpl: revision 1.86
sys/arch/i386/conf/GENERIC: revision 1.825
distrib/sets/lists/comp/mi: revision 1.1022
sys/conf/files: revision 1.839
usr.sbin/envstat/envstat.c: revision 1.24
sbin/Makefile: revision 1.105
sys/dev/ic/mfi.c: revision 1.4
sys/dev/biovar.h: revision 1.1
sys/dev/ic/mfivar.h: revision 1.4
sbin/bioctl/Makefile: revision 1.1
Fix typo.
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
Fix Dd argument (use full month names).
Use more markup.
Comment out references to safte(4) and softraid(4), which don't exist in
NetBSD.
Remove trailing whitespace.
Use macros instead of characters for HTML output (replace ">", "<"
with \*[Gt], \*[Lt]).
Sort sections.
Create /dev/bio
 1.1.22.1  01-May-2007  riz file bio.c was added on branch netbsd-3 on 2007-10-15 05:09:52 +0000
 1.1.18.6  17-Mar-2008  yamt sync with head.
 1.1.18.5  21-Jan-2008  yamt sync with head
 1.1.18.4  07-Dec-2007  yamt sync with head
 1.1.18.3  15-Nov-2007  yamt sync with head.
 1.1.18.2  03-Sep-2007  yamt sync with head.
 1.1.18.1  01-May-2007  yamt file bio.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:09 +0000
 1.1.16.3  23-Mar-2008  matt sync with HEAD
 1.1.16.2  09-Jan-2008  matt sync with HEAD
 1.1.16.1  06-Nov-2007  matt sync with HEAD
 1.1.14.3  09-Dec-2007  jmcneill Sync with HEAD.
 1.1.14.2  21-Nov-2007  joerg Sync with HEAD.
 1.1.14.1  04-Nov-2007  jmcneill Sync with HEAD.
 1.1.8.2  11-Jul-2007  mjf Sync with head.
 1.1.8.1  01-May-2007  mjf file bio.c was added on branch mjf-ufs-trans on 2007-07-11 20:04:57 +0000
 1.1.6.2  09-Jun-2007  ad Sync with head.
 1.1.6.1  01-May-2007  ad file bio.c was added on branch vmlocking on 2007-06-09 21:37:10 +0000
 1.1.4.3  29-Aug-2008  bouyer Apply patch, requested by christos in tickets #1175:
sys/dev/bio.c patch
sys/dev/biovar.h patch
sys/dev/pci/arcmsr.c patch
sys/dev/pci/arcmsrvar.h patch
sbin/bioctl/Makefile patch
sbin/bioctl/bioctl.8 patch
sbin/bioctl/bioctl.c patch
sbin/bioctl/dehumanize_number.c patch
sbin/bioctl/strtonum.c patch
sbin/bioctl/strtonum.h patch

Port bioctl(8) and arcmsr(4) from current:
bioctl(8): Rewritten to handle new features like creating/removing
hot-spare, pass-through disks and RAID volumes, start/stop
consistency checks in volumes and others.
arcmsr(4): Added support to create/remove hot-spare, pass-through
disks and RAID volumes, start/stop consistency checks
in volumes as well as showing information about physical
disks (even if they are marked as hot-spare, pass-through
or unused).
 1.1.4.2  08-May-2007  pavel branches: 1.1.4.2.2;
Pull up following revision(s) (requested by bouyer in ticket #603):
distrib/sets/lists/base/mi: revision 1.704
distrib/sets/lists/comp/mi: revision 1.1022
distrib/sets/lists/man/mi: revision 1.997
doc/CHANGES: revision 1.839
sbin/Makefile: patch
sbin/bioctl/Makefile: revision 1.1
sbin/bioctl/bioctl.8: revision 1.1
sbin/bioctl/bioctl.c: revision 1.1
sbin/bioctl/strtonum.c: revision 1.1
sbin/bioctl/strtonum.h: revision 1.1
share/man/man4/Makefile: revision 1.426
share/man/man4/bio.4: revision 1.1
sys/arch/amd64/conf/GENERIC: revision 1.139
sys/arch/i386/conf/GENERIC: revision 1.825
sys/arch/i386/conf/XEN2_DOM0: revision 1.25
sys/conf/files: revision 1.839
sys/conf/majors: patch
sys/dev/Makefile: revision 1.25
sys/dev/bio.c: patch
sys/dev/biovar.h: patch
sys/dev/ic/mfi.c: revision 1.4-1.5
sys/dev/ic/mfivar.h: revision 1.4
sys/sys/envsys.h: revision 1.11
usr.sbin/envstat/envstat.c: revision 1.24
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.

note bio(4), envsys(4) DRIVE, and mfi(4) support for both.

tred->sensor is a u_int.
 1.1.4.1  01-May-2007  pavel branches: 1.1.4.1.2;
file bio.c was added on branch netbsd-4 on 2007-05-08 10:45:04 +0000
 1.1.4.2.2.1  04-Sep-2008  skrll Sync with netbsd-4.
 1.1.4.1.2.1 locked by: joerg;  01-May-2007  skrll file bio.c was added on branch netbsd-4 on 2008-09-04 08:46:44 +0000
 1.1.2.2  07-May-2007  yamt sync with head.
 1.1.2.1  01-May-2007  yamt file bio.c was added on branch yamt-idlelwp on 2007-05-07 10:55:23 +0000
 1.2.2.2  18-Feb-2008  mjf Sync with HEAD.
 1.2.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.3.2.1  08-Dec-2007  ad Sync with head.
 1.4.4.1  08-Jan-2008  bouyer Sync with HEAD
 1.6.6.3  02-Jun-2008  mjf Sync with HEAD.
 1.6.6.2  05-Apr-2008  mjf - add "file-system DEVFS" and "pseudo-device devfsctl" to conf/std seeing
as these are always needed.

- convert many, many drivers over to the New Devfs World Order. For a
list of device drivers yet to be converted see,
http://www.netbsd.org/~mjf/devfs-todo.html.

- add a new device_unregister_all(device_t) function to remove all device
names associated with a device_t, which saves us having to construct
device names when the driver is detached.

- add a DEV_AUDIO type for devices.
 1.6.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.6.2.1  24-Mar-2008  keiichi sync with head.
 1.8.18.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.8.4.1  16-May-2009  yamt sync with head
 1.9.26.1  18-May-2014  rmind sync with head
 1.9.22.2  03-Dec-2017  jdolecek update from HEAD
 1.9.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.12.1  22-May-2014  yamt 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")
 1.10.2.1  10-Aug-2014  tls Rebase.
 1.11.4.2  22-Sep-2015  skrll Sync with HEAD
 1.11.4.1  06-Apr-2015  skrll Sync with HEAD
 1.13.18.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.13.18.1  10-Jun-2019  christos Sync with HEAD
 1.13.16.9  22-Jan-2019  pgoyette Convert the MODULE_{,VOID_}HOOK_CALL macros to do everything in-line
rather than defining an intermediate hook##call function. Almost
all of the hooks are called only once, and although we lose the
ability of doing things like

if (MODULE_HOOK_CALL(...) == 0) ...

we simplify things quite a bit. With this change, we no longer need
to have both declaration and definition macros, and the definition
no longer needs to have both prototype argument list and a "real"
argument list.

FWIW, the above if now needs to written as

int ret;

MODULE_HOOK_CALL(..., ret);
if (ret == 0) ...

with appropriate use of braces {}.
 1.13.16.8  18-Jan-2019  pgoyette Don't restrict hooks to having only int or void types. Pass the hook's
type to the various macros, as needed.

Allows us to reduce diffs to original in at least one or two places (we
no longer have to provide an additional parameter to the hook routine
for returning a non-int return value).
 1.13.16.7  14-Jan-2019  pgoyette Create a variant of the HOOK macros that handles hook routines of
type void, and use them where appropriate.
 1.13.16.6  13-Jan-2019  pgoyette Remove the HOOK2 versions of the MODULE_HOOK macros. There were
only a few uses, and using them led to some lack of clarity in the
code. Instead, we now use two separate hooks, with names that
make it clear(er) what we're doing.

This also positions us to start unraveling some of the rtsock_50
mess, which will need (at least) five hooks.
 1.13.16.5  29-Sep-2018  pgoyette In MODULE_HOOK_CALL_DECL we don't need to provide the actual argument
list for calling the hook function, nor do we need to provide the
default value (for when the hook has not been set).
 1.13.16.4  18-Sep-2018  pgoyette The COMPAT_HOOK macros were renamed to MODULE_HOOK, adjust all callers
 1.13.16.3  18-Sep-2018  pgoyette Split the COMPAT_CALL_HOOK to separate the declaration from the
implementation. Some hooks are called from multiple source files,
and the old method resulted in duplicate implementations.

Implement MP-safe hooks for the usb_subr_30 code. Pass the helper
functions as arguments to the compat code so it does not have to
determine if the kernel contains usb code.
 1.13.16.2  17-Sep-2018  pgoyette Adapt (most of) the indirect function pointers to the new MP-safe
mechanism. Still remaining are the compat_netbsd32 stuff, and
some usb subroutines.
 1.13.16.1  28-Mar-2018  pgoyette Initial pass at a compat_30 module.

Still needs some work for dev/vnd and various dev/usb/*
 1.16.8.1  03-Jan-2021  thorpej Sync w/ HEAD.

RSS XML Feed