geom_dev.c (105540) | geom_dev.c (105551) |
---|---|
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 * | 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_dev.c 105540 2002-10-20 18:48:12Z phk $ | 35 * $FreeBSD: head/sys/geom/geom_dev.c 105551 2002-10-20 20:28:24Z phk $ |
36 */ 37 38#include <sys/param.h> 39#include <sys/stdint.h> 40#include <sys/systm.h> 41#include <sys/malloc.h> 42#include <sys/kernel.h> 43#include <sys/conf.h> --- 196 unchanged lines hidden (view full) --- 240 gio = NULL; 241 242 error = 0; 243 DROP_GIANT(); 244 245 i = IOCPARM_LEN(cmd); 246 switch (cmd) { 247 case DIOCGSECTORSIZE: | 36 */ 37 38#include <sys/param.h> 39#include <sys/stdint.h> 40#include <sys/systm.h> 41#include <sys/malloc.h> 42#include <sys/kernel.h> 43#include <sys/conf.h> --- 196 unchanged lines hidden (view full) --- 240 gio = NULL; 241 242 error = 0; 243 DROP_GIANT(); 244 245 i = IOCPARM_LEN(cmd); 246 switch (cmd) { 247 case DIOCGSECTORSIZE: |
248 error = g_io_getattr("GEOM::sectorsize", cp, &i, data); 249 if (error == 0 && *(u_int *)data == 0) | 248 *(u_int *)data = cp->provider->sectorsize; 249 if (*(u_int *)data == 0) |
250 error = ENOENT; 251 break; 252 case DIOCGMEDIASIZE: | 250 error = ENOENT; 251 break; 252 case DIOCGMEDIASIZE: |
253 error = g_io_getattr("GEOM::mediasize", cp, &i, data); 254 if (error == 0 && *(off_t *)data == 0) | 253 *(off_t *)data = cp->provider->mediasize; 254 if (*(off_t *)data == 0) |
255 error = ENOENT; 256 break; 257 case DIOCGFWSECTORS: 258 error = g_io_getattr("GEOM::fwsectors", cp, &i, data); 259 if (error == 0 && *(u_int *)data == 0) 260 error = ENOENT; 261 break; 262 case DIOCGFWHEADS: --- 61 unchanged lines hidden (view full) --- 324 } 325 return (error); 326} 327 328static int 329g_dev_psize(dev_t dev) 330{ 331 struct g_consumer *cp; | 255 error = ENOENT; 256 break; 257 case DIOCGFWSECTORS: 258 error = g_io_getattr("GEOM::fwsectors", cp, &i, data); 259 if (error == 0 && *(u_int *)data == 0) 260 error = ENOENT; 261 break; 262 case DIOCGFWHEADS: --- 61 unchanged lines hidden (view full) --- 324 } 325 return (error); 326} 327 328static int 329g_dev_psize(dev_t dev) 330{ 331 struct g_consumer *cp; |
332 int i, error; | |
333 off_t mediasize; 334 335 cp = dev->si_drv2; 336 | 332 off_t mediasize; 333 334 cp = dev->si_drv2; 335 |
337 i = sizeof mediasize; 338 error = g_io_getattr("GEOM::mediasize", cp, &i, &mediasize); 339 if (error) 340 return (-1); | 336 mediasize = cp->provider->mediasize; |
341 return (mediasize >> DEV_BSHIFT); 342} 343 344static void 345g_dev_done(struct bio *bp2) 346{ 347 struct bio *bp; 348 --- 74 unchanged lines hidden --- | 337 return (mediasize >> DEV_BSHIFT); 338} 339 340static void 341g_dev_done(struct bio *bp2) 342{ 343 struct bio *bp; 344 --- 74 unchanged lines hidden --- |