diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2003-09-11 15:59:16 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2003-09-11 15:59:16 +0000 |
| commit | fe78f9d47c4caedc2c40ba447f2c947fd8b58184 (patch) | |
| tree | 4960ed615ad88539cf84a3533b636b875d59be8b /sys/dev/ata | |
| parent | 8278014bcec29aa4d8c6c8ac300449465334700c (diff) | |
Notes
Diffstat (limited to 'sys/dev/ata')
| -rw-r--r-- | sys/dev/ata/atapi-cd.c | 9 | ||||
| -rw-r--r-- | sys/dev/ata/atapi-cd.h | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c index a8a8b8737294a..e404b12d7d83f 100644 --- a/sys/dev/ata/atapi-cd.c +++ b/sys/dev/ata/atapi-cd.c @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include <sys/cdio.h> #include <sys/cdrio.h> #include <sys/dvdio.h> +#include <sys/disk.h> #include <sys/fcntl.h> #include <sys/conf.h> #include <sys/ctype.h> @@ -1032,6 +1033,14 @@ acd_ioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td) error = EINVAL; break; + case DIOCGMEDIASIZE: + *(off_t *)addr = cdp->disk_size * cdp->block_size; + break; + + case DIOCGSECTORSIZE: + *(u_int *)addr = cdp->block_size; + break; + default: error = ENOTTY; } diff --git a/sys/dev/ata/atapi-cd.h b/sys/dev/ata/atapi-cd.h index 6184bee90c604..190b651bdcd61 100644 --- a/sys/dev/ata/atapi-cd.h +++ b/sys/dev/ata/atapi-cd.h @@ -318,8 +318,8 @@ struct acd_softc { struct acd_softc **driver; /* softc's of changer slots */ int slot; /* this instance slot number */ time_t timestamp; /* this instance timestamp */ - int disk_size; /* size of current media */ - int block_size; /* blocksize currently used */ + u_int disk_size; /* size of current media */ + u_int block_size; /* blocksize currently used */ struct devstat *stats; /* devstat entry */ dev_t dev; /* device place holders */ #ifndef BURN_BRIDGES |
