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;
|
||||
}
|
||||
|
||||
struct usb_extreme_headers{
|
||||
const(void)* first_header;
|
||||
const(usb_extreme_base)* headers;
|
||||
int num_headers;
|
||||
size_t headerslen;
|
||||
UsbExtremeVersion oueVersion;
|
||||
}
|
||||
|
||||
enum UsbExtremeVersion {
|
||||
V0 = 0x00,
|
||||
V1
|
||||
|
@ -122,3 +130,26 @@ extern(C) int oue_version(UsbExtremeVersion* oueVersion, const(void) *headers, s
|
|||
*oueVersion = first_version;
|
||||
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 <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 offset = filestats_nlen;
|
||||
usb_extreme_v1 *headers_full = (usb_extreme_v1*) headers.headers;
|
||||
|
|
Loading…
Reference in New Issue