toD: oue_read_headers
This commit is contained in:
parent
5779d3e530
commit
cee71e8c8d
|
@ -38,6 +38,14 @@ align(1) struct usb_extreme_v1 {
|
||||||
char[USBEXTREME_NAME_EXT_LENGTH] name_ext;
|
char[USBEXTREME_NAME_EXT_LENGTH] name_ext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct usb_extreme_headers{
|
||||||
|
const(void)* first_header;
|
||||||
|
const(usb_extreme_base)* headers;
|
||||||
|
int num_headers;
|
||||||
|
size_t headerslen;
|
||||||
|
UsbExtremeVersion oueVersion;
|
||||||
|
}
|
||||||
|
|
||||||
enum UsbExtremeVersion {
|
enum UsbExtremeVersion {
|
||||||
V0 = 0x00,
|
V0 = 0x00,
|
||||||
V1
|
V1
|
||||||
|
@ -122,3 +130,26 @@ extern(C) int oue_version(UsbExtremeVersion* oueVersion, const(void) *headers, s
|
||||||
*oueVersion = first_version;
|
*oueVersion = first_version;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern(C) int oue_read_headers(usb_extreme_headers* headers, const(void)* raw_headers, size_t headerslen) {
|
||||||
|
const(usb_extreme_base)* headers_ptr;
|
||||||
|
UsbExtremeVersion oueVersion;
|
||||||
|
auto num_headers = cast(int) (headerslen / USBEXTREME_HEADER_SIZE);
|
||||||
|
usb_extreme_headers headers_temp = {null, null, 0, 0, UsbExtremeVersion.V0};
|
||||||
|
|
||||||
|
if (oue_point_headers(&headers_ptr, raw_headers, headerslen) <= 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oue_version(&oueVersion, raw_headers, headerslen) <= 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
headers_temp.first_header = raw_headers;
|
||||||
|
headers_temp.headers = headers_ptr;
|
||||||
|
headers_temp.num_headers = num_headers;
|
||||||
|
headers_temp.headerslen = headerslen;
|
||||||
|
headers_temp.oueVersion = oueVersion;
|
||||||
|
*headers = headers_temp;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
|
@ -1,29 +1,6 @@
|
||||||
#include <usbextreme.h>
|
#include <usbextreme.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int oue_read_headers(usb_extreme_headers *headers, void *raw_headers, const size_t headerslen) {
|
|
||||||
usb_extreme_base *headers_ptr;
|
|
||||||
usb_extreme_versions version;
|
|
||||||
int num_headers = (int) (headerslen / USBEXTREME_HEADER_SIZE);
|
|
||||||
usb_extreme_headers headers_temp = {NULL, NULL, 0, 0, 0};
|
|
||||||
|
|
||||||
if(oue_point_headers(&headers_ptr, raw_headers, headerslen) <= 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(oue_version(&version, raw_headers, headerslen) <= 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
headers_temp.first_header = raw_headers;
|
|
||||||
headers_temp.headers = headers_ptr;
|
|
||||||
headers_temp.num_headers = num_headers;
|
|
||||||
headers_temp.headerslen = headerslen;
|
|
||||||
headers_temp.version = version;
|
|
||||||
*headers = headers_temp;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int oue_read(usb_extreme_filestat *filestat, const usb_extreme_headers headers, const int filestats_nlen) {
|
int oue_read(usb_extreme_filestat *filestat, const usb_extreme_headers headers, const int filestats_nlen) {
|
||||||
int offset = filestats_nlen;
|
int offset = filestats_nlen;
|
||||||
usb_extreme_v1 *headers_full = (usb_extreme_v1*) headers.headers;
|
usb_extreme_v1 *headers_full = (usb_extreme_v1*) headers.headers;
|
||||||
|
|
Loading…
Reference in New Issue