aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2003-09-11 15:59:16 +0000
committerSøren Schmidt <sos@FreeBSD.org>2003-09-11 15:59:16 +0000
commitfe78f9d47c4caedc2c40ba447f2c947fd8b58184 (patch)
tree4960ed615ad88539cf84a3533b636b875d59be8b /sys/dev/ata
parent8278014bcec29aa4d8c6c8ac300449465334700c (diff)
Notes
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/atapi-cd.c9
-rw-r--r--sys/dev/ata/atapi-cd.h4
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