Patched to compile on newer FreeBSD releases.
authorRyan C. Gordon <icculus@icculus.org>
Wed, 16 Nov 2011 05:13:40 -0500
changeset 6080 eb0e11b096ab
parent 6079 d7135957b216
child 6085 fcffe5fdf54b
Patched to compile on newer FreeBSD releases. Thanks to Marcus von Appen for the patch!
src/joystick/bsd/SDL_sysjoystick.c
--- a/src/joystick/bsd/SDL_sysjoystick.c	Tue Nov 15 01:38:27 2011 -0500
+++ b/src/joystick/bsd/SDL_sysjoystick.c	Wed Nov 16 05:13:40 2011 -0500
@@ -62,6 +62,9 @@
 #ifndef __DragonFly__
 #include <osreldate.h>
 #endif
+#if __FreeBSD_kernel_version > 800063
+#include <dev/usb/usb_ioctl.h>
+#endif
 #include <sys/joystick.h>
 #endif
 
@@ -77,16 +80,14 @@
 #define MAX_JOY_JOYS	2
 #define MAX_JOYS	(MAX_UHID_JOYS + MAX_JOY_JOYS)
 
-#if defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063) && false
-struct usb_ctl_report {
-    int     ucr_report;
-    u_char  ucr_data[1024]; /* filled data size will vary */
-};
-#endif
 
 struct report
 {
+#if defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063)
+    struct usb_gen_descriptor *buf; /* Buffer */
+#else
     struct usb_ctl_report *buf; /* Buffer */
+#endif
     size_t size;                /* Buffer size */
     int rid;                    /* Report ID */
     enum
@@ -148,8 +149,10 @@
 static int report_alloc(struct report *, struct report_desc *, int);
 static void report_free(struct report *);
 
-#if defined(USBHID_UCR_DATA) || (defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063)) || defined(__FreeBSD_kernel__)
+#if defined(USBHID_UCR_DATA) || defined(__FreeBSD_kernel__)
 #define REP_BUF_DATA(rep) ((rep)->buf->ucr_data)
+#elif (defined(__FREEBSD__) && (__FreeBSD_kernel_version > 800063))
+#define REP_BUF_DATA(rep) ((rep)->buf->ugd_data)
 #else
 #define REP_BUF_DATA(rep) ((rep)->buf->data)
 #endif