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

📄 dev_vtty.h

📁 思科路由器仿真器,用来仿7200系列得,可以在电脑上模拟路由器-Cisco router simulator, used to fake a 7200 series can be simulated
💻 H
字号:
/* * Cisco 7200 (Predator) simulation platform. * Copyright (c) 2005,2006 Christophe Fillot (cf@utc.fr) * * Virtual console TTY. */#ifndef __DEV_VTTY_H__#define __DEV_VTTY_H__#include <sys/types.h>#include <pthread.h>#include "vm.h"#include <stdio.h>/* 4 Kb should be enough for a keyboard buffer */#define VTTY_BUFFER_SIZE  4096/* VTTY connection types */enum {   VTTY_TYPE_NONE = 0,   VTTY_TYPE_TERM,   VTTY_TYPE_TCP,   VTTY_TYPE_SERIAL,};/* VTTY connection states (for TCP) */enum {   VTTY_STATE_TCP_INVALID,    /* connection is not working */   VTTY_STATE_TCP_WAITING,    /* waiting for incoming connection */   VTTY_STATE_TCP_RUNNING,    /* character reading/writing ok */};/* VTTY input states */enum {   VTTY_INPUT_TEXT,   VTTY_INPUT_VT1,   VTTY_INPUT_VT2,   VTTY_INPUT_REMOTE,   VTTY_INPUT_TELNET,   VTTY_INPUT_TELNET_IYOU,   VTTY_INPUT_TELNET_SB1,   VTTY_INPUT_TELNET_SB2,   VTTY_INPUT_TELNET_SB_TTYPE,   VTTY_INPUT_TELNET_NEXT};/* Commmand line support utility */typedef struct vtty_serial_option vtty_serial_option_t;struct vtty_serial_option {   char *device;   int baudrate, databits, parity, stopbits, hwflow;};int vtty_parse_serial_option(vtty_serial_option_t *params, char *optarg);/* Virtual TTY structure */typedef struct virtual_tty vtty_t;struct virtual_tty {   vm_instance_t *vm;   char *name;   int type,state;   int tcp_port;   int terminal_support;   int input_state;   int input_pending;   int telnet_cmd, telnet_opt, telnet_qual;   int fd,accept_fd,*select_fd;   int managed_flush;   FILE *fstream;   u_char buffer[VTTY_BUFFER_SIZE];   u_int read_ptr,write_ptr;   pthread_mutex_t lock;   vtty_t *next,**pprev;   void *priv_data;   /* Read notification */   void (*read_notifier)(vtty_t *);};#define VTTY_LOCK(tty) pthread_mutex_lock(&(tty)->lock);#define VTTY_UNLOCK(tty) pthread_mutex_unlock(&(tty)->lock);/* create a virtual tty */vtty_t *vtty_create(vm_instance_t *vm,char *name,int type,int tcp_port,                    const vtty_serial_option_t *option);/* delete a virtual tty */void vtty_delete(vtty_t *vtty);/* Store a string in the FIFO buffer */int vtty_store_str(vtty_t *vtty,char *str);/* read a character from the buffer (-1 if the buffer is empty) */int vtty_get_char(vtty_t *vtty);/* print a character to vtty */void vtty_put_char(vtty_t *vtty, char ch);/* Flush VTTY output */void vtty_flush(vtty_t *vtty);/* returns TRUE if a character is available in buffer */int vtty_is_char_avail(vtty_t *vtty);/* write CTRL+C to buffer */int vtty_store_ctrlc(vtty_t *);/* Initialize the VTTY thread */int vtty_init(void);#endif

⌨️ 快捷键说明

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