146 char *name;
147 int minor;
148 int type;
149 } fd_minor [] = {
150 { "a", 0, S_IFBLK},
151 { "b", 1, S_IFBLK},
152 { "c", 2, S_IFBLK},
153 { "a,raw", 0, S_IFCHR},
154 { "b,raw", 1, S_IFCHR},
155 { "c,raw", 2, S_IFCHR},
156 {0}
157 };
158
159 static struct modldrv modldrv = {
160 &mod_driverops, /* Type of module. This one is a driver */
161 "Floppy Disk driver", /* Name of the module. */
162 &fd_ops, /* driver ops */
163 };
164
165 static struct modlinkage modlinkage = {
166 MODREV_1, (void *)&modldrv, NULL
167 };
168
169
170 int
171 _init(void)
172 {
173 int retval;
174
175 if ((retval = ddi_soft_state_init(&fd_state_head,
176 sizeof (struct fdisk) + sizeof (struct fd_drive) +
177 sizeof (struct fd_char) + sizeof (struct fdattr), 0)) != 0)
178 return (retval);
179
180 if ((retval = mod_install(&modlinkage)) != 0)
181 ddi_soft_state_fini(&fd_state_head);
182 return (retval);
183 }
184
185 int
186 _fini(void)
|
146 char *name;
147 int minor;
148 int type;
149 } fd_minor [] = {
150 { "a", 0, S_IFBLK},
151 { "b", 1, S_IFBLK},
152 { "c", 2, S_IFBLK},
153 { "a,raw", 0, S_IFCHR},
154 { "b,raw", 1, S_IFCHR},
155 { "c,raw", 2, S_IFCHR},
156 {0}
157 };
158
159 static struct modldrv modldrv = {
160 &mod_driverops, /* Type of module. This one is a driver */
161 "Floppy Disk driver", /* Name of the module. */
162 &fd_ops, /* driver ops */
163 };
164
165 static struct modlinkage modlinkage = {
166 MODREV_1, { (void *)&modldrv, NULL }
167 };
168
169
170 int
171 _init(void)
172 {
173 int retval;
174
175 if ((retval = ddi_soft_state_init(&fd_state_head,
176 sizeof (struct fdisk) + sizeof (struct fd_drive) +
177 sizeof (struct fd_char) + sizeof (struct fdattr), 0)) != 0)
178 return (retval);
179
180 if ((retval = mod_install(&modlinkage)) != 0)
181 ddi_soft_state_fini(&fd_state_head);
182 return (retval);
183 }
184
185 int
186 _fini(void)
|