PM / sleep: Asynchronous threads for suspend_noirq
[linux/fpc-iii.git] / drivers / staging / bcm / PHSDefines.h
blobcd78ee4ffa220bd9c54adb80e8fef38e8d434a61
1 #ifndef BCM_PHS_DEFINES_H
2 #define BCM_PHS_DEFINES_H
4 #define PHS_INVALID_TABLE_INDEX 0xffffffff
5 #define PHS_MEM_TAG "_SHP"
7 /* PHS Defines */
8 #define STATUS_PHS_COMPRESSED 0xa1
9 #define STATUS_PHS_NOCOMPRESSION 0xa2
10 #define APPLY_PHS 1
11 #define MAX_NO_BIT 7
12 #define ZERO_PHSI 0
13 #define VERIFY 0
14 #define SIZE_MULTIPLE_32 4
15 #define UNCOMPRESSED_PACKET 0
16 #define DYNAMIC 0
17 #define SUPPRESS 0x80
18 #define NO_CLASSIFIER_MATCH 0
19 #define SEND_PACKET_UNCOMPRESSED 0
20 #define PHSI_IS_ZERO 0
21 #define PHSI_LEN 1
22 #define ERROR_LEN 0
23 #define PHS_BUFFER_SIZE 1532
24 #define MAX_PHSRULE_PER_SF 20
25 #define MAX_SERVICEFLOWS 17
27 /* PHS Error Defines */
28 #define PHS_SUCCESS 0
29 #define ERR_PHS_INVALID_DEVICE_EXETENSION 0x800
30 #define ERR_PHS_INVALID_PHS_RULE 0x801
31 #define ERR_PHS_RULE_ALREADY_EXISTS 0x802
32 #define ERR_SF_MATCH_FAIL 0x803
33 #define ERR_INVALID_CLASSIFIERTABLE_FOR_SF 0x804
34 #define ERR_SFTABLE_FULL 0x805
35 #define ERR_CLSASSIFIER_TABLE_FULL 0x806
36 #define ERR_PHSRULE_MEMALLOC_FAIL 0x807
37 #define ERR_CLSID_MATCH_FAIL 0x808
38 #define ERR_PHSRULE_MATCH_FAIL 0x809
40 struct bcm_phs_rule {
41 u8 u8PHSI;
42 u8 u8PHSFLength;
43 u8 u8PHSF[MAX_PHS_LENGTHS];
44 u8 u8PHSMLength;
45 u8 u8PHSM[MAX_PHS_LENGTHS];
46 u8 u8PHSS;
47 u8 u8PHSV;
48 u8 u8RefCnt;
49 u8 bUnclassifiedPHSRule;
50 u8 u8Reserved[3];
51 long PHSModifiedBytes;
52 unsigned long PHSModifiedNumPackets;
53 unsigned long PHSErrorNumPackets;
56 enum bcm_phs_classifier_context {
57 eActiveClassifierRuleContext,
58 eOldClassifierRuleContext
61 struct bcm_phs_classifier_entry {
62 u8 bUsed;
63 u16 uiClassifierRuleId;
64 u8 u8PHSI;
65 struct bcm_phs_rule *pstPhsRule;
66 u8 bUnclassifiedPHSRule;
69 struct bcm_phs_classifier_table {
70 u16 uiTotalClassifiers;
71 struct bcm_phs_classifier_entry stActivePhsRulesList[MAX_PHSRULE_PER_SF];
72 struct bcm_phs_classifier_entry stOldPhsRulesList[MAX_PHSRULE_PER_SF];
73 u16 uiOldestPhsRuleIndex;
76 struct bcm_phs_entry {
77 u8 bUsed;
78 u16 uiVcid;
79 struct bcm_phs_classifier_table *pstClassifierTable;
82 struct bcm_phs_table {
83 u16 uiTotalServiceFlows;
84 struct bcm_phs_entry stSFList[MAX_SERVICEFLOWS];
87 struct bcm_phs_extension {
88 /* PHS Specific data */
89 struct bcm_phs_table *pstServiceFlowPhsRulesTable;
90 void *CompressedTxBuffer;
91 void *UnCompressedRxBuffer;
94 #endif