summaryrefslogtreecommitdiff
path: root/libs/revolution/src/usb/__usb.h
blob: add2d6e3f1a7c96c906165c9cb6469ba7e999aa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef _REVOLUTION_USB_PRIVATE_H_
#define _REVOLUTION_USB_PRIVATE_H_

#include <revolution/usb.h>

#ifdef __cplusplus
extern "C" {
#endif

#define ROUNDUP(sz) (((u32)(sz) + 32 - 1) & ~(u32)(32 - 1))

typedef struct {
    char *data;
    u16 wLength;
} IntBlkCtrlReq;

typedef struct iusb_Ctxt {
    USBCallbackFunc  cb;
#if SDK_AUG2010
    USBIsoCallbackFunc icb;
#endif
    void *cbArg;
#if SDK_AUG2010
    void *xfer;
#endif
    void *spare;
    void *clean[8];
    u32 nclean;

    union {
        char path[ROUNDUP(64)];
        char des[ROUNDUP(sizeof(USB_DevDescr))];
        char reqBuf[ROUNDUP(sizeof(IntBlkCtrlReq))];
    } u __attribute__ ((aligned(32)));

} iusb_ctxt;

#ifdef __cplusplus
}
#endif

#endif /* _REVOLUTION_USB_PRIVATE_H_ */