d2dfa5cf5b9bd560c507617b8b4c9db0e0117c0c
[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.8  2006/07/19 12:56:27  bernie
19  *#* Convert to new Doxygen style.
20  *#*
21  *#* Revision 1.7  2005/11/04 16:20:02  bernie
22  *#* Fix reference to README.devlib in header.
23  *#*
24  *#* Revision 1.6  2005/04/11 19:10:28  bernie
25  *#* Include top-level headers from cfg/ subdir.
26  *#*
27  *#* Revision 1.5  2004/12/08 08:57:35  bernie
28  *#* Rename sigset_t to sigmask_t.
29  *#*
30  *#* Revision 1.4  2004/08/25 14:12:09  rasky
31  *#* Aggiornato il comment block dei log RCS
32  *#*
33  *#* Revision 1.3  2004/07/30 14:30:27  rasky
34  *#* Resa la sig_signal interrupt safe (con il nuovo scheduler IRQ-safe)
35  *#* Rimossa event_doIntr (ora inutile) e semplificata la logica delle macro con funzioni inline
36  *#*
37  *#* Revision 1.2  2004/06/03 11:27:09  bernie
38  *#* Add dual-license information.
39  *#*
40  *#* Revision 1.1  2004/05/23 17:27:00  bernie
41  *#* Import kern/ subdirectory.
42  *#*/
43
44 #ifndef KERN_SIGNAL_H
45 #define KERN_SIGNAL_H
46
47 #include <cfg/compiler.h>
48
49
50 /* Fwd decl */
51 struct Process;
52
53 /* Inter-process Communication services */
54 sigmask_t sig_check(sigmask_t sigs);
55 void sig_signal(struct Process *proc, sigmask_t sig);
56 sigmask_t sig_wait(sigmask_t sigs);
57
58
59 /**
60  * \name Signal definitions
61  * \{
62  */
63 #define SIG_USER0    BV(0)  /**< Free for user usage */
64 #define SIG_USER1    BV(1)  /**< Free for user usage */
65 #define SIG_USER2    BV(2)  /**< Free for user usage */
66 #define SIG_USER3    BV(3)  /**< Free for user usage */
67 #define SIG_SYSTEM4  BV(4)  /**< Reserved for system use */
68 #define SIG_SYSTEM5  BV(5)  /**< Reserved for system use */
69 #define SIG_SYSTEM6  BV(6)  /**< Reserved for system use */
70 #define SIG_SINGLE   BV(7)  /**< Used to wait for a single event */
71 /*\}*/
72
73 #endif /* KERN_SIGNAL_H */