From 3b6415de0347a68c899e9f62cb73a945c6ef4eb7 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 16 Nov 2011 05:20:17 -0500 Subject: [PATCH] Patched to compile on FreeBSD (1.2 branch). --HG-- branch : SDL-1.2 --- src/joystick/bsd/SDL_sysjoystick.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/joystick/bsd/SDL_sysjoystick.c b/src/joystick/bsd/SDL_sysjoystick.c index 2ecf7f4e0..1aba0b889 100644 --- a/src/joystick/bsd/SDL_sysjoystick.c +++ b/src/joystick/bsd/SDL_sysjoystick.c @@ -63,6 +63,9 @@ #ifndef __DragonFly__ #include #endif +#if __FreeBSD_kernel_version > 800063 +#include +#endif #include #endif @@ -78,15 +81,12 @@ #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 +148,10 @@ static char *joydevnames[MAX_JOYS]; 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