]> git.proxmox.com Git - ceph.git/blame - ceph/src/global/signal_handler.h
import 15.2.9
[ceph.git] / ceph / src / global / signal_handler.h
CommitLineData
7c673cae
FG
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3/*
4 * Ceph - scalable distributed file system
5 *
6 * Copyright (C) 2011 New Dream Network
7 *
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
12 *
13 */
14
15#ifndef CEPH_GLOBAL_SIGNAL_HANDLER_H
16#define CEPH_GLOBAL_SIGNAL_HANDLER_H
17
18#include <signal.h>
19#include "acconfig.h"
20
21typedef void (*signal_handler_t)(int);
22
adb31ebb
TL
23#ifdef HAVE_SIGDESCR_NP
24# define sig_str(signum) sigdescr_np(signum)
25#elif HAVE_REENTRANT_STRSIGNAL
7c673cae 26# define sig_str(signum) strsignal(signum)
adb31ebb
TL
27#else
28# define sig_str(signum) sys_siglist[signum]
7c673cae
FG
29#endif
30
31void install_sighandler(int signum, signal_handler_t handler, int flags);
32
33// handles SIGHUP
34void sighup_handler(int signum);
35
36// Install the standard Ceph signal handlers
37void install_standard_sighandlers(void);
38
39
40/// initialize async signal handler framework
41void init_async_signal_handler();
42
43/// shutdown async signal handler framework
44void shutdown_async_signal_handler();
45
46/// queue an async signal
47void queue_async_signal(int signum);
48
49/// install a safe, async, callback for the given signal
50void register_async_signal_handler(int signum, signal_handler_t handler);
51void register_async_signal_handler_oneshot(int signum, signal_handler_t handler);
52
53/// uninstall a safe async signal callback
54void unregister_async_signal_handler(int signum, signal_handler_t handler);
55
56#endif