diff options
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/uvideo.h | 77 |
1 files changed, 38 insertions, 39 deletions
diff --git a/sys/dev/usb/uvideo.h b/sys/dev/usb/uvideo.h index cbef8613f55..ef9a133aecd 100644 --- a/sys/dev/usb/uvideo.h +++ b/sys/dev/usb/uvideo.h @@ -1,4 +1,4 @@ -/* $OpenBSD: uvideo.h,v 1.30 2008/08/26 21:52:48 mglocker Exp $ */ +/* $OpenBSD: uvideo.h,v 1.31 2008/08/27 17:31:48 mglocker Exp $ */ /* * Copyright (c) 2007 Robert Nagy <robert@openbsd.org> @@ -162,7 +162,7 @@ struct usb_video_header_desc { uWord wTotalLength; uDWord dwClockFrequency; uByte bInCollection; -}; +} __packed; struct usb_video_header_desc_all { struct usb_video_header_desc *fix; @@ -178,7 +178,7 @@ struct usb_video_input_terminal_desc { uWord wTerminalType; uByte bAssocTerminal; uByte iTerminal; -}; +} __packed; /* Table 3-5: Output Terminal Descriptor */ struct usb_video_output_terminal_desc { @@ -190,7 +190,7 @@ struct usb_video_output_terminal_desc { uByte bAssocTerminal; uByte bSourceID; uByte iTerminal; -}; +} __packed; /* Table 3-6: Camera Terminal Descriptor */ struct usb_video_camera_terminal_desc { @@ -206,7 +206,7 @@ struct usb_video_camera_terminal_desc { uWord wOcularFocalLength; uByte bControlSize; uByte *bmControls; -}; +} __packed; /* Table 3-8: VC Processing Unit Descriptor */ struct usb_video_vc_processing_desc { @@ -239,7 +239,7 @@ struct usb_video_vc_endpoint_desc { uByte bDescriptorType; uByte bDescriptorSubtype; uWord wMaxTransferSize; -}; +} __packed; /* Table 3-13: Interface Input Header Descriptor */ struct usb_video_input_header_desc { @@ -255,7 +255,7 @@ struct usb_video_input_header_desc { uByte bTriggerSupport; uByte bTriggerUsage; uByte bControlSize; -}; +} __packed; struct usb_video_input_header_desc_all { struct usb_video_input_header_desc *fix; @@ -388,8 +388,37 @@ struct usb_video_frame_uncompressed_desc { /* * Driver specific private definitions. */ -#define UVIDEO_NFRAMES_MAX 40 +struct uvideo_format_desc { + uByte bLength; + uByte bDescriptorType; + uByte bDescriptorSubtype; + uByte bFormatIndex; + uByte bNumFrameDescriptors; + union { + /* mjpeg */ + struct { + uByte bmFlags; + uByte bDefaultFrameIndex; + uByte bAspectRatioX; + uByte bAspectRatioY; + uByte bmInterlaceFlags; + uByte bCopyProtect; + } mjpeg; + /* uncompressed */ + struct { + uByte guidFormat[16]; + uByte bBitsPerPixel; + uByte bDefaultFrameIndex; + uByte bAspectRatioX; + uByte bAspectRatioY; + uByte bmInterlaceFlags; + uByte bCopyProtect; + } uc; + } u; +} __packed; + +#define UVIDEO_NFRAMES_MAX 40 struct uvideo_vs_iface { struct uvideo_softc *sc; usbd_xfer_handle xfer; @@ -420,36 +449,6 @@ struct uvideo_mmap { }; typedef SIMPLEQ_HEAD(, uvideo_mmap) q_mmap; -struct uvideo_format_desc { - uByte bLength; - uByte bDescriptorType; - uByte bDescriptorSubtype; - uByte bFormatIndex; - uByte bNumFrameDescriptors; - union { - /* mjpeg */ - struct { - uByte bmFlags; - uByte bDefaultFrameIndex; - uByte bAspectRatioX; - uByte bAspectRatioY; - uByte bmInterlaceFlags; - uByte bCopyProtect; - } mjpeg; - - /* uncompressed */ - struct { - uByte guidFormat[16]; - uByte bBitsPerPixel; - uByte bDefaultFrameIndex; - uByte bAspectRatioX; - uByte bAspectRatioY; - uByte bmInterlaceFlags; - uByte bCopyProtect; - } uc; - } u; -} __packed; - struct uvideo_format_group { uint32_t pixelformat; uint8_t format_dfidx; @@ -465,7 +464,7 @@ struct uvideo_res { int width; int height; int fidx; -} __packed; +}; struct uvideo_controls { int cid; |