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

📄 hypervisor.h

📁 思科路由器仿真器,用来仿7200系列得,可以在电脑上模拟路由器
💻 H
字号:
/* * Cisco router simulation platform. * Copyright (c) 2006 Christophe Fillot (cf@utc.fr) * * Hypervisor routines. */#ifndef __HYPERVISOR_H__#define __HYPERVISOR_H__/* Default TCP port */#define HYPERVISOR_TCP_PORT 7200/* Maximum listening socket number */#define HYPERVISOR_MAX_FD   10/* Maximum tokens per line */#define HYPERVISOR_MAX_TOKENS  16/* Hypervisor status codes */#define HSC_INFO_OK         100  /* ok */#define HSC_INFO_MSG        101  /* informative message */#define HSC_INFO_DEBUG      102  /* debugging message */#define HSC_ERR_PARSING     200  /* parse error */#define HSC_ERR_UNK_MODULE  201  /* unknown module */#define HSC_ERR_UNK_CMD     202  /* unknown command */#define HSC_ERR_BAD_PARAM   203  /* bad number of parameters */#define HSC_ERR_INV_PARAM   204  /* invalid parameter */#define HSC_ERR_BINDING     205  /* binding error */#define HSC_ERR_CREATE      206  /* unable to create object */#define HSC_ERR_DELETE      207  /* unable to delete object */#define HSC_ERR_UNK_OBJ     208  /* unknown object */#define HSC_ERR_START       209  /* unable to start object */#define HSC_ERR_STOP        210  /* unable to stop object */#define HSC_ERR_FILE        211  /* file error */#define HSC_ERR_BAD_OBJ     212  /* Bad object */typedef struct hypervisor_conn hypervisor_conn_t;typedef struct hypervisor_cmd hypervisor_cmd_t;typedef struct hypervisor_module hypervisor_module_t;/* Hypervisor connection */struct hypervisor_conn {   pthread_t tid;                    /* Thread identifier */   volatile int active;              /* Connection is active ? */   int client_fd;                    /* Client FD */   FILE *in,*out;                    /* I/O buffered streams */   hypervisor_module_t *cur_module;  /* Module of current command */   hypervisor_conn_t *next,**pprev;};/* Hypervisor command handler */typedef int (*hypervisor_cmd_handler)(hypervisor_conn_t *conn,int argc,                                      char *argv[]);/* Hypervisor command */struct hypervisor_cmd {   char *name;   int min_param,max_param;   hypervisor_cmd_handler handler;   hypervisor_cmd_t *next;};/* Hypervisor module */struct hypervisor_module {   char *name;   void *opt;   hypervisor_cmd_t *cmd_list;   hypervisor_module_t *next;};/* Hypervisor NIO initialization */extern int hypervisor_nio_init(void);/* Hypervisor NIO bridge initialization */extern int hypervisor_nio_bridge_init(void);/* Hypervisor Frame-Relay switch initialization */extern int hypervisor_frsw_init(void);/* Hypervisor ATM switch initialization */extern int hypervisor_atmsw_init(void);/* Hypervisor ATM bridge initialization */extern int hypervisor_atm_bridge_init(void);/* Hypervisor Ethernet switch initialization */extern int hypervisor_ethsw_init(void);/* Hypervisor VM initialization */extern int hypervisor_vm_init(void);/* Hypervisor VM debugging initialization */extern int hypervisor_vm_debug_init(void);/* Hypervisor store initialization */extern int hypervisor_store_init(void);/* Send a reply */int hypervisor_send_reply(hypervisor_conn_t *conn,int code,int done,                          char *format,...);/* Find a module */hypervisor_module_t *hypervisor_find_module(char *name);/* Find a command in a module */hypervisor_cmd_t *hypervisor_find_cmd(hypervisor_module_t *module,char *name);/* Find an object in the registry */void *hypervisor_find_object(hypervisor_conn_t *conn,char *name,int obj_type);/* Find a VM in the registry */void *hypervisor_find_vm(hypervisor_conn_t *conn,char *name);/* Register a module */hypervisor_module_t *hypervisor_register_module(char *name,void *opt);/* Register a list of commands */int hypervisor_register_cmd_list(hypervisor_module_t *module,                                 hypervisor_cmd_t *cmd_list);/* Register an array of commands */int hypervisor_register_cmd_array(hypervisor_module_t *module,                                  hypervisor_cmd_t *cmd_array);/* Stop hypervisor from sighandler */int hypervisor_stopsig(void);/* Hypervisor TCP server */int hypervisor_tcp_server(char *ip_addr,int tcp_port);#endif

⌨️ 快捷键说明

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