?? comx.h
字號:
/* * General definitions for the COMX driver * * Original authors: Arpad Bakay <bakay.arpad@synergon.hu>, * Peter Bajan <bajan.peter@synergon.hu>, * Previous maintainer: Tivadar Szemethy <tiv@itc.hu> * Currently maintained by: Gergely Madarasz <gorgo@itc.hu> * * Copyright (C) 1995-1999 ITConsult-Pro Co. <info@itc.hu> * * 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. * * * net_device_stats: * rx_length_errors rec_len < 4 || rec_len > 2000 * rx_over_errors receive overrun (OVR) * rx_crc_errors rx crc error * rx_frame_errors aborts rec'd (ABO) * rx_fifo_errors status fifo overrun (PBUFOVR) * rx_missed_errors receive buffer overrun (BUFOVR) * tx_aborted_errors ? * tx_carrier_errors modem line status changes * tx_fifo_errors tx underrun (locomx) */#include <linux/config.h>struct comx_protocol { char *name; char *version; unsigned short encap_type; int (*line_init)(struct net_device *dev); int (*line_exit)(struct net_device *dev); struct comx_protocol *next; };struct comx_hardware { char *name; char *version; int (*hw_init)(struct net_device *dev); int (*hw_exit)(struct net_device *dev); int (*hw_dump)(struct net_device *dev); struct comx_hardware *next; };struct comx_channel { void *if_ptr; // General purpose pointer struct net_device *dev; // Where we belong to struct net_device *twin; // On dual-port cards struct proc_dir_entry *procdir; // the directory unsigned char init_status; unsigned char line_status; struct timer_list lineup_timer; // against line jitter long int lineup_pending; unsigned char lineup_delay;#if 0 struct timer_list reset_timer; // for board resetting long reset_pending; int reset_timeout;#endif struct net_device_stats stats; struct net_device_stats *current_stats;#if 0 unsigned long board_resets;#endif unsigned long *avg_bytes; int loadavg_counter, loadavg_size; int loadavg[3]; struct timer_list loadavg_timer; int debug_flags; char *debug_area; int debug_start, debug_end, debug_size; struct proc_dir_entry *debug_file;#ifdef CONFIG_COMX_DEBUG_RAW char *raw; int raw_len;#endif // LINE specific struct comx_protocol *protocol; void (*LINE_rx)(struct net_device *dev, struct sk_buff *skb); int (*LINE_tx)(struct net_device *dev); void (*LINE_status)(struct net_device *dev, u_short status); int (*LINE_open)(struct net_device *dev); int (*LINE_close)(struct net_device *dev); int (*LINE_xmit)(struct sk_buff *skb, struct net_device *dev); int (*LINE_header)(struct sk_buff *skb, struct net_device *dev, u_short type,void *daddr, void *saddr, unsigned len); int (*LINE_rebuild_header)(struct sk_buff *skb); int (*LINE_statistics)(struct net_device *dev, char *page); int (*LINE_parameter_check)(struct net_device *dev); int (*LINE_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd); void (*LINE_mod_use)(int); void * LINE_privdata; // HW specific struct comx_hardware *hardware; void (*HW_board_on)(struct net_device *dev); void (*HW_board_off)(struct net_device *dev); struct net_device *(*HW_access_board)(struct net_device *dev); void (*HW_release_board)(struct net_device *dev, struct net_device *savep); int (*HW_txe)(struct net_device *dev); int (*HW_open)(struct net_device *dev); int (*HW_close)(struct net_device *dev); int (*HW_send_packet)(struct net_device *dev,struct sk_buff *skb); int (*HW_statistics)(struct net_device *dev, char *page);#if 0 int (*HW_reset)(struct net_device *dev, char *page);#endif int (*HW_load_board)(struct net_device *dev); void (*HW_set_clock)(struct net_device *dev); void *HW_privdata; };struct comx_debugflags_struct { char *name; int value; };#define COMX_ROOT_DIR_NAME "comx"#define FILENAME_HARDWARE "boardtype"#define FILENAME_HARDWARELIST "boardtypes"#define FILENAME_PROTOCOL "protocol"#define FILENAME_PROTOCOLLIST "protocols"#define FILENAME_DEBUG "debug"#define FILENAME_CLOCK "clock"#define FILENAME_STATUS "status"#define FILENAME_IO "io"#define FILENAME_IRQ "irq"#define FILENAME_KEEPALIVE "keepalive"#define FILENAME_LINEUPDELAY "lineup_delay"#define FILENAME_CHANNEL "channel"#define FILENAME_FIRMWARE "firmware"#define FILENAME_MEMADDR "memaddr"#define FILENAME_TWIN "twin"#define FILENAME_T1 "t1"#define FILENAME_T2 "t2"#define FILENAME_N2 "n2"#define FILENAME_WINDOW "window"#define FILENAME_MODE "mode"#define FILENAME_DLCI "dlci"#define FILENAME_MASTER "master"#ifdef CONFIG_COMX_DEBUG_RAW#define FILENAME_RAW "raw"#endif#define PROTONAME_NONE "none"#define HWNAME_NONE "none"#define KEEPALIVE_OFF "off"#define FRAME_ACCEPTED 0 /* sending and xmitter busy */#define FRAME_DROPPED 1#define FRAME_ERROR 2 /* xmitter error */#define FRAME_QUEUED 3 /* sending but more can come */#define LINE_UP 1 /* Modem UP */#define PROTO_UP 2#define PROTO_LOOP 4#define HW_OPEN 1#define LINE_OPEN 2#define FW_LOADED 4#define IRQ_ALLOCATED 8#define DEBUG_COMX_RX 2#define DEBUG_COMX_TX 4#define DEBUG_HW_TX 16#define DEBUG_HW_RX 32#define DEBUG_HDLC_KEEPALIVE 64#define DEBUG_COMX_PPP 128#define DEBUG_COMX_LAPB 256#define DEBUG_COMX_DLCI 512#define DEBUG_PAGESIZE 3072#define DEFAULT_DEBUG_SIZE 4096#define DEFAULT_LINEUP_DELAY 1#define FILE_PAGESIZE 3072#ifndef COMX_PPP_MAJOR#define COMX_PPP_MAJOR 88#endif#define COMX_CHANNEL(dev) ((struct comx_channel*)dev->priv)#define TWIN(dev) (COMX_CHANNEL(dev)->twin)#ifndef bytetypedef u8 byte;#endif#ifndef wordtypedef u16 word;#endif#ifndef SEEK_SET#define SEEK_SET 0#endif#ifndef SEEK_CUR#define SEEK_CUR 1#endif#ifndef SEEK_END#define SEEK_END 2#endifextern struct proc_dir_entry * comx_root_dir;extern int comx_register_hardware(struct comx_hardware *comx_hw);extern int comx_unregister_hardware(char *name);extern int comx_register_protocol(struct comx_protocol *comx_line);extern int comx_unregister_protocol(char *name);extern int comx_rx(struct net_device *dev, struct sk_buff *skb);extern void comx_status(struct net_device *dev, int status);extern void comx_lineup_func(unsigned long d);extern int comx_debug(struct net_device *dev, char *fmt, ...);extern int comx_debug_skb(struct net_device *dev, struct sk_buff *skb, char *msg);extern int comx_debug_bytes(struct net_device *dev, unsigned char *bytes, int len, char *msg);extern int comx_strcasecmp(const char *cs, const char *ct);extern struct inode_operations comx_normal_inode_ops;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -