X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Ffatal-signal.h;h=c45c1172892a6717a6a33e0c3ebb07871e8b4a47;hb=b67da66b07a77d9bd67926f83c5ae7aa57f1dba9;hp=7d716da41d1416cacde6db3067eec1966a6d3aa5;hpb=468e00132f76a6d057da1520873e7a468ccae422;p=sliver-openvswitch.git diff --git a/include/fatal-signal.h b/include/fatal-signal.h index 7d716da41..c45c11728 100644 --- a/include/fatal-signal.h +++ b/include/fatal-signal.h @@ -1,14 +1,35 @@ -/* Utility functions for hooking process termination signals. - * - * Hooks registered with this module are called by handlers for signals that - * terminate the process normally (e.g. SIGTERM, SIGINT). They are not called - * for signals that indicate program errors (e.g. SIGFPE, SIGSEGV). They are - * useful for cleanup, such as deleting temporary files. - * - * The hooks are not called upon normal process termination via exit(). Use - * atexit() to hook normal process termination. - * - * These functions will only work properly for single-threaded processes. */ +/* Copyright (c) 2008 The Board of Trustees of The Leland Stanford + * Junior University + * + * We are making the OpenFlow specification and associated documentation + * (Software) available for public use and benefit with the expectation + * that others will use, modify and enhance the Software and contribute + * those enhancements back to the community. However, since we would + * like to make the Software available for broadest use, with as few + * restrictions as possible permission is hereby granted, free of + * charge, to any person obtaining a copy of this Software to deal in + * the Software under the copyrights without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * The name and trademarks of copyright holder(s) may NOT be used in + * advertising or publicity pertaining to the Software or any + * derivatives without specific, written prior permission. + */ #ifndef FATAL_SIGNAL_H #define FATAL_SIGNAL_H 1 @@ -17,6 +38,7 @@ void fatal_signal_add_hook(void (*)(void *aux), void *aux); void fatal_signal_block(void); void fatal_signal_unblock(void); +void fatal_signal_fork(void); /* Convenience functions for unlinking files upon termination. * @@ -25,4 +47,8 @@ void fatal_signal_unblock(void); void fatal_signal_add_file_to_unlink(const char *); void fatal_signal_remove_file_to_unlink(const char *); +/* Interface for other code that catches one of our signals and needs to pass + * it through. */ +void fatal_signal_handler(int sig_nr); + #endif /* fatal-signal.h */