Commit | Line | Data |
---|---|---|
4bd43f50 LR |
1 | /* |
2 | * Copyright (c) 2007-2008 Atheros Communications Inc. | |
3 | * | |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
17 | #ifndef _PUB_ZFW_H | |
18 | #define _PUB_ZFW_H | |
19 | ||
20 | #include "../oal_dt.h" | |
21 | ||
22 | ||
23 | /* Buffer management */ | |
24 | #ifdef ZM_ENABLE_BUFFER_DEBUG | |
25 | extern zbuf_t* zfwBufAllocateWithContext(zdev_t* dev, u16_t len, u8_t *functionName, ULONG line); | |
d599edca | 26 | #define zfwBufAllocate(dev, len) zfwBufAllocateWithContext(dev, len, (u8_t *)__func__, __LINE__) |
4bd43f50 LR |
27 | #else |
28 | extern zbuf_t* zfwBufAllocate(zdev_t* dev, u16_t len); | |
29 | #endif | |
30 | extern void zfwBufFree(zdev_t* dev, zbuf_t* buf, u16_t errCode); | |
31 | extern u16_t zfwBufChain(zdev_t* dev, zbuf_t** head, zbuf_t* tail); | |
32 | extern u16_t zfwBufCopy(zdev_t* dev, zbuf_t* dst, zbuf_t* src); | |
33 | extern u16_t zfwBufSetSize(zdev_t* dev, zbuf_t* buf, u16_t size); | |
34 | extern u16_t zfwBufRemoveHead(zdev_t* dev, zbuf_t* buf, u16_t size); | |
35 | extern u16_t zfwBufGetSize(zdev_t* dev, zbuf_t* buf); | |
36 | extern void zfwCopyBufContext(zdev_t* dev, zbuf_t* source, zbuf_t* dest); | |
37 | ||
38 | /* Memory management */ | |
39 | extern void* zfwMemAllocate(zdev_t* dev, u32_t size); | |
40 | extern void zfwMemFree(zdev_t* dev, void* mem, u32_t size); | |
41 | extern void zfwMemoryCopy(u8_t* dst, u8_t* src, u16_t length); | |
42 | extern void zfwMemoryMove(u8_t* dst, u8_t* src, u16_t length); | |
43 | extern void zfwZeroMemory(u8_t* va, u16_t length); | |
44 | extern u8_t zfwMemoryIsEqual(u8_t* m1, u8_t* m2, u16_t length); | |
45 | ||
46 | /* Others */ | |
47 | extern void zfwSleep(zdev_t* dev, u32_t ms); | |
48 | extern u16_t zfwGetVapId(zdev_t* dev); | |
49 | extern u16_t zfwStaAddIeWpaRsn(zdev_t* dev, zbuf_t* buf, u16_t offset, u8_t frameType); | |
50 | extern u32_t zfwWaitForEvent(zdev_t *dev, u32_t event, u32_t timeout); | |
51 | extern void zfwSendEvent(zdev_t* dev); | |
52 | extern void zfwGetActiveScanDur(zdev_t* dev, u8_t* Dur ); | |
53 | extern void zfwGetShowZeroLengthSSID(zdev_t* dev, u8_t* Dur ); | |
54 | /* For debugging */ | |
55 | extern void zfwDumpBuf(zdev_t* dev, zbuf_t* buf); | |
56 | extern void zfwDbgReadRegDone(zdev_t* dev, u32_t addr, u32_t val); | |
57 | /* For Evl */ | |
58 | extern void zfwDbgDownloadFwInitDone(zdev_t* dev); | |
59 | extern void zfwDbgReadFlashDone(zdev_t* dev, u32_t addr, u32_t* rspdata, u32_t datalen); | |
60 | extern void zfwDbgGetFlashChkSumDone(zdev_t* dev, u32_t* rspdata); | |
61 | extern void zfwDbgProgrameFlashDone(zdev_t* dev); | |
62 | extern void zfwDbgProgrameFlashChkDone(zdev_t* dev); | |
63 | extern void zfwDbgWriteRegDone(zdev_t* dev, u32_t addr, u32_t val); | |
64 | extern void zfwDbgWriteEepromDone(zdev_t* dev, u32_t addr, u32_t val); | |
65 | extern void zfwDbgReadTallyDone(zdev_t* dev); | |
66 | extern void zfwWlanReadRegDone(zdev_t* dev, u32_t addr, u32_t val); | |
67 | extern void zfwWlanWriteRegDone(zdev_t* dev, u32_t addr, u32_t val); | |
68 | extern void zfwWlanReadTallyDone(zdev_t* dev); | |
69 | extern void zfwDbgQueryHwTxBusyDone(zdev_t* dev, u32_t val); | |
70 | extern u32_t zfwReadReg(zdev_t* dev, u32_t offset); | |
71 | extern u32_t zfwReadEeprom(zdev_t* dev, u32_t addr); | |
72 | ||
73 | /* Reserved for Vista, please return 0 */ | |
74 | extern u8_t zfwGetPktEncExemptionActionType(zdev_t* dev, zbuf_t* buf); | |
75 | ||
76 | #ifdef ZM_ENABLE_CENC | |
77 | /* Reserved for CENC, please return 0 */ | |
78 | extern u8_t zfwCencHandleBeaconProbrespon(zdev_t* dev, u8_t *pWIEc, | |
79 | u8_t *pPeerSSIDc, u8_t *pPeerAddrc); | |
80 | #endif //ZM_ENABLE_CENC | |
81 | ||
82 | #ifdef ZM_HALPLUS_LOCK | |
83 | extern asmlinkage struct zsWlanDev *zfwGetWlanDev(zdev_t* dev); | |
84 | extern asmlinkage void zfwEnterCriticalSection(zdev_t* dev); | |
85 | extern asmlinkage void zfwLeaveCriticalSection(zdev_t* dev); | |
86 | extern asmlinkage u8_t zfwBufReadByte(zdev_t* dev, zbuf_t* buf, u16_t offset); | |
87 | extern asmlinkage u16_t zfwBufReadHalfWord(zdev_t* dev, zbuf_t* buf, u16_t offset); | |
88 | extern asmlinkage void zfwBufWriteByte(zdev_t* dev, zbuf_t* buf, u16_t offset, u8_t value); | |
89 | extern asmlinkage void zfwBufWriteHalfWord(zdev_t* dev, zbuf_t* buf, u16_t offset, u16_t value); | |
90 | extern asmlinkage u8_t *zfwGetBuffer(zdev_t* dev, zbuf_t* buf); | |
91 | #endif | |
92 | ||
93 | #endif //_PUB_ZFW_H |