1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
--- 18 unchanged lines hidden (view full) ---
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * $FreeBSD: head/sys/geom/geom_disk.c 112476 2003-03-21 22:05:33Z phk $
36 */
37
38#include "opt_geom.h"
39
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/kernel.h>
43#include <sys/sysctl.h>
--- 4 unchanged lines hidden (view full) ---
48#include <sys/malloc.h>
49#include <sys/sysctl.h>
50#include <sys/devicestat.h>
51#include <machine/md_var.h>
52
53#include <sys/lock.h>
54#include <sys/mutex.h>
55#include <geom/geom.h>
56#include <geom/geom_int.h>
57
58static struct mtx g_disk_done_mtx;
59
60static g_access_t g_disk_access;
61
62struct g_class g_disk_class = {
63 "DISK",
64 NULL,
--- 183 unchanged lines hidden (view full) ---
248 if (g_handleattr_int(bp, "GEOM::fwsectors", dp->d_fwsectors))
249 break;
250 else if (g_handleattr_int(bp, "GEOM::fwheads", dp->d_fwheads))
251 break;
252 else if (g_handleattr_off_t(bp, "GEOM::frontstuff", 0))
253 break;
254 else if (!strcmp(bp->bio_attribute, "GEOM::kerneldump"))
255 g_disk_kerneldump(bp, dp);
256 else if ((g_debugflags & G_F_DISKIOCTL) &&
257 (dp->d_ioctl != NULL) &&
258 !strcmp(bp->bio_attribute, "GEOM::ioctl") &&
259 bp->bio_length == sizeof *gio) {
260 gio = (struct g_ioctl *)bp->bio_data;
261 gio->dev = dp;
262 gio->func = (d_ioctl_t *)(dp->d_ioctl);
263 error = EDIRIOCTL;
264 } else
265 error = ENOIOCTL;
--- 127 unchanged lines hidden ---
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
--- 18 unchanged lines hidden (view full) ---
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * $FreeBSD: head/sys/geom/geom_disk.c 112476 2003-03-21 22:05:33Z phk $
36 */
37
38#include "opt_geom.h"
39
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/kernel.h>
43#include <sys/sysctl.h>
--- 4 unchanged lines hidden (view full) ---
48#include <sys/malloc.h>
49#include <sys/sysctl.h>
50#include <sys/devicestat.h>
51#include <machine/md_var.h>
52
53#include <sys/lock.h>
54#include <sys/mutex.h>
55#include <geom/geom.h>
56#include <geom/geom_int.h>
57
58static struct mtx g_disk_done_mtx;
59
60static g_access_t g_disk_access;
61
62struct g_class g_disk_class = {
63 "DISK",
64 NULL,
--- 183 unchanged lines hidden (view full) ---
248 if (g_handleattr_int(bp, "GEOM::fwsectors", dp->d_fwsectors))
249 break;
250 else if (g_handleattr_int(bp, "GEOM::fwheads", dp->d_fwheads))
251 break;
252 else if (g_handleattr_off_t(bp, "GEOM::frontstuff", 0))
253 break;
254 else if (!strcmp(bp->bio_attribute, "GEOM::kerneldump"))
255 g_disk_kerneldump(bp, dp);
256 else if ((g_debugflags & G_F_DISKIOCTL) &&
257 (dp->d_ioctl != NULL) &&
258 !strcmp(bp->bio_attribute, "GEOM::ioctl") &&
259 bp->bio_length == sizeof *gio) {
260 gio = (struct g_ioctl *)bp->bio_data;
261 gio->dev = dp;
262 gio->func = (d_ioctl_t *)(dp->d_ioctl);
263 error = EDIRIOCTL;
264 } else
265 error = ENOIOCTL;
--- 127 unchanged lines hidden ---