Resa la sig_signal interrupt safe (con il nuovo scheduler IRQ-safe)
[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 devlib/README 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.3  2004/07/30 14:30:27  rasky
19  * Resa la sig_signal interrupt safe (con il nuovo scheduler IRQ-safe)
20  * Rimossa event_doIntr (ora inutile) e semplificata la logica delle macro con funzioni inline
21  *
22  * Revision 1.2  2004/06/03 11:27:09  bernie
23  * Add dual-license information.
24  *
25  * Revision 1.1  2004/05/23 17:27:00  bernie
26  * Import kern/ subdirectory.
27  */
28
29 #ifndef KERN_SIGNAL_H
30 #define KERN_SIGNAL_H
31
32 #include "compiler.h"
33
34
35 /* Fwd decl */
36 struct Process;
37
38 /* Inter-process Communication services */
39 sigset_t sig_check(sigset_t sigs);
40 void sig_signal(struct Process *proc, sigset_t sig);
41 sigset_t sig_wait(sigset_t sigs);
42
43
44 /*!
45  * \name Signal definitions
46  *
47  * \{
48  */
49 #define SIG_USER0    BV(0)  /*!< Free for user usage */
50 #define SIG_USER1    BV(1)  /*!< Free for user usage */
51 #define SIG_USER2    BV(2)  /*!< Free for user usage */
52 #define SIG_USER3    BV(3)  /*!< Free for user usage */
53 #define SIG_SYSTEM4  BV(4)  /*!< Reserved for system use */
54 #define SIG_SYSTEM5  BV(5)  /*!< Reserved for system use */
55 #define SIG_SYSTEM6  BV(6)  /*!< Reserved for system use */
56 #define SIG_SINGLE   BV(7)  /*!< Used to wait for a single event */
57 /*\}*/
58
59 #endif /* KERN_SIGNAL_H */