summaryrefslogtreecommitdiff
path: root/device
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-07-28 18:41:00 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-07-28 18:41:00 +0200
commitcc0dffd12bbf19cc2f7f3480db4987b2dd9039b9 (patch)
tree980b16c974629cf5005a1febc65b91097bb53c9b /device
parent4962b90a59b550525856a8eaa31104493407dc84 (diff)
Fix dev_ops types
* device/conf.h: Include <device/device_types.h>. (dev_ops): Make d_getstat and d_setstat fields use dev_flavor_t, dev_status_t, and mach_msg_type_number_t types. * device/tty.h: (t_getstat, t_setstat): Likewise. * device/conf.h (nulldev_getstat, nulldev_setstat): Fix parameter types accordingly. * device/dev_name.c (nulldev_getstat, nulldev_setstat): Likewise. * device/kmsg.c (kmsggetstat): Likewise. * device/kmsg.h (kmsggetstat): Likewise. * device/net_io.c (net_getstat): Likewise. * device/net_io.h (net_getstat): Likewise. * i386/i386at/com.c (comgetstat, comsetstat): Likewise. * i386/i386at/com.h (comgetstat, comsetstat): Likewise. * i386/i386at/kd.c (kdgetstat, kdsetstat): Likewise. * i386/i386at/kd.h (kdgetstat, kdsetstat): Likewise. * i386/i386at/kd_event.c (kbdgetstat, kbdsetstat): Likewise. * i386/i386at/kd_event.h (kbdgetstat, kbdsetstat): Likewise. * i386/i386at/kd_mouse.c (mousegetstat): Likewise. * i386/i386at/kd_mouse.h (mousegetstat): Likewise. * i386/i386at/lpr.c (lprgetstat, lprsetstat): Likewise. * i386/i386at/lpr.h (lprgetstat, lprsetstat): Likewise. * xen/console.c (hypcngetstat, hypcnsetstat): Likewise. * xen/console.h (hypcngetstat, hypcnsetstat): Likewise. * device/dev_hdr.h: Forward-declare struct dev_ops and dev_ops_t type instead of including <device/conf.h>. * device/dev_pager.c: Include <device/conf.h> * i386/i386/pcb.h: Include <machine/io_perm.h> * i386/i386/thread.h: Do not include <i386/tss.h>
Diffstat (limited to 'device')
-rw-r--r--device/conf.h9
-rw-r--r--device/dev_hdr.h2
-rw-r--r--device/dev_name.c4
-rw-r--r--device/dev_pager.c1
-rw-r--r--device/kmsg.c2
-rw-r--r--device/kmsg.h4
-rw-r--r--device/net_io.c2
-rw-r--r--device/net_io.h2
-rw-r--r--device/tty.h4
9 files changed, 16 insertions, 14 deletions
diff --git a/device/conf.h b/device/conf.h
index fea18223..14a23f97 100644
--- a/device/conf.h
+++ b/device/conf.h
@@ -35,6 +35,7 @@
#include <sys/types.h>
#include <mach/port.h>
#include <mach/vm_prot.h>
+#include <device/device_types.h>
struct io_req;
typedef struct io_req *io_req_t;
@@ -50,8 +51,8 @@ struct dev_ops {
void (*d_close)(dev_t, int); /* close device */
int (*d_read)(dev_t, io_req_t); /* read */
int (*d_write)(dev_t, io_req_t); /* write */
- int (*d_getstat)(dev_t, int, int *, natural_t *); /* get status/control */
- int (*d_setstat)(dev_t, int, int *, natural_t); /* set status/control */
+ int (*d_getstat)(dev_t, dev_flavor_t, dev_status_t, mach_msg_type_number_t *); /* get status/control */
+ int (*d_setstat)(dev_t, dev_flavor_t, dev_status_t, mach_msg_type_number_t); /* set status/control */
int (*d_mmap)(dev_t, vm_offset_t, vm_prot_t); /* map memory */
int (*d_async_in)(); /* asynchronous input setup */
int (*d_reset)(); /* reset device */
@@ -71,8 +72,8 @@ extern int nulldev_open(dev_t dev, int flag, io_req_t ior);
extern void nulldev_close(dev_t dev, int flags);
extern int nulldev_read(dev_t dev, io_req_t ior);
extern int nulldev_write(dev_t dev, io_req_t ior);
-extern io_return_t nulldev_getstat(dev_t dev, int flavor, int *data, natural_t *count);
-extern io_return_t nulldev_setstat(dev_t dev, int flavor, int *data, natural_t count);
+extern io_return_t nulldev_getstat(dev_t dev, dev_flavor_t flavor, dev_status_t data, mach_msg_type_number_t *count);
+extern io_return_t nulldev_setstat(dev_t dev, dev_flavor_t flavor, dev_status_t data, mach_msg_type_number_t count);
extern io_return_t nulldev_portdeath(dev_t dev, mach_port_t port);
extern int nodev(void); /* no operation - error */
extern int nomap(dev_t dev, vm_offset_t off, int prot); /* no operation - error */
diff --git a/device/dev_hdr.h b/device/dev_hdr.h
index ff7d2ef5..ad98e0bb 100644
--- a/device/dev_hdr.h
+++ b/device/dev_hdr.h
@@ -61,7 +61,7 @@
#include <kern/lock.h>
#include <kern/queue.h>
-#include <device/conf.h>
+typedef struct dev_ops *dev_ops_t;
/* This structure is associated with each open device port.
The port representing the device points to this structure. */
diff --git a/device/dev_name.c b/device/dev_name.c
index 175e3890..6036fb46 100644
--- a/device/dev_name.c
+++ b/device/dev_name.c
@@ -63,12 +63,12 @@ int nulldev_write(dev_t dev, io_req_t ior)
return (D_SUCCESS);
}
-io_return_t nulldev_getstat(dev_t dev, int flavor, int *data, natural_t *count)
+io_return_t nulldev_getstat(dev_t dev, dev_flavor_t flavor, dev_status_t data, mach_msg_type_number_t *count)
{
return (D_SUCCESS);
}
-io_return_t nulldev_setstat(dev_t dev, int flavor, int *data, natural_t count)
+io_return_t nulldev_setstat(dev_t dev, dev_flavor_t flavor, dev_status_t data, mach_msg_type_number_t count)
{
return (D_SUCCESS);
}
diff --git a/device/dev_pager.c b/device/dev_pager.c
index 7130229b..0680b5aa 100644
--- a/device/dev_pager.c
+++ b/device/dev_pager.c
@@ -57,6 +57,7 @@
#include <device/memory_object_reply.user.h>
#include <device/dev_pager.h>
#include <device/blkio.h>
+#include <device/conf.h>
/*
* The device pager routines are called directly from the message
diff --git a/device/kmsg.c b/device/kmsg.c
index c80775d9..e49eb3d3 100644
--- a/device/kmsg.c
+++ b/device/kmsg.c
@@ -195,7 +195,7 @@ kmsg_read_done (io_req_t ior)
}
io_return_t
-kmsggetstat (dev_t dev, int flavor, int *data, unsigned int *count)
+kmsggetstat (dev_t dev, dev_flavor_t flavor, dev_status_t data, mach_msg_type_number_t *count)
{
switch (flavor)
{
diff --git a/device/kmsg.h b/device/kmsg.h
index 8d907f1b..00a35050 100644
--- a/device/kmsg.h
+++ b/device/kmsg.h
@@ -10,8 +10,8 @@
io_return_t kmsgopen (dev_t dev, int flag, io_req_t ior);
void kmsgclose (dev_t dev, int flag);
io_return_t kmsgread (dev_t dev, io_req_t ior);
-io_return_t kmsggetstat (dev_t dev, int flavor,
- int *data, unsigned int *count);
+io_return_t kmsggetstat (dev_t dev, dev_flavor_t flavor,
+ dev_status_t data, mach_msg_type_number_t *count);
void kmsg_putchar (int c);
diff --git a/device/net_io.c b/device/net_io.c
index 99af0b29..72b040a0 100644
--- a/device/net_io.c
+++ b/device/net_io.c
@@ -1374,7 +1374,7 @@ net_getstat(
struct ifnet *ifp,
dev_flavor_t flavor,
dev_status_t status, /* pointer to OUT array */
- natural_t *count) /* OUT */
+ mach_msg_type_number_t *count) /* OUT */
{
switch (flavor) {
case NET_STATUS:
diff --git a/device/net_io.h b/device/net_io.h
index d4e24d41..5baf0678 100644
--- a/device/net_io.h
+++ b/device/net_io.h
@@ -78,7 +78,7 @@ extern void net_ast(void);
extern void net_packet(struct ifnet *, ipc_kmsg_t, unsigned int, boolean_t);
extern void net_filter(ipc_kmsg_t, ipc_kmsg_queue_t);
extern io_return_t net_getstat(struct ifnet *, dev_flavor_t, dev_status_t,
- natural_t *);
+ mach_msg_type_number_t *);
extern io_return_t net_write(struct ifnet *, int (*)(), io_req_t);
/*
diff --git a/device/tty.h b/device/tty.h
index d7aa2add..ea6f4404 100644
--- a/device/tty.h
+++ b/device/tty.h
@@ -72,8 +72,8 @@ struct tty {
* Items beyond this point should be removed to device-specific
* extension structures.
*/
- io_return_t (*t_getstat)(dev_t, int, int *, natural_t *); /* routine to get status */
- io_return_t (*t_setstat)(dev_t, int, int *, natural_t); /* routine to set status */
+ io_return_t (*t_getstat)(dev_t, dev_flavor_t, dev_status_t, mach_msg_type_number_t *); /* routine to get status */
+ io_return_t (*t_setstat)(dev_t, dev_flavor_t, dev_status_t, mach_msg_type_number_t); /* routine to set status */
dev_ops_t t_tops; /* another device to possibly
push through */
};