/usr/include/nih/main.h is in libnih-dev 1.0.3-4ubuntu25.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | /* libnih
*
* Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
* Copyright © 2009 Canonical Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2, as
* published by the Free Software Foundation.
*
* This program 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 this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef NIH_MAIN_H
#define NIH_MAIN_H
#include <nih/macros.h>
#include <nih/list.h>
#include <nih/signal.h>
/**
* NihMainLoopCb:
* @data: pointer given with callback,
* @loop: loop callback structure.
*
* Main loop callbacks are called each time through the main loop to
* perform any additional processing before the process is put back
* to sleep. For anything time critical, timers should be used instead.
*
* The @loop pointer can be used to remove the callback.
**/
typedef struct nih_main_loop_func NihMainLoopFunc;
typedef void (*NihMainLoopCb) (void *data, NihMainLoopFunc *loop);
/**
* NihMainLoopFunc:
* @entry: list header,
* @callback: function called,
* @data: pointer passed to @callback.
*
* This structure contains information about a function that should be
* called once in each main loop iteration.
*
* The callback can be removed by using nih_list_remove() as they are
* held in a list internally.
**/
struct nih_main_loop_func {
NihList entry;
NihMainLoopCb callback;
void *data;
};
/**
* nih_main_init_gettext:
*
* Initialises gettext using the PACKAGE_NAME and LOCALEDIR macros that should
* be set by Autoconf/Automake.
**/
#if ENABLE_NLS
# ifndef LOCALEDIR
# define LOCALEDIR NULL
# endif /* LOCALEDIR */
# define nih_main_init_gettext() \
do { \
setlocale (LC_ALL, ""); \
bindtextdomain (PACKAGE_NAME, LOCALEDIR); \
textdomain (PACKAGE_NAME); \
} while (0)
#else /* ENABLE_NLS */
# define nih_main_init_gettext()
#endif /* ENABLE_NLS */
/**
* nih_main_init:
* @argv0: program name from arguments.
*
* Should be called at the beginning of main() to initialise the various
* global variables exported from this module. Expands both
* nih_main_init_gettext() and nih_main_init_full()
* passing values set by Autoconf AC_INIT and AC_COPYRIGHT macros.
**/
#ifndef PACKAGE_COPYRIGHT
# define PACKAGE_COPYRIGHT NULL
#endif /* PACKAGE_COPYRIGHT */
#define nih_main_init(argv0) \
do { \
nih_main_init_gettext (); \
nih_main_init_full (argv0, PACKAGE_NAME, PACKAGE_VERSION, \
PACKAGE_BUGREPORT, PACKAGE_COPYRIGHT); \
} while (0);
NIH_BEGIN_EXTERN
extern const char *program_name;
extern const char *package_name;
extern const char *package_version;
extern const char *package_copyright;
extern const char *package_bugreport;
extern const char *package_string;
extern NihList *nih_main_loop_functions;
void nih_main_init_full (const char *argv0,
const char *package,
const char *version,
const char *bugreport,
const char *copyright);
void nih_main_suggest_help (void);
void nih_main_version (void);
int nih_main_daemonise (void)
__attribute__ ((warn_unused_result));
void nih_main_set_pidfile (const char *filename);
const char * nih_main_get_pidfile (void);
pid_t nih_main_read_pidfile (void);
int nih_main_write_pidfile (pid_t pid)
__attribute__ ((warn_unused_result));
void nih_main_unlink_pidfile (void);
void nih_main_loop_init (void);
int nih_main_loop (void);
void nih_main_loop_interrupt (void);
void nih_main_loop_exit (int status);
NihMainLoopFunc *nih_main_loop_add_func (const void *parent,
NihMainLoopCb callback, void *data)
__attribute__ ((warn_unused_result));
void nih_main_term_signal (void *data, NihSignal *signal);
NIH_END_EXTERN
#endif /* NIH_MAIN_H */
|