The branch main has been updated by brooks:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=ea972feea2d2589ee1317a19eeada0598332defa

commit ea972feea2d2589ee1317a19eeada0598332defa
Author:     Brooks Davis <[email protected]>
AuthorDate: 2021-12-17 21:28:14 +0000
Commit:     Brooks Davis <[email protected]>
CommitDate: 2021-12-17 21:28:39 +0000

    usb: remove COMPAT_32BIT ifdefs
    
    Now that we have proper 32-bit compat support, remove COMPAT_32BIT
    ifdefs to allow 32-bit code to use the 64-bit layout of USB ioctl
    structs and struct usb_fs_endpoint.
    
    This includes the removal of redundant alignment directives that had
    no effect in practice.
    
    Reviewed by:    hselasky, jrtc27 (prior version)
---
 sys/dev/hid/hidraw.h    | 20 +++------------
 sys/dev/usb/usb_ioctl.h | 67 +++++++++++++------------------------------------
 2 files changed, 21 insertions(+), 66 deletions(-)

diff --git a/sys/dev/hid/hidraw.h b/sys/dev/hid/hidraw.h
index 4eaf8650a332..b1b037ab8c1b 100644
--- a/sys/dev/hid/hidraw.h
+++ b/sys/dev/hid/hidraw.h
@@ -35,23 +35,9 @@
 #define        HIDRAW_BUFFER_SIZE      64      /* number of input reports 
buffered */
 #define        HID_MAX_DESCRIPTOR_SIZE 4096    /* artificial limit taken from 
Linux */
 
-/*
- * Align IOCTL structures to hide differences when running 32-bit
- * programs under 64-bit kernels:
- */
-#ifdef COMPAT_32BIT
-#define        HIDRAW_IOCTL_STRUCT_ALIGN(n) __aligned(n)
-#else
-#define        HIDRAW_IOCTL_STRUCT_ALIGN(n)
-#endif
-
 /* Compatible with usb_gen_descriptor structure */
 struct hidraw_gen_descriptor {
-#ifdef COMPAT_32BIT
-       uint64_t hgd_data;
-#else
        void   *hgd_data;
-#endif
        uint16_t hgd_lang_id;
        uint16_t hgd_maxlen;
        uint16_t hgd_actlen;
@@ -63,18 +49,18 @@ struct hidraw_gen_descriptor {
        uint8_t hgd_endpt_index;
        uint8_t hgd_report_type;
        uint8_t reserved[8];
-} HIDRAW_IOCTL_STRUCT_ALIGN(8);
+};
 
 struct hidraw_report_descriptor {
        uint32_t        size;
        uint8_t         value[HID_MAX_DESCRIPTOR_SIZE];
-} HIDRAW_IOCTL_STRUCT_ALIGN(4);
+};
 
 struct hidraw_devinfo {
        uint32_t        bustype;
        int16_t         vendor;
        int16_t         product;
-} HIDRAW_IOCTL_STRUCT_ALIGN(4);
+};
 
 /* FreeBSD uhid(4)-compatible ioctl interface */
 #define        HIDRAW_GET_REPORT_DESC  _IOWR('U', 21, struct 
hidraw_gen_descriptor)
diff --git a/sys/dev/usb/usb_ioctl.h b/sys/dev/usb/usb_ioctl.h
index 5a139d0653c5..a57228a5fac2 100644
--- a/sys/dev/usb/usb_ioctl.h
+++ b/sys/dev/usb/usb_ioctl.h
@@ -46,16 +46,6 @@
 #define        USB_GENERIC_NAME "ugen"
 #define        USB_TEMPLATE_SYSCTL "hw.usb.template"   /* integer type */
 
-/*
- * Align IOCTL structures to hide differences when running 32-bit
- * programs under 64-bit kernels:
- */
-#ifdef COMPAT_32BIT
-#define        USB_IOCTL_STRUCT_ALIGN(n) __aligned(n)
-#else
-#define        USB_IOCTL_STRUCT_ALIGN(n)
-#endif
-
 /* Definition of valid template sysctl values */
 
 enum {
@@ -75,38 +65,26 @@ enum {
 };
 
 struct usb_read_dir {
-#ifdef COMPAT_32BIT
-       uint64_t urd_data;
-#else
        void   *urd_data;
-#endif
        uint32_t urd_startentry;
        uint32_t urd_maxlen;
-} USB_IOCTL_STRUCT_ALIGN(8);
+};
 
 struct usb_ctl_request {
-#ifdef COMPAT_32BIT
-       uint64_t ucr_data;
-#else
        void   *ucr_data;
-#endif
        uint16_t ucr_flags;
        uint16_t ucr_actlen;            /* actual length transferred */
        uint8_t ucr_addr;               /* zero - currently not used */
        struct usb_device_request ucr_request;
-} USB_IOCTL_STRUCT_ALIGN(8);
+};
 
 struct usb_alt_interface {
        uint8_t uai_interface_index;
        uint8_t uai_alt_index;
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_gen_descriptor {
-#ifdef COMPAT_32BIT
-       uint64_t ugd_data;
-#else
        void   *ugd_data;
-#endif
        uint16_t ugd_lang_id;
        uint16_t ugd_maxlen;
        uint16_t ugd_actlen;
@@ -118,7 +96,7 @@ struct usb_gen_descriptor {
        uint8_t ugd_endpt_index;
        uint8_t ugd_report_type;
        uint8_t reserved[8];
-} USB_IOCTL_STRUCT_ALIGN(8);
+};
 
 struct usb_device_info {
        uint16_t udi_productNo;
@@ -147,7 +125,7 @@ struct usb_device_info {
        char    udi_vendor[128];
        char    udi_serial[64];
        char    udi_release[8];
-} USB_IOCTL_STRUCT_ALIGN(2);
+};
 
 #define        USB_DEVICE_PORT_PATH_MAX 32
 
@@ -156,24 +134,24 @@ struct usb_device_port_path {
        uint8_t udp_index;              /* which device index */
        uint8_t udp_port_level;         /* how many levels: 0, 1, 2 ... */
        uint8_t udp_port_no[USB_DEVICE_PORT_PATH_MAX];
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_device_stats {
        uint32_t uds_requests_ok[4];    /* Indexed by transfer type UE_XXX */
        uint32_t uds_requests_fail[4];  /* Indexed by transfer type UE_XXX */
-} USB_IOCTL_STRUCT_ALIGN(4);
+};
 
 struct usb_fs_start {
        uint8_t ep_index;
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_fs_stop {
        uint8_t ep_index;
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_fs_complete {
        uint8_t ep_index;
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 /* This structure is used for all endpoint types */
 struct usb_fs_endpoint {
@@ -181,14 +159,9 @@ struct usb_fs_endpoint {
         * NOTE: isochronous USB transfer only use one buffer, but can have
         * multiple frame lengths !
         */
-#ifdef COMPAT_32BIT
-       uint64_t ppBuffer;
-       uint64_t pLength;
-#else
        void  **ppBuffer;               /* pointer to userland buffers */
        uint32_t *pLength;              /* pointer to frame lengths, updated
                                         * to actual length */
-#endif
        uint32_t nFrames;               /* number of frames */
        uint32_t aFrames;               /* actual number of frames */
        uint16_t flags;
@@ -206,22 +179,18 @@ struct usb_fs_endpoint {
        /* timeout value for no timeout */
 #define        USB_FS_TIMEOUT_NONE 0
        int     status;                 /* see USB_ERR_XXX */
-} USB_IOCTL_STRUCT_ALIGN(8);
+};
 
 struct usb_fs_init {
        /* userland pointer to endpoints structure */
-#ifdef COMPAT_32BIT
-       uint64_t pEndpoints;
-#else
        struct usb_fs_endpoint *pEndpoints;
-#endif
        /* maximum number of endpoints */
        uint8_t ep_index_max;
-} USB_IOCTL_STRUCT_ALIGN(8);
+};
 
 struct usb_fs_uninit {
        uint8_t dummy;                  /* zero */
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_fs_open {
 #define        USB_FS_MAX_BUFSIZE (1 << 25)    /* 32 MBytes */
@@ -233,20 +202,20 @@ struct usb_fs_open {
        uint8_t dev_index;              /* currently unused */
        uint8_t ep_index;
        uint8_t ep_no;                  /* bEndpointNumber */
-} USB_IOCTL_STRUCT_ALIGN(4);
+};
 
 struct usb_fs_open_stream {
        struct usb_fs_open fs_open;
        uint16_t stream_id;             /* stream ID */
-} USB_IOCTL_STRUCT_ALIGN(4);
+};
 
 struct usb_fs_close {
        uint8_t ep_index;
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_fs_clear_stall_sync {
        uint8_t ep_index;
-} USB_IOCTL_STRUCT_ALIGN(1);
+};
 
 struct usb_gen_quirk {
        uint16_t index;                 /* Quirk Index */
@@ -260,7 +229,7 @@ struct usb_gen_quirk {
         * UQ_XXX in "usb_quirk.h".
         */
        char    quirkname[64 - 14];
-} USB_IOCTL_STRUCT_ALIGN(2);
+};
 
 /* USB controller */
 #define        USB_REQUEST             _IOWR('U', 1, struct usb_ctl_request)

Reply via email to