Module Name: src Committed By: macallan Date: Wed Sep 28 01:46:39 UTC 2011
Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c netbsd32_ioctl.h Log Message: support WSDISPLAYIO_GCURSOR and WSDISPLAYIO_SCURSOR To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/sys/compat/netbsd32/netbsd32_ioctl.c cvs rdiff -u -r1.40 -r1.41 src/sys/compat/netbsd32/netbsd32_ioctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.61 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.62 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.61 Wed Sep 7 02:35:00 2011 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Wed Sep 28 01:46:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.61 2011/09/07 02:35:00 macallan Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.62 2011/09/28 01:46:39 macallan Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.61 2011/09/07 02:35:00 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.62 2011/09/28 01:46:39 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -339,6 +339,28 @@ netbsd32_to_ieee80211_nwkey(struct netbs } } +static inline void +netbsd32_to_wsdisplay_cursor(struct netbsd32_wsdisplay_cursor *c32, + struct wsdisplay_cursor *c, + u_long cmd) +{ + c->which = c32->which; + c->enable = c32->enable; + c->pos.x = c32->pos.x; + c->pos.y = c32->pos.y; + c->hot.x = c32->hot.x; + c->hot.y = c32->hot.y; + c->size.x = c32->size.x; + c->size.y = c32->size.y; + c->cmap.index = c32->cmap.index; + c->cmap.count = c32->cmap.count; + c->cmap.red = NETBSD32PTR64(c32->cmap.red); + c->cmap.green = NETBSD32PTR64(c32->cmap.green); + c->cmap.blue = NETBSD32PTR64(c32->cmap.blue); + c->image = NETBSD32PTR64(c32->image); + c->mask = NETBSD32PTR64(c32->mask); +} + /* * handle ioctl conversions from 64-bit kernel -> netbsd32 */ @@ -515,6 +537,28 @@ netbsd32_from_wsdisplay_addscreendata(st } static inline void +netbsd32_from_wsdisplay_cursor(struct wsdisplay_cursor *c, + struct netbsd32_wsdisplay_cursor *c32, + u_long cmd) +{ + c32->which = c->which; + c32->enable = c->enable; + c32->pos.x = c->pos.x; + c32->pos.y = c->pos.y; + c32->hot.x = c->hot.x; + c32->hot.y = c->hot.y; + c32->size.x = c->size.x; + c32->size.y = c->size.y; + c32->cmap.index = c->cmap.index; + c32->cmap.count = c->cmap.count; + NETBSD32PTR32(c32->cmap.red, c->cmap.red); + NETBSD32PTR32(c32->cmap.green, c->cmap.green); + NETBSD32PTR32(c32->cmap.blue, c->cmap.blue); + NETBSD32PTR32(c32->image, c->image); + NETBSD32PTR32(c32->mask, c->mask); +} + +static inline void netbsd32_from_ieee80211_nwkey(struct ieee80211_nwkey *nwk, struct netbsd32_ieee80211_nwkey *nwk32, u_long cmd) @@ -870,6 +914,11 @@ netbsd32_ioctl(struct lwp *l, const stru case WSDISPLAYIO_ADDSCREEN32: IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_ADDSCREEN, wsdisplay_addscreendata); + case WSDISPLAYIO_GCURSOR32: + IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_GCURSOR, wsdisplay_cursor); + case WSDISPLAYIO_SCURSOR32: + IOCTL_STRUCT_CONV_TO(WSDISPLAYIO_SCURSOR, wsdisplay_cursor); + case SIOCS80211NWKEY32: IOCTL_STRUCT_CONV_TO(SIOCG80211NWKEY, ieee80211_nwkey); Index: src/sys/compat/netbsd32/netbsd32_ioctl.h diff -u src/sys/compat/netbsd32/netbsd32_ioctl.h:1.40 src/sys/compat/netbsd32/netbsd32_ioctl.h:1.41 --- src/sys/compat/netbsd32/netbsd32_ioctl.h:1.40 Wed Sep 7 02:35:00 2011 +++ src/sys/compat/netbsd32/netbsd32_ioctl.h Wed Sep 28 01:46:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.h,v 1.40 2011/09/07 02:35:00 macallan Exp $ */ +/* $NetBSD: netbsd32_ioctl.h,v 1.41 2011/09/28 01:46:39 macallan Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -130,6 +130,33 @@ struct netbsd32_ieee80211_nwkey { /* for powerd */ #define POWER_EVENT_RECVDICT32 _IOWR('P', 1, struct netbsd32_plistref) +/* Colormap operations. Not applicable to all display types. */ +struct netbsd32_wsdisplay_cmap { + u_int index; /* first element (0 origin) */ + u_int count; /* number of elements */ + netbsd32_charp red; /* red color map elements */ + netbsd32_charp green; /* green color map elements */ + netbsd32_charp blue; /* blue color map elements */ +}; + +#define WSDISPLAYIO_GETCMAP32 _IOW('W', 66, struct netbsd32_wsdisplay_cmap) +#define WSDISPLAYIO_PUTCMAP32 _IOW('W', 67, struct netbsd32_wsdisplay_cmap) + +struct netbsd32_wsdisplay_cursor { + u_int which; /* values to get/set */ + u_int enable; /* enable/disable */ + struct wsdisplay_curpos pos; /* position */ + struct wsdisplay_curpos hot; /* hot spot */ + struct netbsd32_wsdisplay_cmap cmap; /* color map info */ + struct wsdisplay_curpos size; /* bit map size */ + netbsd32_charp image; /* image data */ + netbsd32_charp mask; /* mask data */ +}; + +/* Cursor control: get/set cursor attributes/shape */ +#define WSDISPLAYIO_GCURSOR32 _IOWR('W', 73, struct netbsd32_wsdisplay_cursor) +#define WSDISPLAYIO_SCURSOR32 _IOW('W', 74, struct netbsd32_wsdisplay_cursor) + /* can wait! */ #if 0 dev/ccdvar.h:219:#define CCDIOCSET _IOWR('F', 16, struct ccd_ioctl) /* enable ccd */ @@ -144,9 +171,6 @@ dev/wscons/wsconsio.h:134:#define WSKBDI dev/wscons/wsconsio.h:188:#define WSDISPLAYIO_GETCMAP _IOW('W', 66, struct wsdisplay_cmap) dev/wscons/wsconsio.h:189:#define WSDISPLAYIO_PUTCMAP _IOW('W', 67, struct wsdisplay_cmap) -dev/wscons/wsconsio.h:227:#define WSDISPLAYIO_GCURSOR _IOWR('W', 73, struct wsdisplay_cursor) -dev/wscons/wsconsio.h:228:#define WSDISPLAYIO_SCURSOR _IOW('W', 74, struct wsdisplay_cursor) - dev/wscons/wsconsio.h:241:#define WSDISPLAYIO_SFONT _IOW('W', 77, struct wsdisplay_font) net/if_ppp.h:110:#define PPPIOCSPASS _IOW('t', 71, struct bpf_program) /* set pass filter */