blob: e37b716c3b0765e09b638e44dae44dc997fabfa1 [file] [log] [blame]
// Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#if !defined(SERVICE_FLOW_H_20100827) && defined(CONFIG_ENABLE_SERVICE_FLOW)
#define SERVICE_FLOW_H_20100827
#include "gcttype.h"
typedef struct wm_service_flow_s {
WIMAX_SERVICE_FLOW sf[WIMAX_MAX_SERVICE_FLOW];
pthread_mutex_t sfreadlock;
pthread_mutex_t sfwritelock;
pthread_mutex_t dsxlock;
pthread_cond_t dsx_cond;
WIMAX_SF_EVENT last_sf_event;
} wm_service_flow_t;
void sf_init(int dev_idx);
void sf_deinit(int dev_idx);
void BeginSFRead(int dev_idx);
void EndSFRead(int dev_idx);
WIMAX_SERVICE_FLOW *GetNextSF(int dev_idx,
WIMAX_SERVICE_FLOW *pSF,
UINT8 Direction);
WIMAX_SERVICE_FLOW *GetServiceFlow(int dev_idx,
UINT32 SFID);
WIMAX_CLFR_RULE *GetNextClfrRule(WIMAX_SERVICE_FLOW *pSF,
WIMAX_CLFR_RULE *pCLFRRule);
WIMAX_CLFR_RULE *GetClfrRule(WIMAX_SERVICE_FLOW *pSF,
UINT16 PacketClassfierRuleIndex);
WIMAX_PHS_RULE *GetNextPHSRule(WIMAX_SERVICE_FLOW *pSF,
WIMAX_PHS_RULE *pPHSRule);
WIMAX_PHS_RULE *GetPHSRule(WIMAX_SERVICE_FLOW *pSF,
UINT8 PHSI);
WIMAX_SF_CC CmdAddSF(int dev_idx,
WIMAX_SF_PARAM_P pSFParam,
WIMAX_CLFR_RULE_P pClfrRule,
WIMAX_PHS_RULE_P pPHSRule);
WIMAX_SF_CC CmdChangeSF(int dev_idx,
WIMAX_SF_PARAM_P pSFParam,
WIMAX_CLFR_DSC_ACTION CLFRDSCAction,
WIMAX_CLFR_RULE_P pClfrRule,
WIMAX_PHS_DSC_ACTION PHSDSCAction,
WIMAX_PHS_RULE_P pPHSRule);
WIMAX_SF_CC CmdDeleteSF(int dev_idx,
WIMAX_SF_PARAM_P pSFParam);
#endif