diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-09-08 21:46:36 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-09-09 04:15:06 (GMT) |
commit | f8942e07a3db9d82e8fb11d3d494876b8bae9ff9 (patch) | |
tree | 2406636a4f9a4ac6b0bfc90e07aefa8b1b18b8ff /drivers/staging/bcm/PHSDefines.h | |
parent | 2d2f03b022186e6d7520a758abdea9c04a2969fe (diff) | |
download | linux-fsl-qoriq-f8942e07a3db9d82e8fb11d3d494876b8bae9ff9.tar.xz |
staging: Beeceem USB Wimax driver
The Sprint 4G network uses a Wimax dongle with Beecem
chipset. The driver is typical of out of tree drivers, but
maybe useful for people, and the hardware is readily available.
Here is a staging ready version (i.e warts and all)
0. Started with Rel_5.2.7.3P1_USB from Sprint4GDeveloperPack-1.1
1. Consolidated files in staging
2. Remove Dos cr/lf
3. Remove unnecessary ioctl from usbbcm_fops
Applied patches that were in the developer pack, surprising
there were ones for 2.6.35 already.
This is compile tested only, see TODO for what still needs
to be done.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/bcm/PHSDefines.h')
-rw-r--r-- | drivers/staging/bcm/PHSDefines.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/drivers/staging/bcm/PHSDefines.h b/drivers/staging/bcm/PHSDefines.h new file mode 100644 index 0000000..9889a99 --- /dev/null +++ b/drivers/staging/bcm/PHSDefines.h @@ -0,0 +1,125 @@ +#ifndef BCM_PHS_DEFINES_H +#define BCM_PHS_DEFINES_H + +#define PHS_INVALID_TABLE_INDEX 0xffffffff + +/************************* MACROS **********************************************/ +#define PHS_MEM_TAG '_SHP' + + + +//PHS Defines +#define STATUS_PHS_COMPRESSED 0xa1 +#define STATUS_PHS_NOCOMPRESSION 0xa2 +#define APPLY_PHS 1 +#define MAX_NO_BIT 7 +#define ZERO_PHSI 0 +#define VERIFY 0 +#define SIZE_MULTIPLE_32 4 +#define UNCOMPRESSED_PACKET 0 +#define DYNAMIC 0 +#define SUPPRESS 0x80 +#define NO_CLASSIFIER_MATCH 0 +#define SEND_PACKET_UNCOMPRESSED 0 +#define PHSI_IS_ZERO 0 +#define PHSI_LEN 1 +#define ERROR_LEN 0 +#define PHS_BUFFER_SIZE 1532 + + +//#define MAX_PHS_LENGTHS 100 +#define MAX_PHSRULE_PER_SF 20 +#define MAX_SERVICEFLOWS 17 + +//PHS Error Defines +#define PHS_SUCCESS 0 +#define ERR_PHS_INVALID_DEVICE_EXETENSION 0x800 +#define ERR_PHS_INVALID_PHS_RULE 0x801 +#define ERR_PHS_RULE_ALREADY_EXISTS 0x802 +#define ERR_SF_MATCH_FAIL 0x803 +#define ERR_INVALID_CLASSIFIERTABLE_FOR_SF 0x804 +#define ERR_SFTABLE_FULL 0x805 +#define ERR_CLSASSIFIER_TABLE_FULL 0x806 +#define ERR_PHSRULE_MEMALLOC_FAIL 0x807 +#define ERR_CLSID_MATCH_FAIL 0x808 +#define ERR_PHSRULE_MATCH_FAIL 0x809 + +typedef struct _S_PHS_RULE +{ + /// brief 8bit PHSI Of The Service Flow + B_UINT8 u8PHSI; + /// brief PHSF Of The Service Flow + B_UINT8 u8PHSFLength; + B_UINT8 u8PHSF[MAX_PHS_LENGTHS]; + /// brief PHSM Of The Service Flow + B_UINT8 u8PHSMLength; + B_UINT8 u8PHSM[MAX_PHS_LENGTHS]; + /// brief 8bit PHSS Of The Service Flow + B_UINT8 u8PHSS; + /// brief 8bit PHSV Of The Service Flow + B_UINT8 u8PHSV; + //Reference Count for this PHS Rule + B_UINT8 u8RefCnt; + //Flag to Store Unclassified PHS rules only in DL + B_UINT8 bUnclassifiedPHSRule; + + B_UINT8 u8Reserved[3]; + + LONG PHSModifiedBytes; + ULONG PHSModifiedNumPackets; + ULONG PHSErrorNumPackets; +}S_PHS_RULE; + + +typedef enum _E_CLASSIFIER_ENTRY_CONTEXT +{ + eActiveClassifierRuleContext, + eOldClassifierRuleContext +}E_CLASSIFIER_ENTRY_CONTEXT; + +typedef struct _S_CLASSIFIER_ENTRY +{ + B_UINT8 bUsed; + B_UINT16 uiClassifierRuleId; + B_UINT8 u8PHSI; + S_PHS_RULE *pstPhsRule; + B_UINT8 bUnclassifiedPHSRule; + +}S_CLASSIFIER_ENTRY; + + +typedef struct _S_CLASSIFIER_TABLE +{ + B_UINT16 uiTotalClassifiers; + S_CLASSIFIER_ENTRY stActivePhsRulesList[MAX_PHSRULE_PER_SF]; + S_CLASSIFIER_ENTRY stOldPhsRulesList[MAX_PHSRULE_PER_SF]; + B_UINT16 uiOldestPhsRuleIndex; + +}S_CLASSIFIER_TABLE; + + +typedef struct _S_SERVICEFLOW_ENTRY +{ + B_UINT8 bUsed; + B_UINT16 uiVcid; + S_CLASSIFIER_TABLE *pstClassifierTable; +}S_SERVICEFLOW_ENTRY; + +typedef struct _S_SERVICEFLOW_TABLE +{ + B_UINT16 uiTotalServiceFlows; + S_SERVICEFLOW_ENTRY stSFList[MAX_SERVICEFLOWS]; + +}S_SERVICEFLOW_TABLE; + + +typedef struct _PHS_DEVICE_EXTENSION +{ + /* PHS Specific data*/ + S_SERVICEFLOW_TABLE *pstServiceFlowPhsRulesTable; + void *CompressedTxBuffer; + void *UnCompressedRxBuffer; +}PHS_DEVICE_EXTENSION,*PPHS_DEVICE_EXTENSION; + + +#endif |