CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
orangepi-xunlong

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: orangepi-xunlong/orangepi-build
Path: blob/next/external/cache/sources/wl/include/bcmusb.h
Views: 3959
1
/*
2
* Broadcom USB/HSIC framing
3
* Software-specific framing definitions shared between host and device
4
*
5
* $Copyright Open 2012 Broadcom Corporation$
6
*
7
* $Id: bcmusb.h 281591 2012-09-02 18:43:02Z sgsiener $
8
*/
9
10
#ifndef _bcmusb_h_
11
#define _bcmusb_h_
12
13
/*
14
* Software-defined USB frame header
15
*/
16
17
#ifdef USB_FRAME_HEADER
18
#define USBF_HEADER_LEN 16
19
#else
20
#define USBF_HEADER_LEN 0
21
#endif
22
23
#ifdef USBF_CKSUM_OVER_FRAME
24
#define USBF_DEF_CKSUM_LEN 0
25
#else
26
#define USBF_DEF_CKSUM_LEN USBF_HEADER_LEN
27
#endif
28
29
/* Current protocol version */
30
#define USBF_PROT_VERSION 1
31
32
/* ----- first 32-bit word ----- */
33
34
/* 4-bit version field */
35
#define USBF_VER_MASK 0x0000000f
36
37
/* 8-bit flags field */
38
#define USBF_FLAGS_MASK 0x00000ff0
39
#define USBF_FLAGS_SHIFT 4
40
41
/* flags field definitions */
42
#define USBF_FLAGS_TIMESTAMPED 0x01 /* frame header includes timestamp */
43
#define USBF_FLAGS_FRAME_EVENT 0x02 /* set when frame contains an Event indication */
44
#define USBF_FLAGS_FRAME_CKSUM 0x04 /* set when cksum is over entire frame */
45
46
/* 3-bit channel identifier field */
47
#define USBF_CHAN_MASK 0x00007000
48
#define USBF_CHAN_SHIFT 12
49
50
#define USBF_CHAN_CONTROL 0
51
#define USBF_CHAN_INTERRUPT 1
52
#define USBF_CHAN_DATAEVENT 2
53
54
/* used by host & device to disambiguate frames with this header from ones without */
55
#define USBF_TAG 0x00008000 /* bit won't appear in bdc/ioctl header */
56
57
/* 16-bit checksum */
58
#define USBF_CHECKSUM_MASK 0xffff0000 /* checksum mask */
59
#define USBF_CHECKSUM_SHIFT 16
60
61
/* ----- second 32-bit word ----- */
62
63
/* 16-bit length */
64
#define USBF_LENGTH_MASK 0x0000ffff /* length mask */
65
66
/* 16-bit sequence number */
67
#define USBF_SEQNUM_MASK 0xffff0000 /* sequence number mask */
68
#define USBF_SEQSUM_SHIFT 16
69
70
/* ----- third 32-bit word ----- */
71
72
/* 32-bit timestamp */
73
#define USBF_TIMESTAMP_MASK 0xffffffff /* timestamp value mask */
74
75
/* ----- fourth 32-bit word ----- */
76
77
/* reserve 32 bits for future use */
78
#define USBF_RESERVED_MASK 0xffffffff /* reserved for future use mask */
79
80
#endif /* _bcmusb_h_ */
81
82