diff options
author | paulo <paul@bayleaf.org.uk> | 2009-12-15 17:09:13 +0000 |
---|---|---|
committer | paulo <paul@bayleaf.org.uk> | 2009-12-15 17:09:13 +0000 |
commit | b69a458160a9ab354fb9350f605bd36310786304 (patch) | |
tree | 007ba517f808d527c54fe9093aad6e7c44f1ca3b /lib/qlib_init.c | |
parent | 73fe495cffb7eae3f68df3d3598b0f83df81b79a (diff) | |
download | quagga-b69a458160a9ab354fb9350f605bd36310786304.tar.bz2 quagga-b69a458160a9ab354fb9350f605bd36310786304.tar.xz |
Get CLI thread and UI working properly. Sex commands according to
thread to run in. Add qlib_init stuff. Add -t parameter for "threaded".
Diffstat (limited to 'lib/qlib_init.c')
-rw-r--r-- | lib/qlib_init.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/lib/qlib_init.c b/lib/qlib_init.c new file mode 100644 index 00000000..83ae0fe7 --- /dev/null +++ b/lib/qlib_init.c @@ -0,0 +1,80 @@ +/* Quagga library initialise/closedown -- functions + * 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. + */ + +#include "zassert.h" + +/*============================================================================== + * Quagga Library Initialise/Closedown + * + * This gathers together the essential initialisation and closedown for the + * library. This ensures that any changes in the library are contained here, + * and do not require changes in all users of the library. + * + * There are two stages of initialisation: + * + * 1) first stage + * + * this is expected to be called before the program does anything at all. + * + * This performs all initialisation required to support asserts, logging, + * basic I/O (but not the remote console), trap signals... and so on. + * + * After this has been done, the system is in good shape to deal with + * command line options, configuration files and so on. + * + * 2) second stage + * + * this is expected to be called before the program does any serious work. + * + * This performs all initialisation required to support socket I/O, + * thread handling, timers, and so on. + * + * In particular, at this stage the system is set into Pthread Mode, if + * required. No pthreads may be started before this. Up to this point + * the system operates in non-Pthread Mode -- all mutexes are implicitly + * free. + * + * There is one stage of closedown. This is expected to be called last, and + * is passed the exit code. + * + * + */ + +void +qlib_init_first_stage(void) +{ + ; +} + +void +qlib_init_second_stage(int pthreads) +{ + qpt_set_qpthreads_enabled(pthreads); +} + + +void +qexit(int exit_code) +{ + exit (exit_code); +} + + |