From 5779d3e53004b2f63b0546d392ad2e86ffb198a6 Mon Sep 17 00:00:00 2001 From: Ernesto Castellotti Date: Tue, 20 Aug 2019 16:29:20 +0200 Subject: [PATCH] Updated D interface file (header) --- include/dusbextreme.di | 50 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/include/dusbextreme.di b/include/dusbextreme.di index abf56ca..ff30271 100644 --- a/include/dusbextreme.di +++ b/include/dusbextreme.di @@ -6,10 +6,50 @@ enum USBEXTREME_ID_LENGTH = 15; enum USBEXTREME_NAME_EXT_LENGTH = 10; enum USBEXTREME_MAGIC = 8; enum USBEXTREME_HEADER_SIZE = usb_extreme_base.sizeof; -struct usb_extreme_base +align (1) struct usb_extreme_base { - uint8_t[6 + USBEXTREME_ID_LENGTH + USBEXTREME_NAME_LENGTH] empty; - uint8_t magic; - uint8_t[10] empty2; + align (1) + { + uint8_t[6 + USBEXTREME_ID_LENGTH + USBEXTREME_NAME_LENGTH] empty; + uint8_t magic; + uint8_t[10] empty2; + } } -extern (C) int is_oue(immutable(void)* headers, immutable(size_t) headerslen); +align (1) struct usb_extreme_v0 +{ + align (1) + { + char[USBEXTREME_NAME_LENGTH] name; + char[USBEXTREME_ID_LENGTH] id; + uint8_t n_parts; + uint8_t type; + uint8_t[4] empty; + uint8_t magic; + uint8_t[USBEXTREME_NAME_EXT_LENGTH] empty2; + } +} +align (1) struct usb_extreme_v1 +{ + align (1) + { + char[USBEXTREME_NAME_LENGTH] name; + char[USBEXTREME_ID_LENGTH] id; + uint8_t n_parts; + uint8_t type; + uint16_t size; + uint8_t video_mode; + uint8_t usb_extreme_version; + uint8_t magic; + char[USBEXTREME_NAME_EXT_LENGTH] name_ext; + } +} +enum UsbExtremeVersion +{ + V0 = 0, + V1, +} +extern (C) int is_oue(const(void)* headers, size_t headerslen); +extern (C) UsbExtremeVersion get_version(uint8_t usbExtremeVersion); +extern (C) int oue_num_headers(int* num_headers, const(void)* headers, size_t headerslen); +extern (C) int oue_point_headers(const(usb_extreme_base)** headers, const(void)* raw_headers, size_t headerslen); +extern (C) int oue_version(UsbExtremeVersion* oueVersion, const(void)* headers, size_t headerslen);