geom_dev.c (06d425f92e7dd0dc8f8e705c6d76b78989a496ab) | geom_dev.c (f805f204b63aaab5b49c7371deb8c2fd015bd894) |
---|---|
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 --- 230 unchanged lines hidden (view full) --- 239 * XXX: since that would prevent us from doing our job, and stalling events 240 * XXX: will break (actually: stall) the BSD disklabel hacks. 241 */ 242static int 243g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td) 244{ 245 struct g_geom *gp; 246 struct g_consumer *cp; | 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 --- 230 unchanged lines hidden (view full) --- 239 * XXX: since that would prevent us from doing our job, and stalling events 240 * XXX: will break (actually: stall) the BSD disklabel hacks. 241 */ 242static int 243g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td) 244{ 245 struct g_geom *gp; 246 struct g_consumer *cp; |
247 struct g_provider *pp; |
|
247 struct g_kerneldump kd; 248 off_t offset, length, chunk; 249 int i, error; 250 u_int u; 251 252 gp = dev->si_drv1; 253 cp = dev->si_drv2; | 248 struct g_kerneldump kd; 249 off_t offset, length, chunk; 250 int i, error; 251 u_int u; 252 253 gp = dev->si_drv1; 254 cp = dev->si_drv2; |
255 pp = cp->provider; |
|
254 255 error = 0; 256 KASSERT(cp->acr || cp->acw, 257 ("Consumer with zero access count in g_dev_ioctl")); 258 259 i = IOCPARM_LEN(cmd); 260 switch (cmd) { 261 case DIOCGSECTORSIZE: --- 62 unchanged lines hidden (view full) --- 324 */ 325 if (SIGPENDING(td)) 326 break; 327 } 328 break; 329 case DIOCGIDENT: 330 error = g_io_getattr("GEOM::ident", cp, &i, data); 331 break; | 256 257 error = 0; 258 KASSERT(cp->acr || cp->acw, 259 ("Consumer with zero access count in g_dev_ioctl")); 260 261 i = IOCPARM_LEN(cmd); 262 switch (cmd) { 263 case DIOCGSECTORSIZE: --- 62 unchanged lines hidden (view full) --- 326 */ 327 if (SIGPENDING(td)) 328 break; 329 } 330 break; 331 case DIOCGIDENT: 332 error = g_io_getattr("GEOM::ident", cp, &i, data); 333 break; |
334 case DIOCGPROVIDERNAME: 335 if (pp == NULL) 336 return (ENOENT); 337 strlcpy(data, pp->name, i); 338 break; |
|
332 333 default: 334 if (cp->provider->geom->ioctl != NULL) { 335 error = cp->provider->geom->ioctl(cp->provider, cmd, data, fflag, td); 336 } else { 337 error = ENOIOCTL; 338 } 339 } --- 117 unchanged lines hidden --- | 339 340 default: 341 if (cp->provider->geom->ioctl != NULL) { 342 error = cp->provider->geom->ioctl(cp->provider, cmd, data, fflag, td); 343 } else { 344 error = ENOIOCTL; 345 } 346 } --- 117 unchanged lines hidden --- |