123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- #ifndef NWK_BUFS_H
- #define NWK_BUFS_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "ZComDef.h"
- #include "ZMAC.h"
- #define NWK_DATABUF_INIT 0
- #define NWK_DATABUF_WAITING 1
- #define NWK_DATABUF_SENT 2
- #define NWK_DATABUF_CONFIRMED 3
- #define NWK_DATABUF_SCHEDULED 4
- #define NWK_DATABUF_HOLD 5
- #define NWK_DATABUF_DONE 6
- #define HANDLE_NONE 0x0000u
- #define HANDLE_CNF 0x0001u
- #define HANDLE_WAIT_FOR_ACK 0x0002u
- #define HANDLE_BROADCAST 0x0004u
- #define HANDLE_REFLECT 0x0008u
- #define HANDLE_DELAY 0x0010u
- #define HANDLE_HI_DELAY 0x0020u
- #define HANDLE_SKIP_ROUTING 0x0040u
- #define HANDLE_RTRY_MASK 0x0380u
- #define HANDLE_RTRY_SHIFT 7
- #define HANDLE_FORCE_INDIRECT 0x0400u
- #define HANDLE_INDIRECT_HOLD 0x0800u
- #define HANDLE_MCAST 0x1000u
- #define HANDLE_MASK \
- ~( HANDLE_CNF | HANDLE_WAIT_FOR_ACK | HANDLE_BROADCAST | HANDLE_DELAY | \
- HANDLE_HI_DELAY | HANDLE_FORCE_INDIRECT | HANDLE_MCAST)
- typedef struct
- {
- uint8 type;
- void* load;
- } nwkDB_UserData_t;
- typedef struct
- {
- ZMacDataReq_t *pDataReq;
- void *next;
- uint16 dataX;
- uint16 handleOptions;
- byte nsduHandle;
- byte state;
- byte retries;
- nwkDB_UserData_t ud;
- uint16 macSrcAddr;
- } nwkDB_t;
- typedef uint8 (*nwkDB_FindMatchCB_t)( nwkDB_t* db, void* mf );
- extern void nwkbufs_init( void );
- extern void nwk_SendNextDataBuf( void );
- extern byte nwk_MacDataBuffersFull( void );
- extern uint8 nwk_MacDataBuffersAdd( nwkDB_t* db, uint8 sent );
- extern uint8 nwk_MacDataBuffersDealloc( byte handle );
- extern nwkDB_t *nwkDB_CreateHdr( ZMacDataReq_t *pkt, byte handle, uint16 handleOptions );
- extern ZStatus_t nwkDB_Add( nwkDB_t *pkt, byte type, uint16 dataX );
- extern byte nwkDB_CountTypes( byte type );
- extern nwkDB_t *nwkDB_FindNextType( nwkDB_t *pkt, byte type, byte direct );
- extern nwkDB_t *nwkDB_FindHandle( byte handle );
- extern nwkDB_t *nwkDB_FindDstAddr( uint16 addr );
- extern nwkDB_t *nwkDB_FindDataPkt( ZMacDataReq_t *pkt );
- extern nwkDB_t* nwkDB_FindMatch( nwkDB_FindMatchCB_t cb, void* mf );
- extern void nwkDB_RemoveFromList( nwkDB_t *pkt );
- extern void nwkDB_DeleteRecAll( nwkDB_t *rec );
- extern void nwkbufs_hold( nwkDB_t *rec );
- extern uint8 nwkDB_ReturnIndirectHoldingCnt( void );
- extern uint8 nwkDB_CountIndirectHold( void );
- extern void nwkbufs_reset( void );
- extern void* nwkDB_UserDataLoad( nwkDB_UserData_t* ud );
- extern uint8 nwk_broadcastSend( uint8 *msg_ptr );
- extern uint8 *nwk_broadcastReceive( void );
- #ifdef __cplusplus
- }
- #endif
- #endif
|