mescc: Support gcc-3.2: puts with newline.
[mes.git] / lib / linux+gnu.c
1 /* -*-comment-start: "//";comment-end:""-*-
2  * Mes --- Maxwell Equations of Software
3  * Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of Mes.
6  *
7  * Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #define SYS_link      0x09
22 #define SYS_kill      0x25
23 #define SYS_rename    0x26
24 #define SYS_mkdir     0x27
25 #define SYS_dup       0x29
26 #define SYS_pipe      0x2a
27 #define SYS_lstat     0x6b
28 #define SYS_fstat     0x6c
29 #define SYS_nanosleep 0xa2
30
31 int
32 link (char const *old_name, char const *new_name)
33 {
34   return _sys_call2 (SYS_link, (int)old_name, (int)new_name);
35 }
36
37 int
38 kill (pid_t pid, int signum)
39 {
40   return _sys_call2 (SYS_kill, (int)pid, (int)signum);
41 }
42
43 int
44 rename (char const *old_name, char const *new_name)
45 {
46   return _sys_call2 (SYS_rename, (int)old_name, (int)new_name);
47 }
48
49 int
50 mkdir (char const *file_name, mode_t mode)
51 {
52   return _sys_call2 (SYS_mkdir, (int)file_name, (int)mode);
53 }
54
55 int
56 dup (int old)
57 {
58   return _sys_call1 (SYS_dup, (int)old);
59 }
60
61 int
62 pipe (int filedes[2])
63 {
64   return _sys_call1 (SYS_pipe, (int)filedes);
65 }
66
67 int
68 lstat (char const *file_name, struct stat *statbuf)
69 {
70   return _sys_call2 (SYS_lstat, (int)file_name, (int)statbuf);
71 }
72
73 int
74 nanosleep (const struct timespec *requested_time,
75            struct timespec *remaining)
76 {
77   return _sys_call2 (SYS_nanosleep, (int)requested_time, (int)remaining);
78 }
79
80 int
81 fstat (int fd, struct stat *statbuf)
82 {
83   return _sys_call2 (SYS_fstat, (int)fd, (int)statbuf);
84 }