From 7d3aab1c1643e8b2bcff7f856e0d4455fa0ba4b4 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 29 Oct 1999 12:10:10 +0000 Subject: First steps of the Command Line Interface: I/O routines. --- nest/cli.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 nest/cli.h (limited to 'nest/cli.h') diff --git a/nest/cli.h b/nest/cli.h new file mode 100644 index 00000000..69271fec --- /dev/null +++ b/nest/cli.h @@ -0,0 +1,49 @@ +/* + * BIRD Internet Routing Daemon -- Command-Line Interface + * + * (c) 1999 Martin Mares + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +#ifndef _BIRD_CLI_H_ +#define _BIRD_CLI_H_ + +#include "lib/resource.h" +#include "lib/event.h" + +#define CLI_RX_BUF_SIZE 4096 +#define CLI_TX_BUF_SIZE 4096 + +struct cli_out { + struct cli_out *next; + byte *wpos, *outpos, *end; + byte buf[0]; +}; + +typedef struct cli { + pool *pool; + void *priv; /* Private to sysdep layer */ + int inited; + byte rx_buf[CLI_RX_BUF_SIZE]; + byte *rx_pos, *rx_aux; /* sysdep */ + struct cli_out *tx_buf, *tx_pos, *tx_write; + event *event; +} cli; + +extern pool *cli_pool; + +cli *cli_new(void *); +void cli_init(void); +void cli_free(cli *); +void cli_kick(cli *); +void cli_written(cli *); +void cli_printf(cli *, int, char *, ...); + +/* Function provided by sysdep layer */ + +int cli_write(cli *); +void cli_disconnect(cli *); +int cli_get_command(cli *); + +#endif -- cgit v1.2.3