Files

256 lines
8.5 KiB
C

#ifndef _CMUX_DEF_H_
#define _CMUX_DEF_H_
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
cmux_def.h
GENERAL DESCRIPTION
This file is for cmux.
EXTERNALIZED FUNCTIONS
INITIALIZATION AND SEQUENCING REQUIREMENTS
Copyright (c) 2018 by ASR, Incorporated. All Rights Reserved.
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
*===========================================================================
EDIT HISTORY FOR MODULE
This section contains comments describing changes made to the module.
Notice that changes are listed in reverse chronological order.
when who what, where, why
-------- ------ ----------------------------------------------------------
08/31/2018 zhoujin Created module
===========================================================================*/
/*===========================================================================
INCLUDE FILES FOR MODULE
===========================================================================*/
#include "utilities.h"
/*===========================================================================
LOCAL MACRO
===========================================================================*/
/*the service identifier definition*/
#define Channel_Control (0)
#define DLCAT_1 (1)
#define DLCAT_2 (2)
#define DLCAT_3 (3)
#define DLCAT_4 (4)
#define DLCAT_5 (5)
#define DLCAT_IND (6)
#define DLCAT_7 (7)
#define DLCAT_8 (8)
#define DLCATDATA_1 (9)
#define DLCATDATA_2 (10)
#define DLCATDATA_3 (11)
#define DLCATDATA_4 (12)
#define DLCATDATA_5 (13)
#define DLCATDATA_6 (14)
#define DLCATDATA_7 (15)
#define DLCATDATA_8 (16)
#define DLCATDATA_9 (17)
#define DLCATDATA_10 (18)
#define DLCATDATA_11 (19)
#define DLCATDATA_12 (20)
#define RELIABL_DATA (21)
#define Audio_Data (33) /*Marvell Audio control and data*/
#define NVM_Access (34) /*NVM access control*/
#define DIAG_DATA (36)
#define TEST_DATA (37)
#define VTCSD_DATA (38)
#define RESERVED (0xffff)
/*DLC channel feature*/
#define DLC_CONTROL_CHANNEL (0)
#define DLC_AT_CHANNEL (1)
#define DLC_AT_DATA_CHANNEL (2)
#define RAW_DATA_CHANNEL (3)
#define customer_count (2)
#define default_mtu (1509)
#define max_retransmit_num (3)
#define datachannelmtu (2048)
#define AT_MODE 0 /*0:at mode;1:data mode*/
#define DATA_MODE 1 /*0:at mode;1:data mode*/
#define OTHER_MODE 3
/*service identifier define end*/
#define MUXDATAALIGN (4)
/*state machine*/
#define CONNECTING (0)
#define CONNECTED (1)
#define FLOW_STOPPED (2)
#define DISCONNECTING (3)
#define DISCONNECTED (4)
#define DLCOpenMaxWaitTime (OSA_SUSPEND) /*tick, or OSA_NO_SUSPEND,OSA_SUSPEND*/
#define DLCOpenRetrytime (3)
#define MUX_TX_ID 0x44495854
#define MUX_DISC_ID 0x43534944
#define frameheadlen (5)
#define frametaillen (2)
#define minbufsize 16
#define MUX_HAL_MTU (2048)
#define MUX_HAL_FLOW_OFF_THRESHOLD (1024)
#define MUX_HAL_FLOW_ON_THRESHOLD (2048)
#define HALTXDONE (0x01)
#define HISR_PRIORITY HISR_PRIORITY_2
#define SHORT_CRC_CHECK 3
#define LONG_CRC_CHECK 4
#define SHORT_PAYLOAD_SIZE 127
#define EA 1
#define FCS_SIZE 1
#define FLAG_SIZE 2
#define TS0710_MAX_HDR_SIZE 5
#define DEF_TS0710_MTU 256
#define TS0710_BASIC_FLAG 0xF9
/* the control field */
#define SABM 0x2f
#define SABM_SIZE 4
#define UA 0x63
#define UA_SIZE 4
#define DM 0x0f
#define DISC 0x43
#define UIH 0xef
/* the type field in a multiplexer command packet */
#define TEST 0x8
#define FCON 0x28
#define FCOFF 0x18
#define MSC 0x38
#define RPN 0x24
#define RLS 0x14
#define PN 0x20
#define CLD 0x30
#define NSC 0x4
/* V.24 modem control signals */
#define FC 0x2
#define RTC 0x4
#define RTR 0x8
#define IC 0x40
#define DV 0x80
/* The control channel is defined as DLCI 0 */
#define CTRL_CHAN 0
/* Multiplexer command cr */
#define MCC_CMD 1
/* Multiplexer response cr */
#define MCC_RSP 0
#define MCC_READY_REC 0x0d
/*Error kind define end*/
#define parametererr (1)
#define timeoutererr (2)
#define dlcclosederr (3)
#define muxclosederr (4)
#define DlcTxQueueOverflow (5)
#define DlcTxFlowControlOn (6)
#define MuxTxFlowControlOn (7)
#define Nomemory (8)
#define MUX_EA 1
#define MUX_BASIC_FLAG_SEQ 0xf9
#define MUX_ADVANCED_FLAG_SEQ 0x7e
#define MUX_CONTROL_ESCAPE 0x7d
#define NOMUXFRAME (0xdd)
#define MUX_SABM (0x2f)
#define MUX_UA (0x63)
#define MUX_DM (0x0f)
#define MUX_DISC (0x43)
#define MUX_UIH (0xef)
#define MUX_UI (0x03)
#define MUX_PN (0x20)
#define MUXUSBTxBufSize (4096)
#ifdef CMUX_DLCI_EXT
#define NUM_DLCI 64
#else
#define NUM_DLCI 5
#endif
#define CMUX_RX_TASK_PRIO (120)
#define CMUX_RX_TASK_STACK_SIZE (1024)
#define CMUX_TX_TASK_PRIO (80)
#define CMUX_TX_TASK_STACK_SIZE (1024)
/* Cmux RX maxmium queue count */
#define CMUX_RX_MSG_Q_MAX 512
/* Cmux RX request queue size */
#define CMUX_RX_MSG_Q_SIZE 4
/* Cmux TX maxmium queue count */
#define CMUX_TX_MSG_Q_MAX 1024
/* Cmux TX request queue size */
#define CMUX_TX_MSG_Q_SIZE 4
/*state machine end*/
#define min(a,b) (((a) < (b)) ? (a) : (b))
/* Mux trace enable flag. */
#define MUX_LOG_ENABLE MuxTraceEnable
/* Mux trace enable flag. */
#define MUX_TRACE(fmt,args...) \
{ \
if (MUX_LOG_ENABLE) \
{ \
CPUartLogPrintf(fmt, ##args); \
} \
}
#define SET_PF(ctr) ((ctr) | (1 << 4))
#define CLR_PF(ctr) ((ctr) & 0xef)
#define GET_PF(ctr) (((ctr) >> 4) & 0x1)
#define GET_PN_MSG_FRAME_SIZE(pn) ( ((pn)->frame_sizeh << 8) | ((pn)->frame_sizel))
#define SET_PN_MSG_FRAME_SIZE(pn, size) ({ (pn)->frame_sizel = (size) & 0xff; \
(pn)->frame_sizeh = (size) >> 8; })
#define GET_LONG_LENGTH(a) ( ((a).h_len << 7) | ((a).l_len) )
#define SET_LONG_LENGTH(a, length) ({ (a).ea = 0; \
(a).l_len = length & 0x7F; \
(a).h_len = (length >> 7) & 0xFF; })
/*===========================================================================
EXTERN DECLARATIONS FOR MODULE
===========================================================================*/
extern BOOL MuxTraceEnable;
#endif