summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-02-02 10:22:34 +0000
committerphk <phk@FreeBSD.org>2003-02-02 10:22:34 +0000
commit0e3c8673ccec26c60bcc6ec1961470dbb29d015b (patch)
tree0220d4912e97a2915c3171913abfa3952c2810ba /sys
parent3ddb056ffb0d1e3f754a654710341a0b1d51e3e1 (diff)
downloadFreeBSD-src-0e3c8673ccec26c60bcc6ec1961470dbb29d015b.zip
FreeBSD-src-0e3c8673ccec26c60bcc6ec1961470dbb29d015b.tar.gz
We don't need sscopen() and sscclose().
Register sscstrategy directly, instead of using a cdevsw{} for the purpose. Tested by: marcel
Diffstat (limited to 'sys')
-rw-r--r--sys/ia64/ia64/sscdisk.c62
1 files changed, 9 insertions, 53 deletions
diff --git a/sys/ia64/ia64/sscdisk.c b/sys/ia64/ia64/sscdisk.c
index 561ffc5..e09fe9f 100644
--- a/sys/ia64/ia64/sscdisk.c
+++ b/sys/ia64/ia64/sscdisk.c
@@ -81,29 +81,8 @@ SYSCTL_INT(_debug, OID_AUTO, sscdebug, CTLFLAG_RW, &ssc_debug, 0, "");
static int sscrootready;
-#define CDEV_MAJOR 157
static d_strategy_t sscstrategy;
-static d_open_t sscopen;
-static d_ioctl_t sscioctl;
-
-static struct cdevsw ssc_cdevsw = {
- /* open */ sscopen,
- /* close */ nullclose,
- /* read */ physread,
- /* write */ physwrite,
- /* ioctl */ sscioctl,
- /* poll */ nopoll,
- /* mmap */ nommap,
- /* strategy */ sscstrategy,
- /* name */ "sscdisk",
- /* maj */ CDEV_MAJOR,
- /* dump */ nodump,
- /* psize */ nopsize,
- /* flags */ D_DISK,
-};
-
-static struct cdevsw sscdisk_cdevsw;
static LIST_HEAD(, ssc_s) ssc_softc_list = LIST_HEAD_INITIALIZER(&ssc_softc_list);
@@ -121,35 +100,6 @@ struct ssc_s {
static int sscunits;
-static int
-sscopen(dev_t dev, int flag, int fmt, struct thread *td)
-{
- struct ssc_s *sc;
-
- if (ssc_debug)
- printf("sscopen(%s %x %x %p)\n",
- devtoname(dev), flag, fmt, td);
-
- sc = dev->si_drv1;
-
- sc->disk.d_sectorsize = DEV_BSIZE;
- sc->disk.d_mediasize = (off_t)sc->nsect * DEV_BSIZE;
- sc->disk.d_fwsectors = 0;
- sc->disk.d_fwheads = 0;
- return (0);
-}
-
-static int
-sscioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td)
-{
-
- if (ssc_debug)
- printf("sscioctl(%s %lx %p %x %p)\n",
- devtoname(dev), cmd, addr, flags, td);
-
- return (ENOIOCTL);
-}
-
static void
sscstrategy(struct bio *bp)
{
@@ -253,8 +203,14 @@ ssccreate(int unit)
DEVSTAT_NO_ORDERED_TAGS,
DEVSTAT_TYPE_DIRECT | DEVSTAT_TYPE_IF_OTHER,
DEVSTAT_PRIORITY_OTHER);
- sc->dev = disk_create(sc->unit, &sc->disk, 0,
- &ssc_cdevsw, &sscdisk_cdevsw);
+
+ sc->disk.d_strategy = sscstrategy;
+ sc->disk.d_name = "sscdisk";
+ sc->disk.d_sectorsize = DEV_BSIZE;
+ sc->disk.d_mediasize = (off_t)SSC_NSECT * DEV_BSIZE;
+ sc->disk.d_fwsectors = 0;
+ sc->disk.d_fwheads = 0;
+ sc->dev = disk_create(sc->unit, &sc->disk, 0, NULL, NULL);
sc->dev->si_drv1 = sc;
sc->nsect = SSC_NSECT;
sc->fd = fd;
@@ -291,7 +247,7 @@ ssc_drvinit(void *unused)
ssccreate(-1);
}
-SYSINIT(sscdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR, ssc_drvinit,NULL)
+SYSINIT(sscdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE, ssc_drvinit,NULL)
static void
ssc_takeroot(void *junk)
OpenPOWER on IntegriCloud