x86: fix a crash on 386
[ajla.git] / newlib / signal.ajla
blob5aab7df38bde8efe35efb747d8480ade330abe95
1 {*
2  * Copyright (C) 2024 Mikulas Patocka
3  *
4  * This file is part of Ajla.
5  *
6  * Ajla is free software: you can redistribute it and/or modify it under the
7  * terms of the GNU General Public License as published by the Free Software
8  * Foundation, either version 3 of the License, or (at your option) any later
9  * version.
10  *
11  * Ajla is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13  * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along with
16  * Ajla. If not, see <https://www.gnu.org/licenses/>.
17  *}
19 unit signal;
21 uses io;
23 type shandle;
24 type stoken;
26 fn signal_handle(w : world, sig : bytes) : (world, shandle, stoken);
27 fn signal_unhandle(w : world, s : shandle) : world;
28 fn signal_prepare(w : world, s : shandle) : (world, stoken);
29 fn signal_wait(w : world, s : shandle, t : stoken) : world;
31 implementation
33 type shandle := internal_type;
34 type stoken := int64;
36 fn signal_handle(w : world, sig : bytes) : (world, shandle, stoken)
38         var s : shandle;
39         var t : stoken;
40         var w2 : world;
41         pcode IO IO_Signal_Handle 3 2 0 =w2 =s =t w sig;
42         return w2, s, t;
45 fn signal_unhandle(w : world, s : shandle) : world
47         var w2 : world;
48         pcode IO IO_Consume_Parameters 1 2 0 =w2 w s;
49         return w2;
52 fn signal_prepare(w : world, s : shandle) : (world, stoken)
54         var t : stoken;
55         var w2 : world;
56         pcode IO IO_Signal_Prepare 2 2 0 =w2 =t w s;
57         return w2, t;
60 fn signal_wait(w : world, s : shandle, t : stoken) : world
62         var w2 : world;
63         pcode IO IO_Signal_Wait 1 3 0 =w2 w s t;
64         return w2;