diff options
author | Chris Hall <chris.hall@highwayman.com> | 2011-02-13 23:11:45 +0000 |
---|---|---|
committer | Chris Hall <chris.hall@highwayman.com> | 2011-02-13 23:11:45 +0000 |
commit | 5cae7eea451f2b7d65b5892e2c1dafc70f8b836e (patch) | |
tree | 0fbd9679e9ae28e7d061b5bdda08756077415ecb /lib/uty.h | |
parent | 64be6d766a65dc0749d17f5023d714678e9c96a6 (diff) | |
download | quagga-5cae7eea451f2b7d65b5892e2c1dafc70f8b836e.tar.bz2 quagga-5cae7eea451f2b7d65b5892e2c1dafc70f8b836e.tar.xz |
Second tranche of updates for pipework branch.
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_debug.c
modified: bgpd/bgp_engine.h
modified: bgpd/bgp_main.c
modified: bgpd/bgp_packet.c
modified: bgpd/bgp_peer.c
modified: bgpd/bgp_route.c
modified: bgpd/bgp_routemap.c
modified: bgpd/bgp_session.c
modified: bgpd/bgp_vty.c
modified: bgpd/bgpd.c
modified: bgpd/bgpd.h
modified: configure.ac
modified: isisd/dict.h
modified: isisd/isis_misc.c
modified: isisd/isis_routemap.c
modified: isisd/isis_spf.c
modified: lib/Makefile.am
modified: lib/command.c
modified: lib/command.h
modified: lib/command_execute.h
modified: lib/command_parse.c
modified: lib/command_parse.h
modified: lib/command_queue.c
modified: lib/command_queue.h
modified: lib/elstring.h
modified: lib/heap.c
modified: lib/if.c
modified: lib/if.h
modified: lib/keychain.c
modified: lib/keystroke.c
modified: lib/keystroke.h
modified: lib/list_util.c
modified: lib/list_util.h
modified: lib/log.c
modified: lib/log.h
modified: lib/memory.c
modified: lib/memory.h
modified: lib/memtypes.c
modified: lib/misc.h
modified: lib/mqueue.c
modified: lib/mqueue.h
deleted: lib/node_type.h
modified: lib/pthread_safe.c
modified: lib/qfstring.c
modified: lib/qiovec.c
modified: lib/qiovec.h
modified: lib/qpath.c
modified: lib/qpnexus.c
modified: lib/qpnexus.h
modified: lib/qpselect.c
modified: lib/qpthreads.h
modified: lib/qstring.c
modified: lib/qstring.h
modified: lib/qtime.c
modified: lib/qtime.h
modified: lib/qtimers.c
modified: lib/qtimers.h
modified: lib/routemap.c
modified: lib/symtab.h
modified: lib/thread.h
deleted: lib/uty.h
modified: lib/vector.c
modified: lib/vector.h
modified: lib/version.h.in
modified: lib/vio_fifo.c
modified: lib/vio_fifo.h
modified: lib/vio_lines.c
modified: lib/vio_lines.h
modified: lib/vty.c
modified: lib/vty.h
modified: lib/vty_cli.c
modified: lib/vty_cli.h
modified: lib/vty_io.c
modified: lib/vty_io.h
modified: lib/vty_io_basic.c
modified: lib/vty_io_basic.h
modified: lib/vty_io_file.c
modified: lib/vty_io_file.h
modified: lib/vty_io_shell.c
modified: lib/vty_io_term.c
modified: lib/vty_io_term.h
modified: lib/vty_local.h
modified: lib/vty_pipe.c
modified: lib/workqueue.h
modified: lib/zebra.h
modified: ospf6d/ospf6_lsa.c
modified: ripngd/ripngd.c
modified: tests/test-list_util.c
modified: tests/test-vector.c
modified: vtysh/vtysh.c
modified: vtysh/vtysh_config.c
Diffstat (limited to 'lib/uty.h')
-rw-r--r-- | lib/uty.h | 232 |
1 files changed, 0 insertions, 232 deletions
diff --git a/lib/uty.h b/lib/uty.h deleted file mode 100644 index cc759673..00000000 --- a/lib/uty.h +++ /dev/null @@ -1,232 +0,0 @@ -/* VTY internal stuff -- header - * Copyright (C) 1997 Kunihiro Ishiguro - * - * Copyright (C) 2009 Chris Hall (GMCH), Highwayman - * - * This file is part of GNU Zebra. - * - * GNU Zebra 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, or (at your - * option) any later version. - * - * GNU Zebra is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Zebra; see the file COPYING. If not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _ZEBRA_UTY_H -#define _ZEBRA_UTY_H - -#include "misc.h" -#include "vargs.h" - -#include "qpthreads.h" -#include "qpnexus.h" -#include "thread.h" -#include "list_util.h" -#include "vty.h" -#include "vty_io_basic.h" -#include "node_type.h" - -/*============================================================================== - * This is stuff which is used by the close family of: - * - * vty - * command - * command_queue - * log - * - * and which is not for use elsewhere. - * - * There are also: - * - * vty_io - * vty_cli - * - * Which are the "immediate family" of vty: - * - * * *nothing* in their ".h" is for use anywhere except the immediate family. - * - * * things for use within the rest of the family are published here. - */ - -/*============================================================================== - * Variables in vty.c -- used in any of the family - */ -extern vty_io vio_list_base ; -extern vty_io vio_monitors_base ; -extern vty_io vio_death_watch ; - -extern struct thread_master* vty_master ; - -extern unsigned long vty_timeout_val ; - -extern bool vty_config ; - -extern bool no_password_check ; -extern const bool restricted_mode_default ; -extern bool restricted_mode ; - -char *vty_accesslist_name ; -char *vty_ipv6_accesslist_name ; - -extern qpn_nexus vty_cli_nexus ; -extern qpn_nexus vty_cmd_nexus ; - -/*============================================================================== - * To make vty qpthread safe we use a single mutex. - * - * vty and log recurse through each other, so the same mutex is used - * for both, i.e. they are treated as being part of the same monitor. - * - * A recursive mutex is used. This simplifies the calling from log to vty and - * back again. It also allows for the vty internals to call each other. - * - * There are some "uty" functions which assume the mutex is locked. - * - * vty is closely bound to the command handling -- the main vty structure - * contains the context in which commands are parsed and executed. - */ - -extern qpt_mutex_t vty_mutex ; - -#ifdef NDEBUG -# define VTY_DEBUG 0 /* NDEBUG override */ -#else -# ifndef VTY_DEBUG -# define VTY_DEBUG 1 /* Set to 1 to turn on debug checks */ -# endif -#endif - -#if VTY_DEBUG - -extern int vty_lock_count ; -extern int vty_assert_fail ; - -#endif - -Inline void -VTY_LOCK(void) /* if is qpthreads_enabled, lock vty_mutex */ -{ - qpt_mutex_lock(&vty_mutex) ; - if (VTY_DEBUG) - ++vty_lock_count ; -} ; - -Inline void -VTY_UNLOCK(void) /* if is qpthreads_enabled, unlock vty_mutex */ -{ - if (VTY_DEBUG) - --vty_lock_count ; - qpt_mutex_unlock(&vty_mutex) ; -} ; - -Inline bool /* true => is (effectively) cli thread */ -vty_is_cli_thread(void) -{ - return !qpthreads_enabled || qpt_thread_is_self(vty_cli_nexus->thread_id) ; -} ; - -/* For debug (and documentation) purposes, will VTY_ASSERT_LOCKED where that - * is required. - * - * In some cases, need also to be running in the CLI thread as well. - */ -#if VTY_DEBUG - -Inline void -VTY_ASSERT_FAILED(void) -{ - if (vty_assert_fail == 0) ; - { - vty_assert_fail = 1 ; - assert(0) ; - } ; -} ; - -Inline void -VTY_ASSERT_LOCKED(void) -{ - if (vty_lock_count == 0) - VTY_ASSERT_FAILED() ; -} ; - -Inline void -VTY_ASSERT_CLI_THREAD(void) -{ - if (!vty_is_cli_thread()) - VTY_ASSERT_FAILED() ; -} ; - -#else - -#define VTY_ASSERT_LOCKED() -#define VTY_ASSERT_CLI_THREAD() - -#endif - -/*============================================================================== - * Shared definitions - */ - -enum cli_do -{ - cli_do_nothing = 0, /* no action required */ - - cli_do_command, /* dispatch the current command line */ - cli_do_ctrl_c, /* received ^c */ - cli_do_ctrl_d, /* received ^d on empty line */ - cli_do_ctrl_z, /* received ^z */ - - cli_do_eof, /* hit "EOF" */ - - cli_do_count /* number of different cli_do_xxx */ -} ; - -/*============================================================================== - * Functions in vty.c -- used in any of the family - */ -extern enum cmd_return_code uty_command(struct vty *vty) ; -extern enum cmd_return_code uty_auth (struct vty *vty, const char *buf, - enum cli_do cli_do) ; -extern enum cmd_return_code vty_cmd_exit(struct vty* vty) ; -extern enum cmd_return_code vty_cmd_end(struct vty* vty) ; -extern enum cmd_return_code uty_cmd_close(struct vty *vty, const char* reason) ; -extern enum cmd_return_code uty_stop_input(struct vty *vty) ; -extern enum cmd_return_code uty_end_config (struct vty *vty) ; -extern enum cmd_return_code uty_down_level (struct vty *vty) ; - -extern bool vty_config_lock (struct vty *, enum node_type node); -extern void vty_config_unlock (struct vty *, enum node_type node); -extern void uty_config_unlock (struct vty *vty, enum node_type node) ; - -/*============================================================================== - * Functions in vty_cli -- used outside the immediate vty family - */ -extern void vty_queued_result(struct vty* vty, enum cmd_return_code ret); -extern void uty_set_host_name(const char* name) ; - -/*============================================================================== - * Functions in vty_io -- used outside the immediate vty family - */ -extern void vty_open_config_write(struct vty* vty, int fd) ; -extern int vty_close_config_write(struct vty*) ; - -extern void vty_log_fixed (const char *buf, size_t len); - -extern void uty_log (struct logline* ll, struct zlog *zl, int priority, - const char *format, va_list va); - -/*============================================================================== - * Functions in command.c - */ -extern void cmd_post_command(struct vty* vty, int ret) ; - -#endif /* _ZEBRA_UTY_H */ |