faca76a0a42c4e5fe7419109492b093887c45c55
[bertos.git] / kern / signal.h
1 /*!
2  * \file
3  * <!--
4  * Copyright 2004 Develer S.r.l. (http://www.develer.com/)
5  * Copyright 1999,2000,2001 Bernardo Innocenti <bernie@develer.com>
6  * This file is part of DevLib - See README.devlib for information.
7  * -->
8  *
9  * \brief Signal module (public interface).
10  *
11  * \version $Id$
12  *
13  * \author Bernardo Innocenti <bernie@develer.com>
14  */
15
16 /*#*
17  *#* $Log$
18  *#* Revision 1.7  2005/11/04 16:20:02  bernie
19  *#* Fix reference to README.devlib in header.
20  *#*
21  *#* Revision 1.6  2005/04/11 19:10:28  bernie
22  *#* Include top-level headers from cfg/ subdir.
23  *#*
24  *#* Revision 1.5  2004/12/08 08:57:35  bernie
25  *#* Rename sigset_t to sigmask_t.
26  *#*
27  *#* Revision 1.4  2004/08/25 14:12:09  rasky
28  *#* Aggiornato il comment block dei log RCS
29  *#*
30  *#* Revision 1.3  2004/07/30 14:30:27  rasky
31  *#* Resa la sig_signal interrupt safe (con il nuovo scheduler IRQ-safe)
32  *#* Rimossa event_doIntr (ora inutile) e semplificata la logica delle macro con funzioni inline
33  *#*
34  *#* Revision 1.2  2004/06/03 11:27:09  bernie
35  *#* Add dual-license information.
36  *#*
37  *#* Revision 1.1  2004/05/23 17:27:00  bernie
38  *#* Import kern/ subdirectory.
39  *#*/
40
41 #ifndef KERN_SIGNAL_H
42 #define KERN_SIGNAL_H
43
44 #include <cfg/compiler.h>
45
46
47 /* Fwd decl */
48 struct Process;
49
50 /* Inter-process Communication services */
51 sigmask_t sig_check(sigmask_t sigs);
52 void sig_signal(struct Process *proc, sigmask_t sig);
53 sigmask_t sig_wait(sigmask_t sigs);
54
55
56 /*!
57  * \name Signal definitions
58  * \{
59  */
60 #define SIG_USER0    BV(0)  /*!< Free for user usage */
61 #define SIG_USER1    BV(1)  /*!< Free for user usage */
62 #define SIG_USER2    BV(2)  /*!< Free for user usage */
63 #define SIG_USER3    BV(3)  /*!< Free for user usage */
64 #define SIG_SYSTEM4  BV(4)  /*!< Reserved for system use */
65 #define SIG_SYSTEM5  BV(5)  /*!< Reserved for system use */
66 #define SIG_SYSTEM6  BV(6)  /*!< Reserved for system use */
67 #define SIG_SINGLE   BV(7)  /*!< Used to wait for a single event */
68 /*\}*/
69
70 #endif /* KERN_SIGNAL_H */