1.\"
2.\" Copyright (c) 2003 Robert N. M. Watson
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
--- 11 unchanged lines hidden (view full) ---
20.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
26.\" DAMAGE.
27.\"
28.\" $FreeBSD: head/share/man/man9/disk.9 237518 2012-06-24 04:29:03Z ken $
29.\"
30.Dd February 18, 2004
31.Dt DISK 9
32.Os
33.Sh NAME
34.Nm disk
35.Nd kernel disk storage API
36.Sh SYNOPSIS
--- 103 unchanged lines hidden (view full) ---
140Optional: invoked when an I/O control operation is initiated on the disk device.
141Please note that for security reasons these operations should not
142be able to affect other devices than the one on which they are performed.
143.It Vt "dumper_t *" Va d_dump
144Optional: if configured with
145.Xr dumpon 8 ,
146this function is invoked from a very restricted system state after a
147kernel panic to record a copy of the system RAM to the disk.
148.It Vt "disk_getattr_t *" Va d_getattr
149Optional: if this method is provided, it gives the disk driver the
150opportunity to override the default GEOM response to BIO_GETATTR requests.
151This function should return -1 if the attribute is not handled, 0 if the
152attribute is handled, or an errno to be passed to g_io_deliver().
153.It Vt "disk_gone_t *" Va d_gone
154Optional: if this method is provided, it will be called after disk_gone()
155is called, once GEOM has finished its cleanup process.
156Once this callback is called, it is safe for the disk driver to free all of
157its resources, as it will not be receiving further calls from GEOM.
158.El
159.Ss Mandatory Media Properties
160The following fields identify the size and granularity of the disk device.
161These fields must stay stable from return of the drivers open method until
162the close method is called, but it is perfectly legal to modify them in
163the open method before returning.
164.Bl -tag -width indent
165.It Vt u_int Va d_sectorsize
--- 19 unchanged lines hidden (view full) ---
185necessary for the correct calculation of disk partitioning.
186.It Vt u_int Va d_stripeoffset , Vt u_int Va d_stripesize
187These two fields can be used to describe the width and location of
188natural performance boundaries for most disk technologies.
189Please see
190.Pa src/sys/geom/notes
191for details.
192.It Vt char Va d_ident[DISK_IDENT_SIZE]
193This field can and should be used to store disk's serial number if the
194d_getattr method described above isn't implemented, or if it does not
195support the GEOM::ident attribute.
196.It Vt char Va d_descr[DISK_IDENT_SIZE]
197This field can be used to store the disk vendor and product description.
198.It Vt uint16_t Va d_hba_vendor
199This field can be used to store the PCI vendor ID for the HBA connected to
200the disk.
201.It Vt uint16_t Va d_hba_device
202This field can be used to store the PCI device ID for the HBA connected to
203the disk.
204.It Vt uint16_t Va d_hba_subvendor
205This field can be used to store the PCI subvendor ID for the HBA connected to
206the disk.
207.It Vt uint16_t Va d_hba_subdevice
208This field can be used to store the PCI subdevice ID for the HBA connected to
209the disk.
210.El
211.Ss Driver Private Data
212This field may be used by the device driver to store a pointer to
213private data to implement the disk service.
214.Bl -tag -width indent
215.It Vt "void *" Va d_drv1
216Private data pointer.
217Typically used to store a pointer to the drivers
218.Vt softc
219structure for this disk device.
220.El
221.Sh SEE ALSO
222.Xr GEOM 4 ,
223.Xr devfs 5
224.Sh AUTHORS
225This manual page was written by
226.An Robert Watson .
2.\" Copyright (c) 2003 Robert N. M. Watson
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
--- 11 unchanged lines hidden (view full) ---
20.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
26.\" DAMAGE.
27.\"
28.\" $FreeBSD: head/share/man/man9/disk.9 237518 2012-06-24 04:29:03Z ken $
29.\"
30.Dd February 18, 2004
31.Dt DISK 9
32.Os
33.Sh NAME
34.Nm disk
35.Nd kernel disk storage API
36.Sh SYNOPSIS
--- 103 unchanged lines hidden (view full) ---
140Optional: invoked when an I/O control operation is initiated on the disk device.
141Please note that for security reasons these operations should not
142be able to affect other devices than the one on which they are performed.
143.It Vt "dumper_t *" Va d_dump
144Optional: if configured with
145.Xr dumpon 8 ,
146this function is invoked from a very restricted system state after a
147kernel panic to record a copy of the system RAM to the disk.
148.It Vt "disk_getattr_t *" Va d_getattr
149Optional: if this method is provided, it gives the disk driver the
150opportunity to override the default GEOM response to BIO_GETATTR requests.
151This function should return -1 if the attribute is not handled, 0 if the
152attribute is handled, or an errno to be passed to g_io_deliver().
153.It Vt "disk_gone_t *" Va d_gone
154Optional: if this method is provided, it will be called after disk_gone()
155is called, once GEOM has finished its cleanup process.
156Once this callback is called, it is safe for the disk driver to free all of
157its resources, as it will not be receiving further calls from GEOM.
158.El
159.Ss Mandatory Media Properties
160The following fields identify the size and granularity of the disk device.
161These fields must stay stable from return of the drivers open method until
162the close method is called, but it is perfectly legal to modify them in
163the open method before returning.
164.Bl -tag -width indent
165.It Vt u_int Va d_sectorsize
--- 19 unchanged lines hidden (view full) ---
185necessary for the correct calculation of disk partitioning.
186.It Vt u_int Va d_stripeoffset , Vt u_int Va d_stripesize
187These two fields can be used to describe the width and location of
188natural performance boundaries for most disk technologies.
189Please see
190.Pa src/sys/geom/notes
191for details.
192.It Vt char Va d_ident[DISK_IDENT_SIZE]
193This field can and should be used to store disk's serial number if the
194d_getattr method described above isn't implemented, or if it does not
195support the GEOM::ident attribute.
196.It Vt char Va d_descr[DISK_IDENT_SIZE]
197This field can be used to store the disk vendor and product description.
198.It Vt uint16_t Va d_hba_vendor
199This field can be used to store the PCI vendor ID for the HBA connected to
200the disk.
201.It Vt uint16_t Va d_hba_device
202This field can be used to store the PCI device ID for the HBA connected to
203the disk.
204.It Vt uint16_t Va d_hba_subvendor
205This field can be used to store the PCI subvendor ID for the HBA connected to
206the disk.
207.It Vt uint16_t Va d_hba_subdevice
208This field can be used to store the PCI subdevice ID for the HBA connected to
209the disk.
210.El
211.Ss Driver Private Data
212This field may be used by the device driver to store a pointer to
213private data to implement the disk service.
214.Bl -tag -width indent
215.It Vt "void *" Va d_drv1
216Private data pointer.
217Typically used to store a pointer to the drivers
218.Vt softc
219structure for this disk device.
220.El
221.Sh SEE ALSO
222.Xr GEOM 4 ,
223.Xr devfs 5
224.Sh AUTHORS
225This manual page was written by
226.An Robert Watson .