⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdla_fr.h

📁 linux得一些常用命令,以及linux环境下的c编程
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** sdla_fr.h	Sangoma frame relay firmware API definitions.** Author:       Gideon Hack  	*		Nenad Corbic <ncorbic@sangoma.com> 	** Copyright:	(c) 1995-2000 Sangoma Technologies Inc.**		This program is free software; you can redistribute it and/or*		modify it under the terms of the GNU General Public License*		as published by the Free Software Foundation; either version*		2 of the License, or (at your option) any later version.* ============================================================================* Oct 04, 1999  Gideon Hack     Updated API structures* Jun 02, 1999  Gideon Hack 	Modifications for S514 support* Oct 12, 1997	Jaspreet Singh	Added FR_READ_DLCI_IB_MAPPING* Jul 21, 1997 	Jaspreet Singh	Changed FRRES_TOO_LONG and FRRES_TOO_MANY to *				0x05 and 0x06 respectively.* Dec 23, 1996	Gene Kozin	v2.0* Apr 29, 1996	Gene Kozin	v1.0 (merged version S502 & S508 definitions).* Sep 26, 1995	Gene Kozin	Initial version.*****************************************************************************/#ifndef	_SDLA_FR_H#define	_SDLA_FR_H/*---------------------------------------------------------------------------- * Notes: * ------ * 1. All structures defined in this file are byte-alined.   * *	Compiler	Platform *	--------	-------- *	GNU C		Linux */#ifndef	PACKED#    define	PACKED	__attribute__((packed))#endif	/* PACKED *//* Adapter memory layout */#define	FR_MB_VECTOR	0xE000	/* mailbox window vector */#define	FR502_RX_VECTOR	0xA000	/* S502 direct receive window vector */#define	FR502_MBOX_OFFS	0xF60	/* S502 mailbox offset */#define	FR508_MBOX_OFFS	0	/* S508 mailbox offset */#define	FR502_FLAG_OFFS	0x1FF0	/* S502 status flags offset */#define	FR508_FLAG_OFFS	0x1000	/* S508 status flags offset */#define	FR502_RXMB_OFFS	0x900	/* S502 direct receive mailbox offset */#define	FR508_TXBC_OFFS	0x1100	/* S508 Tx buffer info offset */#define	FR508_RXBC_OFFS	0x1120	/* S508 Rx buffer info offset *//* Important constants */#define FR502_MAX_DATA	4096	/* maximum data buffer length */#define FR508_MAX_DATA	4080	/* maximum data buffer length */#define MIN_LGTH_FR_DATA_CFG         300     /* min Information frame length(for configuration purposes) */#define FR_MAX_NO_DATA_BYTES_IN_FRAME  15354 	/* max Information frame length */ #define HIGHEST_VALID_DLCI	991/****** Data Structures *****************************************************//*---------------------------------------------------------------------------- * Frame relay command block. */typedef struct fr_cmd{	unsigned char  command	PACKED;	/* command code */	unsigned short length	PACKED;	/* length of data buffer */	unsigned char  result	PACKED;	/* return code */	unsigned short dlci	PACKED;	/* DLCI number */	unsigned char  attr	PACKED;	/* FECN, BECN, DE and C/R bits */	unsigned short rxlost1	PACKED;	/* frames discarded at int. level */	unsigned long  rxlost2	PACKED;	/* frames discarded at app. level */	unsigned char  rsrv[2]	PACKED;	/* reserved for future use */} fr_cmd_t;/* 'command' field defines */#define	FR_WRITE		0x01#define	FR_READ			0x02#define	FR_ISSUE_IS_FRAME	0x03#define FR_SET_CONFIG		0x10#define FR_READ_CONFIG		0x11#define FR_COMM_DISABLE		0x12#define FR_COMM_ENABLE		0x13#define FR_READ_STATUS		0x14#define FR_READ_STATISTICS	0x15#define FR_FLUSH_STATISTICS	0x16#define	FR_LIST_ACTIVE_DLCI	0x17#define FR_FLUSH_DATA_BUFFERS	0x18#define FR_READ_ADD_DLC_STATS	0x19#define	FR_ADD_DLCI		0x20#define	FR_DELETE_DLCI		0x21#define	FR_ACTIVATE_DLCI	0x22#define	FR_DEACTIVATE_DLCI	0x22#define FR_READ_MODEM_STATUS	0x30#define FR_SET_MODEM_STATUS	0x31#define FR_READ_ERROR_STATS	0x32#define FR_FLUSH_ERROR_STATS	0x33#define FR_READ_DLCI_IB_MAPPING 0x34#define FR_READ_CODE_VERSION	0x40#define	FR_SET_INTR_MODE	0x50#define	FR_READ_INTR_MODE	0x51#define FR_SET_TRACE_CONFIG	0x60#define FR_FT1_STATUS_CTRL 	0x80#define FR_SET_FT1_MODE		0x81/* Special UDP drivers management commands */#define FPIPE_ENABLE_TRACING          	0x41#define FPIPE_DISABLE_TRACING		0x42#define FPIPE_GET_TRACE_INFO            0x43#define FPIPE_FT1_READ_STATUS           0x44#define FPIPE_DRIVER_STAT_IFSEND        0x45#define FPIPE_DRIVER_STAT_INTR          0x46#define FPIPE_DRIVER_STAT_GEN           0x47#define FPIPE_FLUSH_DRIVER_STATS        0x48#define FPIPE_ROUTER_UP_TIME            0x49/* 'result' field defines */#define FRRES_OK		0x00	/* command executed successfully */#define	FRRES_DISABLED		0x01	/* communications not enabled */#define	FRRES_INOPERATIVE	0x02	/* channel inoperative */#define	FRRES_DLCI_INACTIVE	0x03	/* DLCI is inactive */#define	FRRES_DLCI_INVALID	0x04	/* DLCI is not configured */#define	FRRES_TOO_LONG		0x05#define	FRRES_TOO_MANY		0x06#define	FRRES_CIR_OVERFLOW	0x07	/* Tx throughput has exceeded CIR */#define	FRRES_BUFFER_OVERFLOW	0x08#define	FRRES_MODEM_FAILURE	0x10	/* DCD and/or CTS dropped */#define	FRRES_CHANNEL_DOWN	0x11	/* channel became inoperative */#define	FRRES_CHANNEL_UP	0x12	/* channel became operative */#define	FRRES_DLCI_CHANGE	0x13	/* DLCI status (or number) changed */#define	FRRES_DLCI_MISMATCH	0x14#define	FRRES_INVALID_CMD	0x1F	/* invalid command *//* 'attr' field defines */#define	FRATTR_/*---------------------------------------------------------------------------- * Frame relay mailbox. *	This structure is located at offset FR50?_MBOX_OFFS into FR_MB_VECTOR. *	For S502 it is also located at offset FR502_RXMB_OFFS into *	FR502_RX_VECTOR. */typedef struct fr_mbox{	unsigned char opflag	PACKED;	/* 00h: execution flag */	fr_cmd_t cmd		PACKED;	/* 01h: command block */	unsigned char data[1]	PACKED;	/* 10h: variable length data buffer */} fr_mbox_t;/*---------------------------------------------------------------------------- * S502 frame relay status flags. *	This structure is located at offset FR502_FLAG_OFFS into FR_MB_VECTOR. */typedef struct	fr502_flags{		unsigned char rsrv1[1]	PACKED;	/* 00h: */	unsigned char tx_ready	PACKED;	/* 01h: Tx buffer available */	unsigned char rx_ready	PACKED;	/* 02h: Rx frame available */	unsigned char event	PACKED;	/* 03h: asynchronous event */	unsigned char mstatus	PACKED;	/* 04h: modem status */	unsigned char rsrv2[8]	PACKED;	/* 05h: */	unsigned char iflag	PACKED;	/* 0Dh: interrupt flag */	unsigned char imask	PACKED;	/* 0Eh: interrupt mask */} fr502_flags_t;/*---------------------------------------------------------------------------- * S508 frame relay status flags. *	This structure is located at offset FR508_FLAG_OFFS into FR_MB_VECTOR. */typedef struct	fr508_flags{	unsigned char rsrv1[3]	PACKED;	/* 00h: reserved */	unsigned char event	PACKED;	/* 03h: asynchronous event */	unsigned char mstatus	PACKED;	/* 04h: modem status */	unsigned char rsrv2[11]	PACKED;	/* 05h: reserved */	unsigned char iflag	PACKED;	/* 10h: interrupt flag */	unsigned char imask	PACKED;	/* 11h: interrupt mask */	unsigned long tse_offs	PACKED;	/* 12h: Tx status element */	unsigned short dlci	PACKED; /* 16h: DLCI NUMBER */} fr508_flags_t;/* 'event' field defines */#define	FR_EVENT_STATUS		0x01	/* channel status change */#define	FR_EVENT_DLC_STATUS	0x02	/* DLC status change */#define	FR_EVENT_BAD_DLCI	0x04	/* FSR included wrong DLCI */#define	FR_EVENT_LINK_DOWN	0x40	/* DCD or CTS low *//* 'mstatus' field defines */#define	FR_MDM_DCD		0x08	/* mdm_status: DCD */#define	FR_MDM_CTS		0x20	/* mdm_status: CTS *//* 'iflag' & 'imask' fields defines */#define	FR_INTR_RXRDY		0x01	/* Rx ready */#define	FR_INTR_TXRDY		0x02	/* Tx ready */#define	FR_INTR_MODEM		0x04	/* modem status change (DCD, CTS) */#define	FR_INTR_READY		0x08	/* interface command completed */#define	FR_INTR_DLC		0x10	/* DLC status change */#define	FR_INTR_TIMER		0x20	/* millisecond timer */#define FR_INTR_TX_MULT_DLCIs	0x80	/* Tx interrupt on multiple DLCIs *//*---------------------------------------------------------------------------- * Receive Buffer Configuration Info. S508 only! *	This structure is located at offset FR508_RXBC_OFFS into FR_MB_VECTOR. */typedef struct	fr_buf_info{	unsigned short rse_num	PACKED;	/* 00h: number of status elements */	unsigned long rse_base	PACKED;	/* 02h: receive status array base */	unsigned long rse_next	PACKED;	/* 06h: next status element */	unsigned long buf_base	PACKED;	/* 0Ah: rotational buffer base */	unsigned short reserved	PACKED;	/* 0Eh:  */	unsigned long buf_top	PACKED;	/* 10h: rotational buffer top */} fr_buf_info_t;/*---------------------------------------------------------------------------- * Buffer Status Element. S508 only! *	Array of structures of this type is located at offset defined by the *	'rse_base' field of the frBufInfo_t structure into absolute adapter *	memory address space. */typedef struct	fr_rx_buf_ctl{	unsigned char flag	PACKED;	/* 00h: ready flag */	unsigned short length	PACKED;	/* 01h: frame length */	unsigned short dlci	PACKED;	/* 03h: DLCI */	unsigned char attr	PACKED;	/* 05h: FECN/BECN/DE/CR */	unsigned short tmstamp	PACKED;	/* 06h: time stamp */	unsigned short rsrv[2]	PACKED; /* 08h:  */	unsigned long offset	PACKED;	/* 0Ch: buffer absolute address */} fr_rx_buf_ctl_t;typedef struct  fr_tx_buf_ctl{        unsigned char flag      PACKED; /* 00h: ready flag */	unsigned short rsrv0[2]	PACKED;	/* 01h: */        unsigned short length   PACKED; /* 05h: frame length */        unsigned short dlci     PACKED; /* 07h: DLCI */        unsigned char attr      PACKED; /* 09h: FECN/BECN/DE/CR */        unsigned short rsrv1 	PACKED; /* 0Ah:  */        unsigned long offset    PACKED; /* 0Ch: buffer absolute address */} fr_tx_buf_ctl_t;/*---------------------------------------------------------------------------- * Global Configuration Block. Passed to FR_SET_CONFIG command when dlci == 0. */typedef struct	fr_conf{	unsigned short station	PACKED;	/* 00h: CPE/Node */	unsigned short options	PACKED;	/* 02h: configuration options */	unsigned short kbps	PACKED;	/* 04h: baud rate in kbps */	unsigned short port	PACKED;	/* 06h: RS-232/V.35 */	unsigned short mtu	PACKED;	/* 08h: max. transmit length */	unsigned short t391	PACKED;	/* 0Ah:  */	unsigned short t392	PACKED;	/* 0Ch:  */	unsigned short n391	PACKED;	/* 0Eh:  */	unsigned short n392	PACKED;	/* 10h:  */	unsigned short n393	PACKED;	/* 12h:  */	unsigned short cir_fwd	PACKED;	/* 14h:  */	unsigned short bc_fwd	PACKED;	/* 16h:  */	unsigned short be_fwd	PACKED;	/* 18h:  */	unsigned short cir_bwd	PACKED;	/* 1Ah:  */	unsigned short bc_bwd	PACKED;	/* 1Ch:  */	unsigned short be_bwd	PACKED;	/* 1Eh:  */	unsigned short dlci[0]	PACKED;	/* 20h:  */} fr_conf_t;/* 'station_type' defines */#define	FRCFG_STATION_CPE	0#define	FRCFG_STATION_NODE	1/* 'conf_flags' defines */#define	FRCFG_IGNORE_TX_CIR	0x0001#define	FRCFG_IGNORE_RX_CIR	0x0002#define	FRCFG_DONT_RETRANSMIT	0x0004#define	FRCFG_IGNORE_CBS	0x0008#define	FRCFG_THROUGHPUT	0x0010	/* enable throughput calculation */#define	FRCFG_DIRECT_RX		0x0080	/* enable direct receive buffer */#define	FRCFG_AUTO_CONFIG	0x8000	/* enable  auto DLCI configuration *//* 'baud_rate' defines */#define	FRCFG_BAUD_1200		12#define	FRCFG_BAUD_2400		24#define	FRCFG_BAUD_4800		48#define	FRCFG_BAUD_9600		96#define	FRCFG_BAUD_19200	19#define	FRCFG_BAUD_38400	38#define	FRCFG_BAUD_56000	56#define	FRCFG_BAUD_64000	64#define	FRCFG_BAUD_128000	128/* 'port_mode' defines */#define	FRCFG_MODE_EXT_CLK	0x0000#define	FRCFG_MODE_INT_CLK	0x0001#define	FRCFG_MODE_V35		0x0000	/* S508 only */#define	FRCFG_MODE_RS232	0x0002	/* S508 only *//* defines for line tracing *//* the line trace status element presented by the frame relay code */typedef struct {        unsigned char flag      PACKED; /* ready flag */        unsigned short length   PACKED; /* trace length */        unsigned char rsrv0[2]  PACKED; /* reserved */        unsigned char attr      PACKED; /* trace attributes */        unsigned short tmstamp  PACKED; /* time stamp */        unsigned char rsrv1[4]  PACKED; /* reserved */        unsigned long offset    PACKED; /* buffer absolute address */} fr_trc_el_t;typedef struct {        unsigned char status    	PACKED; /* status flag */	unsigned char data_passed	PACKED;	/* 0 if no data passed, 1 if */						/* data passed */        unsigned short length   	PACKED; /* frame length */        unsigned short tmstamp  	PACKED; /* time stamp */} fpipemon_trc_hdr_t;typedef struct {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -