mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-10 21:35:24 +01:00
Add mes and mescc-tools-extra
mescc-tools-extra contains two important tools: - cp - chmod mes first builds itself from a mes 0.21 seed as used by guix, and then builds a mes 0.22 and then mes 0.22 using that created mes 0.22. It does /not/ use bootstrap.sh as we don't have a proper shell at this point, it has been manually adapted for kaem.
This commit is contained in:
parent
2706e07556
commit
649d7b68dc
1029 changed files with 120985 additions and 18 deletions
44
sysa/mes-0.22/include/alloca.h
Normal file
44
sysa/mes-0.22/include/alloca.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_ALLOCA_H
|
||||
#define __MES_ALLOCA_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_ALLOCA_H
|
||||
#include_next <alloca.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#if _ALLOCA_UNSIGNED
|
||||
void *alloca (unsigned size);
|
||||
#elif _ALLOCA_CHAR
|
||||
char *alloca (int);
|
||||
#else
|
||||
void *alloca (size_t size);
|
||||
#endif
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_ALLOCA_H
|
||||
56
sysa/mes-0.22/include/ar.h
Normal file
56
sysa/mes-0.22/include/ar.h
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_AR_H
|
||||
#define __MES_AR_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_AR_H
|
||||
#include_next <ar.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
// Taken from GNU C Library 2.2.5
|
||||
|
||||
/* Archive files start with the ARMAG identifying string. Then follows a
|
||||
`struct ar_hdr', and as many bytes of member file data as its `ar_size'
|
||||
member indicates, for each member file. */
|
||||
|
||||
#define ARMAG "!<arch>\n" /* String that begins an archive file. */
|
||||
#define SARMAG 8 /* Size of that string. */
|
||||
|
||||
#define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
|
||||
|
||||
struct ar_hdr
|
||||
{
|
||||
char ar_name[16]; /* Member file name, sometimes / terminated. */
|
||||
char ar_date[12]; /* File date, decimal seconds since Epoch. */
|
||||
char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
|
||||
char ar_mode[8]; /* File mode, in ASCII octal. */
|
||||
char ar_size[10]; /* File size, in ASCII decimal. */
|
||||
char ar_fmag[2]; /* Always contains ARFMAG. */
|
||||
};
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_ARGZ_H
|
||||
40
sysa/mes-0.22/include/argz.h
Normal file
40
sysa/mes-0.22/include/argz.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_ARGZ_H
|
||||
#define __MES_ARGZ_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_ARGZ_H
|
||||
#include_next <argz.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <mes/lib-mini.h>
|
||||
|
||||
size_t __argz_count (char const *argz, size_t len);
|
||||
void __argz_extract (char const *argz, size_t len, char **argv);
|
||||
size_t __argz_extract_count (char const *argz, size_t len, char **argv);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_ARGZ_H
|
||||
34
sysa/mes-0.22/include/assert.h
Normal file
34
sysa/mes-0.22/include/assert.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_ASSERT_H
|
||||
#define __MES_ASSERT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_ASSERT_H
|
||||
#include_next <assert.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
#define assert(x) ((x) ? (void)0 : __assert_fail (#x))
|
||||
void __assert_fail (char *s);
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_ASSERT_H
|
||||
51
sysa/mes-0.22/include/ctype.h
Normal file
51
sysa/mes-0.22/include/ctype.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_CTYPE_H
|
||||
#define __MES_CTYPE_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_CTYPE_H
|
||||
#include_next <ctype.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
#include <endian.h>
|
||||
|
||||
int isalnum (int c);
|
||||
int isalpha (int c);
|
||||
int isascii (int c);
|
||||
int iscntrl (int c);
|
||||
int isdigit (int c);
|
||||
int isgraph (int c);
|
||||
int islower (int c);
|
||||
int isnumber (int c, int base);
|
||||
int isprint (int c);
|
||||
int ispunct (int c);
|
||||
int isspace (int c);
|
||||
int isupper (int c);
|
||||
int isxdigit (int c);
|
||||
int tolower (int c);
|
||||
int toupper (int c);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_CTYPE_H
|
||||
76
sysa/mes-0.22/include/dirent.h
Normal file
76
sysa/mes-0.22/include/dirent.h
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_DIRENT_H
|
||||
#define __MES_DIRENT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_DIRENT_H
|
||||
#include_next <dirent.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <dirstream.h>
|
||||
|
||||
// Taken from GNU C Library 1.06.4, 2.2.5
|
||||
|
||||
/*
|
||||
* POSIX Standard: 5.1.2 Directory Operations <dirent.h>
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
int __getdirentries (int filedes, char *buffer, size_t nbytes, off_t * basep);
|
||||
|
||||
struct dirent
|
||||
{
|
||||
ino_t d_ino;
|
||||
off_t d_off;
|
||||
unsigned short int d_reclen;
|
||||
#if 0
|
||||
unsigned char d_type;
|
||||
#endif
|
||||
char d_name[256]; /* We must not include limits.h! */
|
||||
};
|
||||
|
||||
/* Open a directory stream on NAME.
|
||||
Return a DIR stream on the directory, or NULL if it could not be opened. */
|
||||
DIR *opendir (char const *name);
|
||||
|
||||
/* Close the directory stream DIRP.
|
||||
Return 0 if successful, -1 if not. */
|
||||
int closedir (DIR * dirp);
|
||||
|
||||
/* Read a directory entry from DIRP.
|
||||
Return a pointer to a `struct dirent' describing the entry,
|
||||
or NULL for EOF or error. The storage returned may be overwritten
|
||||
by a later readdir call on the same DIR stream. */
|
||||
struct dirent *readdir (DIR * dirp);
|
||||
|
||||
/* Rewind DIRP to the beginning of the directory. */
|
||||
extern void rewinddir (DIR * dirp);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_DIRENT_H
|
||||
55
sysa/mes-0.22/include/dirstream.h
Normal file
55
sysa/mes-0.22/include/dirstream.h
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
*Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_DIRSTREAM_H
|
||||
#define __MES_DIRSTREAM_H 1
|
||||
|
||||
#if SYSTEM_LIBC && HAVE_DIRSTREAM_H
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_DIRSTREAM_H
|
||||
#include_next <dirstream.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
// Taken from GNU C Library 2.2.5
|
||||
|
||||
/* Directory stream type. */
|
||||
struct __dirstream
|
||||
{
|
||||
int fd; /* File descriptor. */
|
||||
|
||||
char *data; /* Directory block. */
|
||||
size_t allocation; /* Space allocated for the block. */
|
||||
size_t size; /* Total valid data in the block. */
|
||||
size_t offset; /* Current offset into the block. */
|
||||
|
||||
off_t filepos; /* Position of next entry to read. */
|
||||
};
|
||||
|
||||
typedef struct __dirstream DIR;
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_DIRSTREAM_H
|
||||
44
sysa/mes-0.22/include/dlfcn.h
Normal file
44
sysa/mes-0.22/include/dlfcn.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_DLFCN_H
|
||||
#define __MES_DLFCN_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_DLFCN_H
|
||||
#include_next <dlfcn.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#define RTLD_LAZY 0x00001
|
||||
#define RTLD_NOW 0x00002
|
||||
#define RTLD_BINDING_MASK 0x3
|
||||
#define RTLD_NOLOAD 0x00004
|
||||
#define RTLD_DEEPBIND 0x00008
|
||||
#define RTLD_GLOBAL 0x00100
|
||||
#define RTLD_LOCAL 0
|
||||
#define RTLD_NODELETE 0x01000
|
||||
#define RTLD_DEFAULT 0
|
||||
|
||||
void *dlopen (char const *filename, int flags);
|
||||
int dlclose (void *handle);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_DLFCN_H
|
||||
36
sysa/mes-0.22/include/endian.h
Normal file
36
sysa/mes-0.22/include/endian.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_ENDIAN_H
|
||||
#define __MES_ENDIAN_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_ENDIAN_H
|
||||
#include_next <endian.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
#define __LITTLE_ENDIAN 1234
|
||||
#define __BIG_ENDIAN 4321
|
||||
#define __BYTE_ORDER __LITTLE_ENDIAN
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_ENDIAN_H
|
||||
72
sysa/mes-0.22/include/errno.h
Normal file
72
sysa/mes-0.22/include/errno.h
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_ERRNO_H
|
||||
#define __MES_ERRNO_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_ERRNO_H
|
||||
#include_next <errno.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#ifndef __MES_ERRNO_T
|
||||
#define __MES_ERRNO_T 1
|
||||
typedef int error_t;
|
||||
int errno;
|
||||
#endif // !__MES_ERRNO_T
|
||||
|
||||
int errno;
|
||||
#define ENOENT 2
|
||||
#define EINTR 4
|
||||
#define EIO 5
|
||||
#define ENXIO 6
|
||||
#define E2BIG 7
|
||||
#define ENOEXEC 8
|
||||
#define EBADF 9
|
||||
#define ECHILD 10
|
||||
#define EAGAIN 11
|
||||
#define ENOMEM 12
|
||||
#define EACCES 13
|
||||
#define EEXIST 17
|
||||
#define EXDEV 18
|
||||
#define ENOTDIR 20
|
||||
#define EISDIR 21
|
||||
#define EINVAL 22
|
||||
#define EMFILE 24
|
||||
#define ENOSPC 28
|
||||
#define ESPIPE 29
|
||||
#define EPIPE 32
|
||||
#define ERANGE 34
|
||||
|
||||
#define ENAMETOOLONG 36
|
||||
#define ENOSYS 38
|
||||
#define ELOOP 40
|
||||
|
||||
#if !__MESC__
|
||||
//extern char const *const sys_errlist[];
|
||||
extern char *sys_errlist[];
|
||||
extern int sys_nerr;
|
||||
#endif // !__MESC__
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_ERRNO_H
|
||||
70
sysa/mes-0.22/include/fcntl.h
Normal file
70
sysa/mes-0.22/include/fcntl.h
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_FCNTL_H
|
||||
#define __MES_FCNTL_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_FCNTL_H
|
||||
#include_next <fcntl.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
// *INDENT-OFF*
|
||||
#if __linux__
|
||||
#define O_RDONLY 0
|
||||
#define O_WRONLY 1
|
||||
#define O_RDWR 2
|
||||
#define O_CREAT 0x40
|
||||
#define O_EXCL 0x80
|
||||
#define O_TRUNC 0x200
|
||||
#define O_APPEND 0x400
|
||||
#define O_DIRECTORY 0x10000
|
||||
#elif __GNU__
|
||||
#define O_RDONLY 1
|
||||
#define O_WRONLY 2
|
||||
#define O_RDWR 3
|
||||
#define O_CREAT 0x10
|
||||
#define O_APPEND 0x100
|
||||
#define O_TRUNC 0x10000
|
||||
#else
|
||||
#error platform not supported
|
||||
#endif
|
||||
// *INDENT-ON*
|
||||
|
||||
#define FD_CLOEXEC 1
|
||||
|
||||
#define F_DUPFD 0
|
||||
#define F_GETFD 1
|
||||
#define F_SETFD 2
|
||||
#define F_GETFL 3
|
||||
#define F_SETFL 4
|
||||
|
||||
#define creat(file_name, mode) open (file_name, O_WRONLY | O_CREAT | O_TRUNC, mode)
|
||||
int dup (int old);
|
||||
int dup2 (int old, int new);
|
||||
int fcntl (int filedes, int command, ...);
|
||||
int open (char const *s, int flags, ...);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_FCNTL_H
|
||||
28
sysa/mes-0.22/include/features.h
Normal file
28
sysa/mes-0.22/include/features.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_FEATURES_H
|
||||
#define __MES_FEATURES_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_FEATURES_H
|
||||
#include_next <features.h>
|
||||
#endif // (SYSTEM_LIBC)
|
||||
|
||||
#endif // __MES_FEATURES_H
|
||||
34
sysa/mes-0.22/include/float.h
Normal file
34
sysa/mes-0.22/include/float.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_FLOAT_H
|
||||
#define __MES_FLOAT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_FLOAT_H
|
||||
#include_next <float.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#define MIN_EXP -1021
|
||||
#define DBL_MIN_EXP -1021
|
||||
#define LDBL_MIN_EXP -1021
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_FLOAT_H
|
||||
62
sysa/mes-0.22/include/getopt.h
Normal file
62
sysa/mes-0.22/include/getopt.h
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_GETOPT_H
|
||||
#define __MES_GETOPT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_GETOPT_H
|
||||
#include_next <getopt.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
#include <endian.h>
|
||||
int isdigit (int);
|
||||
int isxdigit (int);
|
||||
|
||||
char *optarg;
|
||||
int optind;
|
||||
int opterr;
|
||||
struct option
|
||||
{
|
||||
char const *name;
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
};
|
||||
|
||||
enum _argtype
|
||||
{
|
||||
no_argument,
|
||||
required_argument,
|
||||
optional_argument
|
||||
};
|
||||
|
||||
int getopt (int argc, char *const *argv, char const *options);
|
||||
int getopt_long (int argc, char *const *argv, char const *options,
|
||||
struct option const *long_options, int *opt_index);
|
||||
int getopt_long_only (int argc, char *const *argv, char const *options,
|
||||
struct option const *long_options, int *opt_index);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_GETOPT_H
|
||||
393
sysa/mes-0.22/include/gnu/hurd-types.h
Normal file
393
sysa/mes-0.22/include/gnu/hurd-types.h
Normal file
|
|
@ -0,0 +1,393 @@
|
|||
/* C declarations for Hurd server interfaces
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1998, 1999, 2001, 2002,
|
||||
2010 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU Hurd.
|
||||
|
||||
The GNU Hurd is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
The GNU Hurd is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the GNU Hurd; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef _HURD_TYPES_H
|
||||
#define _HURD_TYPES_H
|
||||
|
||||
#ifndef _FILE_OFFSET_BITS
|
||||
#define _FILE_OFFSET_BITS 32
|
||||
#endif
|
||||
|
||||
#include <time.h> /* For struct timespec. */
|
||||
#include <mach/std_types.h> /* For mach_port_t et al. */
|
||||
#include <mach/message.h> /* For mach_msg_id_t et al. */
|
||||
#include <sys/types.h> /* For pid_t and uid_t. */
|
||||
|
||||
/* A string identifying this release of the GNU Hurd. Our
|
||||
interpretation of the term "release" is that it refers to a set of
|
||||
server interface definitions. A "version" in Posix terminology is
|
||||
a distribution of the Hurd; there may be more than one distribution
|
||||
without changing the release number. */
|
||||
#define HURD_RELEASE "0.0"
|
||||
|
||||
|
||||
/* Simple type declarations */
|
||||
|
||||
/* These types identify certain kinds of ports used by the Hurd. */
|
||||
typedef mach_port_t file_t;
|
||||
typedef mach_port_t fsys_t;
|
||||
typedef mach_port_t io_t;
|
||||
typedef mach_port_t process_t;
|
||||
typedef mach_port_t auth_t;
|
||||
typedef mach_port_t socket_t;
|
||||
typedef mach_port_t pf_t; /* Protocol family */
|
||||
typedef mach_port_t addr_port_t;
|
||||
typedef mach_port_t startup_t;
|
||||
typedef mach_port_t fs_notify_t;
|
||||
typedef mach_port_t exec_startup_t;
|
||||
typedef mach_port_t interrupt_t;
|
||||
typedef mach_port_t proccoll_t;
|
||||
typedef mach_port_t ctty_t;
|
||||
|
||||
#include <errno.h> /* Defines `error_t'. */
|
||||
|
||||
/* These names exist only because of MiG deficiencies.
|
||||
You should not use them in C source; use the normal C types instead. */
|
||||
typedef char *data_t;
|
||||
typedef const char *const_data_t;
|
||||
typedef char string_t [1024];
|
||||
typedef int *intarray_t;
|
||||
typedef const int *const_intarray_t;
|
||||
typedef int *fd_mask_t;
|
||||
typedef const int *const_fd_mask_t;
|
||||
typedef mach_port_t *portarray_t;
|
||||
typedef const mach_port_t *const_portarray_t;
|
||||
typedef pid_t *pidarray_t;
|
||||
typedef const pid_t *const_pidarray_t;
|
||||
typedef uid_t *idarray_t;
|
||||
typedef const uid_t *const_idarray_t;
|
||||
#if 0
|
||||
typedef __loff_t *off_array_t;
|
||||
typedef const __loff_t *const_off_array_t;
|
||||
#endif
|
||||
typedef struct rusage rusage_t;
|
||||
typedef struct flock flock_t;
|
||||
typedef struct utsname utsname_t;
|
||||
#if _FILE_OFFSET_BITS == 64
|
||||
typedef struct stat io_statbuf_t;
|
||||
typedef struct statfs fsys_statfsbuf_t;
|
||||
#else
|
||||
typedef struct stat64 io_statbuf_t;
|
||||
typedef struct statfs64 fsys_statfsbuf_t;
|
||||
#endif
|
||||
typedef struct timespec timespec_t;
|
||||
|
||||
|
||||
/* Parameters and flags in RPC calls */
|
||||
|
||||
/* Many such parameters and flags are also defined in various libc
|
||||
headers. */
|
||||
|
||||
/* Bits for flags in fs.defs:file_exec_paths and exec.defs:exec_* calls: */
|
||||
#define EXEC_NEWTASK 0x00000001 /* Create new task; kill old one. */
|
||||
#define EXEC_SECURE 0x00000002 /* Use secure values of portarray, etc. */
|
||||
#define EXEC_DEFAULTS 0x00000004 /* Use defaults for unspecified ports. */
|
||||
#define EXEC_SIGTRAP 0x00000008 /* Simulate SIGTRAP on startup. */
|
||||
/* This flag is passed through by the exec server but not examined by it. */
|
||||
#define EXEC_STACK_ARGS 0x00000010 /* Use arguments from stack, not RPC. */
|
||||
|
||||
/* Bits for flags in fs.defs:file_set_translator call: */
|
||||
#define FS_TRANS_FORCE 0x00000001 /* Must use translator(no sht circuit) */
|
||||
#define FS_TRANS_EXCL 0x00000002 /* Don't do it if already translated. */
|
||||
#define FS_TRANS_SET 0x00000004 /* Set or clear translator */
|
||||
#define FS_TRANS_ORPHAN 0x00000008 /* Orphan the active translator. */
|
||||
|
||||
/* Values for retry field in fs.defs:dir_lookup call: */
|
||||
enum retry_type
|
||||
{
|
||||
FS_RETRY_NORMAL = 1, /* Retry normally if retry_name is not null. */
|
||||
FS_RETRY_REAUTH = 2, /* Retry after reauthenticating retry port.
|
||||
Even if the retry name is null, a retry
|
||||
is still necessary with this code after the
|
||||
reauthentication is complete. */
|
||||
FS_RETRY_MAGICAL = 3, /* Retry string is magical. */
|
||||
/* "tty" means controlling tty;
|
||||
|
||||
"fd/%u" means file descriptor N;
|
||||
|
||||
"machtype/..." means replace `machtype' with the numbers in decimal
|
||||
returned by the user's kernel as the cpu_type (N) and
|
||||
cpu_subtype (M) (producing N/M/...) and then retry
|
||||
as for FS_RETRY_NORMAL.
|
||||
|
||||
"/..." means retry "...", but starting from the users root directory.
|
||||
|
||||
"pid/..." means replace `pid' with the PID of the current process in %u
|
||||
format and then retry as for FS_RETRY_NORMAL.
|
||||
*/
|
||||
};
|
||||
typedef enum retry_type retry_type;
|
||||
|
||||
/* Types for fs_notify.defs:dir_changed call: */
|
||||
enum dir_changed_type
|
||||
{
|
||||
DIR_CHANGED_NULL, /* Always sent first for sync. */
|
||||
DIR_CHANGED_NEW, /* Specified name has been added. */
|
||||
DIR_CHANGED_UNLINK, /* Specified name has been removed. */
|
||||
DIR_CHANGED_RENUMBER, /* Name has been the target of rename. */
|
||||
};
|
||||
typedef enum dir_changed_type dir_changed_type_t;
|
||||
|
||||
/* Types for fs_notify.defs:file_changed call: */
|
||||
enum file_changed_type
|
||||
{
|
||||
FILE_CHANGED_NULL, /* Always sent first for sync. */
|
||||
FILE_CHANGED_WRITE, /* File data has been written. */
|
||||
FILE_CHANGED_EXTEND, /* File has grown. */
|
||||
FILE_CHANGED_TRUNCATE, /* File has been truncated. */
|
||||
FILE_CHANGED_META, /* Stat information has changed, and none
|
||||
of the previous three apply. Not sent
|
||||
for changes in node times. */
|
||||
};
|
||||
typedef enum file_changed_type file_changed_type_t;
|
||||
|
||||
/* Select types for io.defs:io_select call: */
|
||||
#define SELECT_READ 0x00000001
|
||||
#define SELECT_WRITE 0x00000002
|
||||
#define SELECT_URG 0x00000004
|
||||
|
||||
/* Flags for fsys.defs:fsys_goaway. Also, these flags are sent as the
|
||||
oldtrans_flags in fs.defs:file_set_translator to describe how to
|
||||
terminate the old translator. */
|
||||
#define FSYS_GOAWAY_NOWAIT 0x00000001 /* Return immediately. */
|
||||
#define FSYS_GOAWAY_NOSYNC 0x00000002 /* Don't update physical media. */
|
||||
#define FSYS_GOAWAY_FORCE 0x00000004 /* Go away despite current users. */
|
||||
#define FSYS_GOAWAY_UNLINK 0x00000008 /* Go away only if non-directory. */
|
||||
#define FSYS_GOAWAY_RECURSE 0x00000010 /* Shutdown children too. */
|
||||
|
||||
/* Types of ports the terminal driver can run on top of;
|
||||
used in term.defs:term_get_bottom_type. */
|
||||
enum term_bottom_type
|
||||
{
|
||||
TERM_ON_MACHDEV,
|
||||
TERM_ON_HURDIO,
|
||||
TERM_ON_MASTERPTY,
|
||||
};
|
||||
|
||||
/* Types of storage, as returned by file_get_storage_info.
|
||||
|
||||
STORAGE_DEVICE is a mach device_t (for random access devices)
|
||||
STORAGE_HURD_FILE is a hurd file_t (as if a file were mapped)
|
||||
STORAGE_TASK is a task_t (the storage is in the vm of the task)
|
||||
STORAGE_MEMORY is a memory object port
|
||||
STORAGE_ZERO is a fixed-size constant source of zeros
|
||||
STORAGE_INTERLEAVE is a set of other storage types interleaved at a fixed
|
||||
interval
|
||||
STORAGE_CONCAT is a set of other storage types concatenated end-to-end
|
||||
STORAGE_LAYER is a set of storage types, representing the same address
|
||||
range; all will be written too, and will be read in turn until one
|
||||
succeeds
|
||||
STORAGE_REMAP is a layer on top of another store that remaps its blocks
|
||||
STORAGE_COPY is a memory snapshot of another store
|
||||
STORAGE_NETWORK means that the file is stored elsewhere on the
|
||||
network; all the remaining fields contan type-specific information.
|
||||
STORAGE_OTHER means none of these apply; and should be used when no
|
||||
meaningful answer can be given
|
||||
|
||||
The vectors returned by file_get_storage_info encode each of the above
|
||||
(note that the first int is always the storage type). There are four:
|
||||
ports, ints, offsets (off_t), and data (char); each type of store uses the
|
||||
following entries in each vector:
|
||||
|
||||
-type- -ports- -ints- -offsets- -data- -kids-
|
||||
device DEVICE TY, FL, BS, NR, NL, ML NR * (OFFS, LEN) NL + ML -
|
||||
file FILE TY, FL, BS, NR, NL, ML NR * (OFFS, LEN) NL + ML -
|
||||
memory MEMOBJ TY, FL, BS, NR, NL, ML NR * (OFFS, LEN) NL + ML -
|
||||
task TASK TY, FL, BS, NR, NL, ML NR * (OFFS, LEN) NL + ML -
|
||||
(the data for the above is a name (incl '\0') and a misc data block)
|
||||
null - TY, FL SIZE - -
|
||||
(BS is 1)
|
||||
ileave - TY, FL, IL, NC - - NC
|
||||
(BS is the LCM of its children; SIZE is the minimum of theirs * IL)
|
||||
concat - TY, FL, NC - - NC
|
||||
(BS is the LCM of its children; SIZE is the sum of theirs)
|
||||
layer - TY, FL, NC - - NC
|
||||
(BS is the LCM of its children; SIZE is the minimum of theirs)
|
||||
remap - TY, FL, NR NR * (OFFS, LEN) - 1
|
||||
(BS and SIZE are that of the child)
|
||||
copy - TY, FL, SIZE - DATA -
|
||||
(DATA is preceded by padding to the next page boundary, and is
|
||||
SIZE bytes long itself)
|
||||
|
||||
For ileave, concat, and layer, the children are encoded following the parent.
|
||||
The first int must always be TY.
|
||||
|
||||
key: TY = type code, FL = flags, BS = block size, NR = num runs,
|
||||
NL = name len, ML = misc len, NC = num children,
|
||||
IL = interleave (bytes), SIZE = Size of storage (blocks),
|
||||
LEN = run length (blocks), OFFS = run offset (blocks),
|
||||
|
||||
The NR * (OFFS, LEN) offsets for some of the types is the set of block
|
||||
ranges in the underlying address space that, concatenated, make up the
|
||||
contents of the storage -- for instance, doing file_get_storage_info on a
|
||||
file may return storage of type STORAGE_DEVICE, and the accompanying block
|
||||
ranges are the set of blocks on the given device that correspond to that
|
||||
file. Any OFFS == -1 designates a hole in the address range. Note that
|
||||
the total size (SIZE) for these types is the sum of their LEN's.
|
||||
|
||||
The optional NAME returned by some types (if NL != 0) is a type specific
|
||||
name for the same object referenced by the port also returned. E.g.:
|
||||
device -- The mach device name
|
||||
file -- The file name (unreliable, as the root may not be the same)
|
||||
task -- The pid
|
||||
Unless it is MACH_PORT_NULL, the port should generally be used instead of
|
||||
trying to regenerate it from the associated name, which is intended more for
|
||||
printing messages, etc. */
|
||||
enum file_storage_class
|
||||
{
|
||||
STORAGE_OTHER,
|
||||
STORAGE_DEVICE,
|
||||
STORAGE_HURD_FILE,
|
||||
STORAGE_NETWORK,
|
||||
STORAGE_MEMORY,
|
||||
STORAGE_TASK,
|
||||
STORAGE_ZERO,
|
||||
STORAGE_CONCAT,
|
||||
STORAGE_INTERLEAVE,
|
||||
STORAGE_LAYER,
|
||||
STORAGE_REMAP,
|
||||
STORAGE_COPY,
|
||||
};
|
||||
|
||||
/* Flags for the flags word returned by some types . */
|
||||
#define STORAGE_MUTATED 0x00000001 /* data as stored is munged from file */
|
||||
|
||||
/* Data types */
|
||||
|
||||
#include <mach/task_info.h>
|
||||
#include <mach/thread_info.h>
|
||||
#ifndef THREAD_SCHED_INFO
|
||||
#include <mach/policy.h>
|
||||
#endif
|
||||
|
||||
/* Flags sent in proc_getprocinfo request. */
|
||||
#define PI_FETCH_TASKINFO 0x0001
|
||||
#define PI_FETCH_TASKEVENTS 0x0020
|
||||
#define PI_FETCH_THREADS 0x0002
|
||||
#define PI_FETCH_THREAD_BASIC 0x0004
|
||||
#define PI_FETCH_THREAD_SCHED 0x0008
|
||||
#define PI_FETCH_THREAD_WAITS 0x0010
|
||||
|
||||
struct procinfo
|
||||
{
|
||||
int state;
|
||||
uid_t owner;
|
||||
pid_t ppid;
|
||||
pid_t pgrp;
|
||||
pid_t session;
|
||||
pid_t logincollection;
|
||||
int exitstatus;
|
||||
int sigcode;
|
||||
|
||||
int nthreads; /* size of pi_threadinfos */
|
||||
|
||||
struct task_basic_info taskinfo;
|
||||
struct task_events_info taskevents;
|
||||
#ifdef TASK_SCHED_TIMESHARE_INFO
|
||||
struct policy_timeshare_base timeshare_base_info;
|
||||
#endif
|
||||
struct
|
||||
{
|
||||
int died; /* this thread died in the middle of call */
|
||||
mach_msg_id_t rpc_block; /* thread is blocked on this RPC */
|
||||
struct thread_basic_info pis_bi;
|
||||
#ifdef THREAD_SCHED_INFO
|
||||
struct thread_sched_info pis_si;
|
||||
#else
|
||||
struct policy_infos pis_pi;
|
||||
#endif
|
||||
} threadinfos[0];
|
||||
};
|
||||
typedef int *procinfo_t;
|
||||
typedef const int *const_procinfo_t;
|
||||
|
||||
/* Bits in struct procinfo state: */
|
||||
#define PI_STOPPED 0x00000001 /* Proc server thinks is stopped. */
|
||||
#define PI_EXECED 0x00000002 /* Has called proc_exec. */
|
||||
#define PI_WAITING 0x00000004 /* Process is waiting for child to exit */
|
||||
#define PI_ORPHAN 0x00000008 /* Process group is orphaned. */
|
||||
#define PI_NOMSG 0x00000010 /* Process has no message port. */
|
||||
#define PI_SESSLD 0x00000020 /* Session leader. */
|
||||
#define PI_NOTOWNED 0x0000040 /* Process has no owner. */
|
||||
#define PI_NOPARENT 0x0000080 /* Hasn't identified a parent. */
|
||||
#define PI_ZOMBIE 0x00000100 /* Has no associated task. */
|
||||
#define PI_TRACED 0x00000200 /* Process is being traced */
|
||||
#define PI_GETMSG 0x00000400 /* Process is blocked in proc_getmsgport. */
|
||||
#define PI_LOGINLD 0x00000800 /* Process is leader of login collection */
|
||||
|
||||
|
||||
/* Conventions */
|
||||
|
||||
|
||||
/* st_fstype in struct stat and fsys_stb_type in fsys_statfsbuf is one of: */
|
||||
#define FSTYPE_UFS 0x00000000 /* 4.x BSD Fast File System */
|
||||
#define FSTYPE_NFS 0x00000001 /* Network File System ala Sun */
|
||||
#define FSTYPE_GFS 0x00000002 /* GNU file system */
|
||||
#define FSTYPE_LFS 0x00000003 /* Logging File System ala Sprite */
|
||||
#define FSTYPE_SYSV 0x00000004 /* Old U*x filesystem ala System V */
|
||||
#define FSTYPE_FTP 0x00000005 /* Transparent FTP */
|
||||
#define FSTYPE_TAR 0x00000006 /* Transparent TAR */
|
||||
#define FSTYPE_AR 0x00000007 /* Transparent AR */
|
||||
#define FSTYPE_CPIO 0x00000008 /* Transparent CPIO */
|
||||
#define FSTYPE_MSLOSS 0x00000009 /* MS-DOS */
|
||||
#define FSTYPE_CPM 0x0000000a /* CP/M */
|
||||
#define FSTYPE_HFS 0x0000000b /* Don't ask */
|
||||
#define FSTYPE_DTFS 0x0000000c /* used by desktop to provide more info */
|
||||
#define FSTYPE_GRFS 0x0000000d /* GNU Remote File System */
|
||||
#define FSTYPE_TERM 0x0000000e /* GNU Terminal driver */
|
||||
#define FSTYPE_DEV 0x0000000f /* GNU Special file server */
|
||||
#define FSTYPE_PROC 0x00000010 /* /proc filesystem ala Version 9 */
|
||||
#define FSTYPE_IFSOCK 0x00000011 /* PF_LOCAL socket naming point */
|
||||
#define FSTYPE_AFS 0x00000012 /* Andrew File System 3.xx */
|
||||
#define FSTYPE_DFS 0x00000013 /* Distributed File Sys (OSF) == AFS 4.xx */
|
||||
#define FSTYPE_PROC9 0x00000014 /* /proc filesystem ala Plan 9 */
|
||||
#define FSTYPE_SOCKET 0x00000015 /* io_t that isn't a file but a socket */
|
||||
#define FSTYPE_MISC 0x00000016 /* generic trivfs server */
|
||||
#define FSTYPE_EXT2FS 0x00000017 /* Linux filesystem by Remy Card */
|
||||
#define FSTYPE_HTTP 0x00000018 /* Transparent HTTP */
|
||||
#define FSTYPE_MEMFS 0x00000019 /* In-core filesystem */
|
||||
#define FSTYPE_ISO9660 0x0000001a /* ISO9660 */
|
||||
|
||||
/* Standard port assignments for file_exec_paths and exec_* */
|
||||
enum
|
||||
{
|
||||
INIT_PORT_CWDIR,
|
||||
INIT_PORT_CRDIR,
|
||||
INIT_PORT_AUTH,
|
||||
INIT_PORT_PROC,
|
||||
INIT_PORT_CTTYID,
|
||||
/* If MACH_PORT_NULL is given for the bootstrap port,
|
||||
the bootstrap port of the old task is used. */
|
||||
INIT_PORT_BOOTSTRAP,
|
||||
INIT_PORT_MAX
|
||||
};
|
||||
|
||||
/* Standard ints for file_exec_paths and exec_* */
|
||||
enum
|
||||
{
|
||||
INIT_UMASK,
|
||||
INIT_SIGMASK,
|
||||
INIT_SIGIGN,
|
||||
INIT_SIGPENDING,
|
||||
INIT_TRACEMASK,
|
||||
INIT_INT_MAX,
|
||||
};
|
||||
|
||||
#endif // _HURD_TYPES_H
|
||||
84
sysa/mes-0.22/include/gnu/hurd.h
Normal file
84
sysa/mes-0.22/include/gnu/hurd.h
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_GNU_HURD_H
|
||||
#define __MES_GNU_HURD_H
|
||||
|
||||
#define _GNU_SOURCE 1
|
||||
#define __USE_GNU 1
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
#ifndef _LOFF_T
|
||||
#define _LOFF_T
|
||||
typedef off64_t loff_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/message.h>
|
||||
#include <mach/port.h>
|
||||
|
||||
struct hurd_startup_data
|
||||
{
|
||||
int flags;
|
||||
|
||||
mach_port_t *dtable;
|
||||
mach_msg_type_number_t dtable_count;
|
||||
|
||||
char *argp;
|
||||
int arg_size;
|
||||
|
||||
char *envp;
|
||||
int env_size;
|
||||
|
||||
mach_port_t *portarray;
|
||||
mach_msg_type_number_t portarray_count;
|
||||
|
||||
int *intarray;
|
||||
mach_msg_type_number_t intarray_count;
|
||||
|
||||
vm_address_t stack_base;
|
||||
vm_size_t stack_count;
|
||||
|
||||
vm_address_t phdr;
|
||||
vm_size_t phdr_count;
|
||||
|
||||
vm_address_t user_entry;
|
||||
};
|
||||
|
||||
#define _HURD_DTABLE_MAX 1024
|
||||
extern mach_port_t _hurd_dtable[_HURD_DTABLE_MAX];
|
||||
extern int _hurd_dtable_count;
|
||||
extern struct hurd_startup_data _hurd_startup_data;
|
||||
|
||||
#define _HURD_ARGV_MAX 1000
|
||||
#define _HURD_ENVV_MAX 1000
|
||||
extern size_t __argc;
|
||||
extern char *__argv[_HURD_ARGV_MAX];
|
||||
extern char *__envv[_HURD_ENVV_MAX];
|
||||
|
||||
mach_port_t fd_get (int filedes);
|
||||
error_t fd_write (mach_port_t port, void const *buffer, size_t *size, loff_t offset);
|
||||
error_t fd_read (mach_port_t port, void *buffer, size_t *size, loff_t offset);
|
||||
|
||||
#endif // __MES_GNU_HURD_H
|
||||
144
sysa/mes-0.22/include/gnu/syscall.h
Normal file
144
sysa/mes-0.22/include/gnu/syscall.h
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_GNU_SYSCALL_H
|
||||
#define __MES_GNU_SYSCALL_H
|
||||
|
||||
#define _GNU_SOURCE 1
|
||||
#define __USE_GNU 1
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
#include <mach/port.h>
|
||||
#include <mach/message.h>
|
||||
#include <gnu/hurd.h>
|
||||
#include <gnu/hurd-types.h>
|
||||
|
||||
// mach/mach.defs
|
||||
enum
|
||||
{
|
||||
SYS__task_terminate = 2008,
|
||||
SYS__vm_allocate = 2021,
|
||||
SYS__vm_statistics = 2030,
|
||||
SYS__task_get_special_port = 2058,
|
||||
};
|
||||
|
||||
// hurd/fsys.defs
|
||||
enum
|
||||
{
|
||||
SYS__dir_lookup = 20018,
|
||||
};
|
||||
|
||||
// hurd/io.defs
|
||||
enum
|
||||
{
|
||||
SYS__io_write = 21000,
|
||||
SYS__io_read,
|
||||
};
|
||||
|
||||
// hurd/process.defs
|
||||
enum
|
||||
{
|
||||
SYS__proc_mark_exit = 24025,
|
||||
};
|
||||
|
||||
// hurd/startup.defs
|
||||
enum
|
||||
{
|
||||
SYS__exec_startup_get_info = 30500,
|
||||
};
|
||||
|
||||
extern mach_msg_type_t mach_msg_type_int32;
|
||||
extern mach_msg_type_t mach_msg_type_int64;
|
||||
extern mach_msg_type_long_t mach_msg_type_pointer;
|
||||
|
||||
struct mach_msg
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
};
|
||||
|
||||
struct mach_msg_1
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
mach_msg_type_t type_one; int one;
|
||||
};
|
||||
|
||||
struct mach_msg_2
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
mach_msg_type_t type_one; int one;
|
||||
mach_msg_type_t type_two; int two;
|
||||
};
|
||||
|
||||
struct mach_msg_loff_int
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
mach_msg_type_t type_one; loff_t one;
|
||||
mach_msg_type_t type_two; int two;
|
||||
};
|
||||
|
||||
struct mach_msg_startup_info
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
mach_msg_type_t RetCodeType;
|
||||
kern_return_t RetCode;
|
||||
mach_msg_type_t user_entryType;
|
||||
vm_address_t user_entry;
|
||||
mach_msg_type_t phdrType;
|
||||
vm_address_t phdr;
|
||||
mach_msg_type_t phdr_sizeType;
|
||||
vm_size_t phdr_size;
|
||||
mach_msg_type_t stack_baseType;
|
||||
vm_address_t stack_base;
|
||||
mach_msg_type_t stack_sizeType;
|
||||
vm_size_t stack_size;
|
||||
mach_msg_type_t flagsType;
|
||||
int flags;
|
||||
mach_msg_type_long_t argvType;
|
||||
char *argv;
|
||||
mach_msg_type_long_t envpType;
|
||||
char *envp;
|
||||
mach_msg_type_long_t dtableType;
|
||||
mach_port_t *dtable;
|
||||
mach_msg_type_long_t portarrayType;
|
||||
mach_port_t *portarray;
|
||||
mach_msg_type_long_t intarrayType;
|
||||
int *intarray;
|
||||
};
|
||||
|
||||
kern_return_t __syscall (mach_port_t port, int sys_call);
|
||||
kern_return_t __syscall2 (mach_port_t port, int sys_call, int one, int two);
|
||||
kern_return_t __syscall_get (mach_port_t port, int sys_call, mach_msg_header_t *message, size_t size);
|
||||
kern_return_t __syscall_put (mach_port_t port, int sys_call, mach_msg_header_t *message, size_t size);
|
||||
|
||||
// mach.defs
|
||||
kern_return_t __task_terminate (mach_port_t task);
|
||||
kern_return_t __task_get_special_port (mach_port_t task, int which, mach_port_t *port);
|
||||
kern_return_t __vm_allocate (mach_port_t task, vm_address_t *address, vm_size_t size, boolean_t anywhere);
|
||||
kern_return_t __vm_statistics (mach_port_t task, vm_statistics_data_t *vm_stats);
|
||||
|
||||
// process.defs
|
||||
kern_return_t __proc_mark_exit (mach_port_t process, int one, int two);
|
||||
kern_return_t __exec_startup_get_data (mach_port_t bootstrap, struct hurd_startup_data *data);
|
||||
|
||||
// io.c
|
||||
kern_return_t __io_write (io_t io_object, data_t data, mach_msg_type_number_t size, loff_t offset, vm_size_t *wrote);
|
||||
kern_return_t __io_read (io_t io, data_t *data, mach_msg_type_number_t *read, loff_t offset, vm_size_t size);
|
||||
|
||||
#endif // __MES_GNU_SYSCALL_H
|
||||
45
sysa/mes-0.22/include/grp.h
Normal file
45
sysa/mes-0.22/include/grp.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_GRP_H
|
||||
#define __MES_GRP_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_GRP_H
|
||||
#include_next <grp.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
struct group
|
||||
{
|
||||
char *gr_name;
|
||||
gid_t gr_gid;
|
||||
char **gr_mem;
|
||||
};
|
||||
|
||||
struct group *getgrent (void);
|
||||
void endgrent (void);
|
||||
void setgrent (void);
|
||||
struct group *getgrgid (gid_t gid);
|
||||
struct group *getgrnam (char const *name);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_GRP_H
|
||||
34
sysa/mes-0.22/include/inttypes.h
Normal file
34
sysa/mes-0.22/include/inttypes.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_INTTYPES_H
|
||||
#define __MES_INTTYPES_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_INTTYPES_H
|
||||
#include_next <inttypes.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <stdint.h>
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_INTTYPES_H
|
||||
34
sysa/mes-0.22/include/libgen.h
Normal file
34
sysa/mes-0.22/include/libgen.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_LIBGEN_H
|
||||
#define __MES_LIBGEN_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_LIBGEN_H
|
||||
#include_next <libgen.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
char *dirname (char *);
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_LIBGEN_H
|
||||
41
sysa/mes-0.22/include/limits.h
Normal file
41
sysa/mes-0.22/include/limits.h
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_LIMITS_H
|
||||
#define __MES_LIMITS_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_LIMITS_H
|
||||
#include_next <limits.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define MB_CUR_MAX 1
|
||||
#define NAME_MAX 255
|
||||
#define PATH_MAX 512
|
||||
#define _POSIX_OPEN_MAX 16
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_LIMITS_H
|
||||
31
sysa/mes-0.22/include/linux/syscall.h
Normal file
31
sysa/mes-0.22/include/linux/syscall.h
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_SYSCALL_H
|
||||
#define __MES_SYSCALL_H
|
||||
|
||||
long _sys_call (long sys_call);
|
||||
long _sys_call1 (long sys_call, long one);
|
||||
long _sys_call2 (long sys_call, long one, long two);
|
||||
long _sys_call3 (long sys_call, long one, long two, long three);
|
||||
long _sys_call4 (long sys_call, long one, long two, long three, long four);
|
||||
long _sys_call6 (long sys_call, long one, long two, long three, long four, long five, long six);
|
||||
|
||||
#endif //__MES_SYSCALL_H
|
||||
91
sysa/mes-0.22/include/linux/x86/syscall.h
Normal file
91
sysa/mes-0.22/include/linux/x86/syscall.h
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_LINUX_X86_SYSCALL_H
|
||||
#define __MES_LINUX_X86_SYSCALL_H 1
|
||||
|
||||
// libc-mini
|
||||
// #define SYS_exit 0x01
|
||||
// #define SYS_write 0x04
|
||||
|
||||
// libc
|
||||
#define SYS_fork 0x02
|
||||
#define SYS_read 0x03
|
||||
#define SYS_open 0x05
|
||||
#define SYS_waitpid 0x07
|
||||
#define SYS_wait4 0x72
|
||||
#define SYS_execve 0x0b
|
||||
#define SYS_chmod 0x0f
|
||||
#define SYS_access 0x21
|
||||
#define SYS_brk 0x2d
|
||||
#define SYS_ioctl 0x36
|
||||
#define SYS_fsync 0x76
|
||||
|
||||
// libc+tcc
|
||||
#define SYS_close 0x06
|
||||
#define SYS_time 0x0d
|
||||
#define SYS_lseek 0x13
|
||||
#define SYS_unlink 0x0a
|
||||
#define SYS_rmdir 0x28
|
||||
#define SYS_gettimeofday 0x4e
|
||||
#define SYS_stat 0x6a
|
||||
#define SYS_getcwd 0xb7
|
||||
|
||||
// libc+gnu
|
||||
|
||||
#define SYS_chdir 0x0c
|
||||
#define SYS_link 0x09
|
||||
#define SYS_getpid 0x14
|
||||
#define SYS_getuid 0x18
|
||||
#define SYS_kill 0x25
|
||||
#define SYS_rename 0x26
|
||||
#define SYS_mkdir 0x27
|
||||
#define SYS_dup 0x29
|
||||
#define SYS_pipe 0x2a
|
||||
#define SYS_getgid 0x2f
|
||||
#define SYS_signal 0x30
|
||||
#define SYS_sigaction 0x43
|
||||
#define SYS_rt_sigaction 0xae
|
||||
#define SYS_signal 0x30
|
||||
#define SYS_fcntl 0x37
|
||||
#define SYS_dup2 0x3f
|
||||
#define SYS_getrusage 0x4d
|
||||
#define SYS_lstat 0x6b
|
||||
#define SYS_setitimer 0x68
|
||||
#define SYS_fstat 0x6c
|
||||
#define SYS_nanosleep 0xa2
|
||||
#define SYS_getdents 0x8d
|
||||
#define SYS_clock_gettime 0x109
|
||||
|
||||
// bash
|
||||
#define SYS_setuid 0x17
|
||||
#define SYS_geteuid 0x31
|
||||
#define SYS_getegid 0x32
|
||||
#define SYS_setgid 0x3e
|
||||
#define SYS_getppid 0x40
|
||||
|
||||
// make+POSIX
|
||||
#define SYS_sigprocmask 0x7e
|
||||
|
||||
// tar
|
||||
#define SYS_symlink 0x53
|
||||
#define SYS_readlink 0x55
|
||||
#define SYS_mknod 0x0e
|
||||
|
||||
#endif // __MES_LINUX_X86_SYSCALL_H
|
||||
88
sysa/mes-0.22/include/linux/x86_64/syscall.h
Normal file
88
sysa/mes-0.22/include/linux/x86_64/syscall.h
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_LINUX_X86_64_SYSCALL_H
|
||||
#define __MES_LINUX_X86_64_SYSCALL_H 1
|
||||
|
||||
// libc-mini
|
||||
// #define SYS_write 0x01
|
||||
// #define SYS_exit 0x3c
|
||||
|
||||
// libc
|
||||
#define SYS_fork 0x39
|
||||
#define SYS_read 0x00
|
||||
#define SYS_open 0x02
|
||||
//#define SYS_waitpid
|
||||
#define SYS_wait4 0x3d
|
||||
#define SYS_execve 0x3b
|
||||
#define SYS_chmod 0x5a
|
||||
#define SYS_access 0x15
|
||||
#define SYS_brk 0x0c
|
||||
#define SYS_ioctl 0x10
|
||||
#define SYS_fsync 0x4a
|
||||
|
||||
// libc+tcc
|
||||
#define SYS_close 0x03
|
||||
#define SYS_time 0xc9
|
||||
#define SYS_lseek 0x08
|
||||
#define SYS_unlink 0x57
|
||||
#define SYS_rmdir 0x54
|
||||
#define SYS_gettimeofday 0x60
|
||||
#define SYS_stat 0x04
|
||||
#define SYS_getcwd 0x4f
|
||||
|
||||
// libc+gnu
|
||||
#define SYS_chdir 0x50
|
||||
#define SYS_link 0x56
|
||||
#define SYS_getpid 0x27
|
||||
#define SYS_getuid 0x66
|
||||
#define SYS_kill 0x3e
|
||||
#define SYS_rename 0x52
|
||||
#define SYS_mkdir 0x53
|
||||
#define SYS_dup 0x20
|
||||
#define SYS_pipe 0x16
|
||||
#define SYS_getgid 0x68
|
||||
#define SYS_rt_sigaction 0x0d
|
||||
#define SYS_rt_sigreturn 0x0f
|
||||
#define SYS_fcntl 0x48
|
||||
#define SYS_dup2 0x21
|
||||
#define SYS_getrusage 0x62
|
||||
#define SYS_lstat 0x06
|
||||
#define SYS_setitimer 0x26
|
||||
#define SYS_fstat 0x05
|
||||
#define SYS_nanosleep 0x33
|
||||
#define SYS_getdents 0x4e
|
||||
#define SYS_clock_gettime 0xe4
|
||||
|
||||
// bash
|
||||
#define SYS_setuid 0x69
|
||||
#define SYS_setgid 0x6a
|
||||
#define SYS_geteuid 0x6b
|
||||
#define SYS_getegid 0x6c
|
||||
#define SYS_getppid 0x6e
|
||||
|
||||
// make+SYSTEM_LIBC
|
||||
#define SYS_rt_sigprocmask 0x0e
|
||||
|
||||
// tar
|
||||
#define SYS_symlink 0x58
|
||||
#define SYS_readlink 0x59
|
||||
#define SYS_mknod 0x85
|
||||
|
||||
#endif // __MES_LINUX_X86_64_SYSCALL_H
|
||||
45
sysa/mes-0.22/include/locale.h
Normal file
45
sysa/mes-0.22/include/locale.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_LOCALE_H
|
||||
#define __MES_LOCALE_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_LOCALE_H
|
||||
#include_next <locale.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
// *INDENT-OFF*
|
||||
#ifndef LC_ALL
|
||||
#define LC_CTYPE 0
|
||||
#define LC_NUMERIC 1
|
||||
#define LC_COLLATE 3
|
||||
#define LC_ALL 6
|
||||
#endif
|
||||
// *INDENT-ON*
|
||||
|
||||
char *setlocale (int category, char const *locale);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_LOCALE_H
|
||||
50
sysa/mes-0.22/include/mach/mach-init.h
Normal file
50
sysa/mes-0.22/include/mach/mach-init.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 1993-2016 Free Software Foundation, Inc.
|
||||
* Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** Commentary:
|
||||
Taken from GNU C Library
|
||||
Declarations and macros for the basic Mach things set at startup.
|
||||
*/
|
||||
|
||||
#ifndef _MACH_INIT_H
|
||||
|
||||
#define _MACH_INIT_H 1
|
||||
|
||||
#include <mach/mach_types.h>
|
||||
|
||||
/* Return the current task's task port. */
|
||||
extern mach_port_t mach_task_self (void);
|
||||
extern mach_port_t mach_host_self (void);
|
||||
|
||||
/* Kernel page size. */
|
||||
extern vm_size_t __vm_page_size;
|
||||
extern vm_size_t vm_page_size;
|
||||
|
||||
/* Round the address X up to a page boundary. */
|
||||
#define round_page(x) \
|
||||
((((vm_offset_t) (x) + __vm_page_size - 1) / __vm_page_size) * \
|
||||
__vm_page_size)
|
||||
|
||||
/* Truncate the address X down to a page boundary. */
|
||||
#define trunc_page(x) \
|
||||
((((vm_offset_t) (x)) / __vm_page_size) * __vm_page_size)
|
||||
|
||||
#endif /* mach_init.h */
|
||||
43
sysa/mes-0.22/include/math.h
Normal file
43
sysa/mes-0.22/include/math.h
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_MATH_H
|
||||
#define __MES_MATH_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_MATH_H
|
||||
#include_next <math.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
double atan2 (double y, double x);
|
||||
double ceil (double x);
|
||||
double cos (double x);
|
||||
double exp (double x);
|
||||
double fabs (double number);
|
||||
double floor (double x);
|
||||
double ldexp (double value, int exponent);
|
||||
double log (double x);
|
||||
double modf (double value, double *integer_part);
|
||||
double pow (double base, double power);
|
||||
double sin (double x);
|
||||
double sqrt (double x);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_MATH_H
|
||||
36
sysa/mes-0.22/include/memory.h
Normal file
36
sysa/mes-0.22/include/memory.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_MEMORY_H
|
||||
#define __MES_MEMORY_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_MEMORY_H
|
||||
#include_next <memory.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_MEMORY_H
|
||||
416
sysa/mes-0.22/include/mes/builtins.h
Normal file
416
sysa/mes-0.22/include/mes/builtins.h
Normal file
|
|
@ -0,0 +1,416 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_BUILTINS_H
|
||||
#define __MES_BUILTINS_H
|
||||
|
||||
// src/gc.mes
|
||||
SCM gc_check ();
|
||||
SCM gc ();
|
||||
// src/hash.mes
|
||||
SCM hashq (SCM x, SCM size);
|
||||
SCM hash (SCM x, SCM size);
|
||||
SCM hashq_get_handle (SCM table, SCM key, SCM dflt);
|
||||
SCM hashq_ref (SCM table, SCM key, SCM dflt);
|
||||
SCM hash_ref (SCM table, SCM key, SCM dflt);
|
||||
SCM hashq_set_x (SCM table, SCM key, SCM value);
|
||||
SCM hash_set_x (SCM table, SCM key, SCM value);
|
||||
SCM hash_table_printer (SCM table);
|
||||
SCM make_hash_table (SCM x);
|
||||
// src/lib.mes
|
||||
SCM procedure_name_ (SCM x);
|
||||
SCM display_ (SCM x);
|
||||
SCM display_error_ (SCM x);
|
||||
SCM display_port_ (SCM x, SCM p);
|
||||
SCM write_ (SCM x);
|
||||
SCM write_error_ (SCM x);
|
||||
SCM write_port_ (SCM x, SCM p);
|
||||
SCM exit_ (SCM x);
|
||||
SCM frame_printer (SCM frame);
|
||||
SCM make_stack (SCM stack);
|
||||
SCM stack_length (SCM stack);
|
||||
SCM stack_ref (SCM stack, SCM index);
|
||||
SCM xassq (SCM x, SCM a);
|
||||
SCM memq (SCM x, SCM a);
|
||||
SCM equal2_p (SCM a, SCM b);
|
||||
SCM last_pair (SCM x);
|
||||
SCM pair_p (SCM x);
|
||||
// src/math.mes
|
||||
SCM greater_p (SCM x);
|
||||
SCM less_p (SCM x);
|
||||
SCM is_p (SCM x);
|
||||
SCM minus (SCM x);
|
||||
SCM plus (SCM x);
|
||||
SCM divide (SCM x);
|
||||
SCM modulo (SCM a, SCM b);
|
||||
SCM multiply (SCM x);
|
||||
SCM logand (SCM x);
|
||||
SCM logior (SCM x);
|
||||
SCM lognot (SCM x);
|
||||
SCM logxor (SCM x);
|
||||
SCM ash (SCM n, SCM count);
|
||||
// src/mes.mes
|
||||
SCM make_cell_ (SCM type, SCM car, SCM cdr);
|
||||
SCM type_ (SCM x);
|
||||
SCM car_ (SCM x);
|
||||
SCM cdr_ (SCM x);
|
||||
SCM arity_ (SCM x);
|
||||
SCM cons (SCM x, SCM y);
|
||||
SCM car (SCM x);
|
||||
SCM cdr (SCM x);
|
||||
SCM list (SCM x);
|
||||
SCM null_p (SCM x);
|
||||
SCM eq_p (SCM x, SCM y);
|
||||
SCM values (SCM x);
|
||||
SCM acons (SCM key, SCM value, SCM alist);
|
||||
SCM length (SCM x);
|
||||
SCM error (SCM key, SCM x);
|
||||
SCM append2 (SCM x, SCM y);
|
||||
SCM append_reverse (SCM x, SCM y);
|
||||
SCM reverse_x_ (SCM x, SCM t);
|
||||
SCM pairlis (SCM x, SCM y, SCM a);
|
||||
SCM call (SCM fn, SCM x);
|
||||
SCM assq (SCM x, SCM a);
|
||||
SCM assoc (SCM x, SCM a);
|
||||
SCM set_car_x (SCM x, SCM e);
|
||||
SCM set_cdr_x (SCM x, SCM e);
|
||||
SCM set_env_x (SCM x, SCM e, SCM a);
|
||||
SCM macro_get_handle (SCM name);
|
||||
SCM add_formals (SCM formals, SCM x);
|
||||
SCM eval_apply ();
|
||||
SCM make_builtin_type ();
|
||||
SCM make_builtin (SCM builtin_type, SCM name, SCM arity, SCM function);
|
||||
SCM builtin_arity (SCM builtin);
|
||||
SCM builtin_p (SCM x);
|
||||
SCM builtin_printer (SCM builtin);
|
||||
// CONSTANT cell_nil 1
|
||||
#define cell_nil 1
|
||||
// CONSTANT cell_f 2
|
||||
#define cell_f 2
|
||||
// CONSTANT cell_t 3
|
||||
#define cell_t 3
|
||||
// CONSTANT cell_dot 4
|
||||
#define cell_dot 4
|
||||
// CONSTANT cell_arrow 5
|
||||
#define cell_arrow 5
|
||||
// CONSTANT cell_undefined 6
|
||||
#define cell_undefined 6
|
||||
// CONSTANT cell_unspecified 7
|
||||
#define cell_unspecified 7
|
||||
// CONSTANT cell_closure 8
|
||||
#define cell_closure 8
|
||||
// CONSTANT cell_circular 9
|
||||
#define cell_circular 9
|
||||
// CONSTANT cell_begin 10
|
||||
#define cell_begin 10
|
||||
// CONSTANT cell_call_with_current_continuation 11
|
||||
#define cell_call_with_current_continuation 11
|
||||
// CONSTANT cell_vm_apply 12
|
||||
#define cell_vm_apply 12
|
||||
// CONSTANT cell_vm_apply2 13
|
||||
#define cell_vm_apply2 13
|
||||
// CONSTANT cell_vm_begin 14
|
||||
#define cell_vm_begin 14
|
||||
// CONSTANT cell_vm_begin_eval 15
|
||||
#define cell_vm_begin_eval 15
|
||||
// CONSTANT cell_vm_begin_expand 16
|
||||
#define cell_vm_begin_expand 16
|
||||
// CONSTANT cell_vm_begin_expand_eval 17
|
||||
#define cell_vm_begin_expand_eval 17
|
||||
// CONSTANT cell_vm_begin_expand_macro 18
|
||||
#define cell_vm_begin_expand_macro 18
|
||||
// CONSTANT cell_vm_begin_expand_primitive_load 19
|
||||
#define cell_vm_begin_expand_primitive_load 19
|
||||
// CONSTANT cell_vm_begin_primitive_load 20
|
||||
#define cell_vm_begin_primitive_load 20
|
||||
// CONSTANT cell_vm_begin_read_input_file 21
|
||||
#define cell_vm_begin_read_input_file 21
|
||||
// CONSTANT cell_vm_call_with_current_continuation2 22
|
||||
#define cell_vm_call_with_current_continuation2 22
|
||||
// CONSTANT cell_vm_call_with_values2 23
|
||||
#define cell_vm_call_with_values2 23
|
||||
// CONSTANT cell_vm_eval 24
|
||||
#define cell_vm_eval 24
|
||||
// CONSTANT cell_vm_eval2 25
|
||||
#define cell_vm_eval2 25
|
||||
// CONSTANT cell_vm_eval_check_func 26
|
||||
#define cell_vm_eval_check_func 26
|
||||
// CONSTANT cell_vm_eval_define 27
|
||||
#define cell_vm_eval_define 27
|
||||
// CONSTANT cell_vm_eval_macro_expand_eval 28
|
||||
#define cell_vm_eval_macro_expand_eval 28
|
||||
// CONSTANT cell_vm_eval_macro_expand_expand 29
|
||||
#define cell_vm_eval_macro_expand_expand 29
|
||||
// CONSTANT cell_vm_eval_pmatch_car 30
|
||||
#define cell_vm_eval_pmatch_car 30
|
||||
// CONSTANT cell_vm_eval_pmatch_cdr 31
|
||||
#define cell_vm_eval_pmatch_cdr 31
|
||||
// CONSTANT cell_vm_eval_set_x 32
|
||||
#define cell_vm_eval_set_x 32
|
||||
// CONSTANT cell_vm_evlis 33
|
||||
#define cell_vm_evlis 33
|
||||
// CONSTANT cell_vm_evlis2 34
|
||||
#define cell_vm_evlis2 34
|
||||
// CONSTANT cell_vm_evlis3 35
|
||||
#define cell_vm_evlis3 35
|
||||
// CONSTANT cell_vm_if 36
|
||||
#define cell_vm_if 36
|
||||
// CONSTANT cell_vm_if_expr 37
|
||||
#define cell_vm_if_expr 37
|
||||
// CONSTANT cell_vm_macro_expand 38
|
||||
#define cell_vm_macro_expand 38
|
||||
// CONSTANT cell_vm_macro_expand_car 39
|
||||
#define cell_vm_macro_expand_car 39
|
||||
// CONSTANT cell_vm_macro_expand_cdr 40
|
||||
#define cell_vm_macro_expand_cdr 40
|
||||
// CONSTANT cell_vm_macro_expand_define 41
|
||||
#define cell_vm_macro_expand_define 41
|
||||
// CONSTANT cell_vm_macro_expand_define_macro 42
|
||||
#define cell_vm_macro_expand_define_macro 42
|
||||
// CONSTANT cell_vm_macro_expand_lambda 43
|
||||
#define cell_vm_macro_expand_lambda 43
|
||||
// CONSTANT cell_vm_macro_expand_set_x 44
|
||||
#define cell_vm_macro_expand_set_x 44
|
||||
// CONSTANT cell_vm_return 45
|
||||
#define cell_vm_return 45
|
||||
// CONSTANT cell_symbol_dot 46
|
||||
#define cell_symbol_dot 46
|
||||
// CONSTANT cell_symbol_lambda 47
|
||||
#define cell_symbol_lambda 47
|
||||
// CONSTANT cell_symbol_begin 48
|
||||
#define cell_symbol_begin 48
|
||||
// CONSTANT cell_symbol_if 49
|
||||
#define cell_symbol_if 49
|
||||
// CONSTANT cell_symbol_quote 50
|
||||
#define cell_symbol_quote 50
|
||||
// CONSTANT cell_symbol_define 51
|
||||
#define cell_symbol_define 51
|
||||
// CONSTANT cell_symbol_define_macro 52
|
||||
#define cell_symbol_define_macro 52
|
||||
// CONSTANT cell_symbol_quasiquote 53
|
||||
#define cell_symbol_quasiquote 53
|
||||
// CONSTANT cell_symbol_unquote 54
|
||||
#define cell_symbol_unquote 54
|
||||
// CONSTANT cell_symbol_unquote_splicing 55
|
||||
#define cell_symbol_unquote_splicing 55
|
||||
// CONSTANT cell_symbol_syntax 56
|
||||
#define cell_symbol_syntax 56
|
||||
// CONSTANT cell_symbol_quasisyntax 57
|
||||
#define cell_symbol_quasisyntax 57
|
||||
// CONSTANT cell_symbol_unsyntax 58
|
||||
#define cell_symbol_unsyntax 58
|
||||
// CONSTANT cell_symbol_unsyntax_splicing 59
|
||||
#define cell_symbol_unsyntax_splicing 59
|
||||
// CONSTANT cell_symbol_set_x 60
|
||||
#define cell_symbol_set_x 60
|
||||
// CONSTANT cell_symbol_sc_expand 61
|
||||
#define cell_symbol_sc_expand 61
|
||||
// CONSTANT cell_symbol_macro_expand 62
|
||||
#define cell_symbol_macro_expand 62
|
||||
// CONSTANT cell_symbol_portable_macro_expand 63
|
||||
#define cell_symbol_portable_macro_expand 63
|
||||
// CONSTANT cell_symbol_sc_expander_alist 64
|
||||
#define cell_symbol_sc_expander_alist 64
|
||||
// CONSTANT cell_symbol_call_with_values 65
|
||||
#define cell_symbol_call_with_values 65
|
||||
// CONSTANT cell_symbol_call_with_current_continuation 66
|
||||
#define cell_symbol_call_with_current_continuation 66
|
||||
// CONSTANT cell_symbol_boot_module 67
|
||||
#define cell_symbol_boot_module 67
|
||||
// CONSTANT cell_symbol_current_module 68
|
||||
#define cell_symbol_current_module 68
|
||||
// CONSTANT cell_symbol_primitive_load 69
|
||||
#define cell_symbol_primitive_load 69
|
||||
// CONSTANT cell_symbol_read_input_file 70
|
||||
#define cell_symbol_read_input_file 70
|
||||
// CONSTANT cell_symbol_write 71
|
||||
#define cell_symbol_write 71
|
||||
// CONSTANT cell_symbol_display 72
|
||||
#define cell_symbol_display 72
|
||||
// CONSTANT cell_symbol_car 73
|
||||
#define cell_symbol_car 73
|
||||
// CONSTANT cell_symbol_cdr 74
|
||||
#define cell_symbol_cdr 74
|
||||
// CONSTANT cell_symbol_not_a_number 75
|
||||
#define cell_symbol_not_a_number 75
|
||||
// CONSTANT cell_symbol_not_a_pair 76
|
||||
#define cell_symbol_not_a_pair 76
|
||||
// CONSTANT cell_symbol_system_error 77
|
||||
#define cell_symbol_system_error 77
|
||||
// CONSTANT cell_symbol_throw 78
|
||||
#define cell_symbol_throw 78
|
||||
// CONSTANT cell_symbol_unbound_variable 79
|
||||
#define cell_symbol_unbound_variable 79
|
||||
// CONSTANT cell_symbol_wrong_number_of_args 80
|
||||
#define cell_symbol_wrong_number_of_args 80
|
||||
// CONSTANT cell_symbol_wrong_type_arg 81
|
||||
#define cell_symbol_wrong_type_arg 81
|
||||
// CONSTANT cell_symbol_buckets 82
|
||||
#define cell_symbol_buckets 82
|
||||
// CONSTANT cell_symbol_builtin 83
|
||||
#define cell_symbol_builtin 83
|
||||
// CONSTANT cell_symbol_frame 84
|
||||
#define cell_symbol_frame 84
|
||||
// CONSTANT cell_symbol_hashq_table 85
|
||||
#define cell_symbol_hashq_table 85
|
||||
// CONSTANT cell_symbol_module 86
|
||||
#define cell_symbol_module 86
|
||||
// CONSTANT cell_symbol_procedure 87
|
||||
#define cell_symbol_procedure 87
|
||||
// CONSTANT cell_symbol_record_type 88
|
||||
#define cell_symbol_record_type 88
|
||||
// CONSTANT cell_symbol_size 89
|
||||
#define cell_symbol_size 89
|
||||
// CONSTANT cell_symbol_stack 90
|
||||
#define cell_symbol_stack 90
|
||||
// CONSTANT cell_symbol_argv 91
|
||||
#define cell_symbol_argv 91
|
||||
// CONSTANT cell_symbol_mes_prefix 92
|
||||
#define cell_symbol_mes_prefix 92
|
||||
// CONSTANT cell_symbol_mes_version 93
|
||||
#define cell_symbol_mes_version 93
|
||||
// CONSTANT cell_symbol_internal_time_units_per_second 94
|
||||
#define cell_symbol_internal_time_units_per_second 94
|
||||
// CONSTANT cell_symbol_compiler 95
|
||||
#define cell_symbol_compiler 95
|
||||
// CONSTANT cell_symbol_arch 96
|
||||
#define cell_symbol_arch 96
|
||||
// CONSTANT cell_symbol_pmatch_car 97
|
||||
#define cell_symbol_pmatch_car 97
|
||||
// CONSTANT cell_symbol_pmatch_cdr 98
|
||||
#define cell_symbol_pmatch_cdr 98
|
||||
// CONSTANT cell_type_bytes 99
|
||||
#define cell_type_bytes 99
|
||||
// CONSTANT cell_type_char 100
|
||||
#define cell_type_char 100
|
||||
// CONSTANT cell_type_closure 101
|
||||
#define cell_type_closure 101
|
||||
// CONSTANT cell_type_continuation 102
|
||||
#define cell_type_continuation 102
|
||||
// CONSTANT cell_type_function 103
|
||||
#define cell_type_function 103
|
||||
// CONSTANT cell_type_keyword 104
|
||||
#define cell_type_keyword 104
|
||||
// CONSTANT cell_type_macro 105
|
||||
#define cell_type_macro 105
|
||||
// CONSTANT cell_type_number 106
|
||||
#define cell_type_number 106
|
||||
// CONSTANT cell_type_pair 107
|
||||
#define cell_type_pair 107
|
||||
// CONSTANT cell_type_port 108
|
||||
#define cell_type_port 108
|
||||
// CONSTANT cell_type_ref 109
|
||||
#define cell_type_ref 109
|
||||
// CONSTANT cell_type_special 110
|
||||
#define cell_type_special 110
|
||||
// CONSTANT cell_type_string 111
|
||||
#define cell_type_string 111
|
||||
// CONSTANT cell_type_struct 112
|
||||
#define cell_type_struct 112
|
||||
// CONSTANT cell_type_symbol 113
|
||||
#define cell_type_symbol 113
|
||||
// CONSTANT cell_type_values 114
|
||||
#define cell_type_values 114
|
||||
// CONSTANT cell_type_variable 115
|
||||
#define cell_type_variable 115
|
||||
// CONSTANT cell_type_vector 116
|
||||
#define cell_type_vector 116
|
||||
// CONSTANT cell_type_broken_heart 117
|
||||
#define cell_type_broken_heart 117
|
||||
// CONSTANT cell_symbol_test 118
|
||||
#define cell_symbol_test 118
|
||||
// src/module.mes
|
||||
SCM make_module_type ();
|
||||
SCM module_printer (SCM module);
|
||||
SCM module_variable (SCM module, SCM name);
|
||||
SCM module_ref (SCM module, SCM name);
|
||||
SCM module_define_x (SCM module, SCM name, SCM value);
|
||||
// src/posix.mes
|
||||
SCM peek_byte ();
|
||||
SCM read_byte ();
|
||||
SCM unread_byte (SCM i);
|
||||
SCM peek_char ();
|
||||
SCM read_char (SCM port);
|
||||
SCM unread_char (SCM i);
|
||||
SCM write_char (SCM i);
|
||||
SCM write_byte (SCM x);
|
||||
SCM getenv_ (SCM s);
|
||||
SCM setenv_ (SCM s, SCM v);
|
||||
SCM access_p (SCM file_name, SCM mode);
|
||||
SCM current_input_port ();
|
||||
SCM open_input_file (SCM file_name);
|
||||
SCM open_input_string (SCM string);
|
||||
SCM set_current_input_port (SCM port);
|
||||
SCM current_output_port ();
|
||||
SCM current_error_port ();
|
||||
SCM open_output_file (SCM x);
|
||||
SCM set_current_output_port (SCM port);
|
||||
SCM set_current_error_port (SCM port);
|
||||
SCM force_output (SCM p);
|
||||
SCM chmod_ (SCM file_name, SCM mode);
|
||||
SCM isatty_p (SCM port);
|
||||
SCM primitive_fork ();
|
||||
SCM execl_ (SCM file_name, SCM args);
|
||||
SCM waitpid_ (SCM pid, SCM options);
|
||||
SCM current_time ();
|
||||
SCM gettimeofday_ ();
|
||||
SCM get_internal_run_time ();
|
||||
SCM getcwd_ ();
|
||||
SCM dup_ (SCM port);
|
||||
SCM dup2_ (SCM old, SCM new);
|
||||
SCM delete_file (SCM file_name);
|
||||
// src/reader.mes
|
||||
SCM read_input_file_env_ (SCM e, SCM a);
|
||||
SCM read_input_file_env (SCM a);
|
||||
SCM read_env (SCM a);
|
||||
SCM reader_read_sexp (SCM c, SCM s, SCM a);
|
||||
SCM reader_read_character ();
|
||||
SCM reader_read_binary ();
|
||||
SCM reader_read_octal ();
|
||||
SCM reader_read_hex ();
|
||||
SCM reader_read_string ();
|
||||
// src/strings.mes
|
||||
SCM string_equal_p (SCM a, SCM b);
|
||||
SCM symbol_to_string (SCM symbol);
|
||||
SCM symbol_to_keyword (SCM symbol);
|
||||
SCM keyword_to_string (SCM keyword);
|
||||
SCM string_to_symbol (SCM string);
|
||||
SCM make_symbol (SCM string);
|
||||
SCM string_to_list (SCM string);
|
||||
SCM list_to_string (SCM list);
|
||||
SCM read_string (SCM port);
|
||||
SCM string_append (SCM x);
|
||||
SCM string_length (SCM string);
|
||||
SCM string_ref (SCM str, SCM k);
|
||||
// src/struct.mes
|
||||
SCM make_struct (SCM type, SCM fields, SCM printer);
|
||||
SCM struct_length (SCM x);
|
||||
SCM struct_ref (SCM x, SCM i);
|
||||
SCM struct_set_x (SCM x, SCM i, SCM e);
|
||||
// src/vector.mes
|
||||
SCM make_vector_ (SCM n);
|
||||
SCM vector_length (SCM x);
|
||||
SCM vector_ref (SCM x, SCM i);
|
||||
SCM vector_entry (SCM x);
|
||||
SCM vector_set_x (SCM x, SCM i, SCM e);
|
||||
SCM list_to_vector (SCM x);
|
||||
SCM vector_to_list (SCM v);
|
||||
|
||||
#endif //__MES_BUILTINS_H
|
||||
324
sysa/mes-0.22/include/mes/constants.h
Normal file
324
sysa/mes-0.22/include/mes/constants.h
Normal file
|
|
@ -0,0 +1,324 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_CONSTANTS_H
|
||||
#define __MES_CONSTANTS_H
|
||||
|
||||
/* Symbols */
|
||||
|
||||
// CONSTANT cell_nil 1
|
||||
#define cell_nil 1
|
||||
// CONSTANT cell_f 2
|
||||
#define cell_f 2
|
||||
// CONSTANT cell_t 3
|
||||
#define cell_t 3
|
||||
// CONSTANT cell_dot 4
|
||||
#define cell_dot 4
|
||||
// CONSTANT cell_arrow 5
|
||||
#define cell_arrow 5
|
||||
// CONSTANT cell_undefined 6
|
||||
#define cell_undefined 6
|
||||
// CONSTANT cell_unspecified 7
|
||||
#define cell_unspecified 7
|
||||
// CONSTANT cell_closure 8
|
||||
#define cell_closure 8
|
||||
// CONSTANT cell_circular 9
|
||||
#define cell_circular 9
|
||||
// CONSTANT cell_begin 10
|
||||
#define cell_begin 10
|
||||
// CONSTANT cell_call_with_current_continuation 11
|
||||
#define cell_call_with_current_continuation 11
|
||||
|
||||
// CONSTANT cell_vm_apply 12
|
||||
#define cell_vm_apply 12
|
||||
// CONSTANT cell_vm_apply2 13
|
||||
#define cell_vm_apply2 13
|
||||
// CONSTANT cell_vm_begin 14
|
||||
#define cell_vm_begin 14
|
||||
// CONSTANT cell_vm_begin_eval 15
|
||||
#define cell_vm_begin_eval 15
|
||||
// CONSTANT cell_vm_begin_expand 16
|
||||
#define cell_vm_begin_expand 16
|
||||
// CONSTANT cell_vm_begin_expand_eval 17
|
||||
#define cell_vm_begin_expand_eval 17
|
||||
// CONSTANT cell_vm_begin_expand_macro 18
|
||||
#define cell_vm_begin_expand_macro 18
|
||||
// CONSTANT cell_vm_begin_expand_primitive_load 19
|
||||
#define cell_vm_begin_expand_primitive_load 19
|
||||
// CONSTANT cell_vm_begin_primitive_load 20
|
||||
#define cell_vm_begin_primitive_load 20
|
||||
// CONSTANT cell_vm_begin_read_input_file 21
|
||||
#define cell_vm_begin_read_input_file 21
|
||||
// CONSTANT cell_vm_call_with_current_continuation2 22
|
||||
#define cell_vm_call_with_current_continuation2 22
|
||||
// CONSTANT cell_vm_call_with_values2 23
|
||||
#define cell_vm_call_with_values2 23
|
||||
// CONSTANT cell_vm_eval 24
|
||||
#define cell_vm_eval 24
|
||||
// CONSTANT cell_vm_eval2 25
|
||||
#define cell_vm_eval2 25
|
||||
// CONSTANT cell_vm_eval_check_func 26
|
||||
#define cell_vm_eval_check_func 26
|
||||
// CONSTANT cell_vm_eval_define 27
|
||||
#define cell_vm_eval_define 27
|
||||
// CONSTANT cell_vm_eval_macro_expand_eval 28
|
||||
#define cell_vm_eval_macro_expand_eval 28
|
||||
// CONSTANT cell_vm_eval_macro_expand_expand 29
|
||||
#define cell_vm_eval_macro_expand_expand 29
|
||||
// CONSTANT cell_vm_eval_pmatch_car 30
|
||||
#define cell_vm_eval_pmatch_car 30
|
||||
// CONSTANT cell_vm_eval_pmatch_cdr 31
|
||||
#define cell_vm_eval_pmatch_cdr 31
|
||||
// CONSTANT cell_vm_eval_set_x 32
|
||||
#define cell_vm_eval_set_x 32
|
||||
// CONSTANT cell_vm_evlis 33
|
||||
#define cell_vm_evlis 33
|
||||
// CONSTANT cell_vm_evlis2 34
|
||||
#define cell_vm_evlis2 34
|
||||
// CONSTANT cell_vm_evlis3 35
|
||||
#define cell_vm_evlis3 35
|
||||
// CONSTANT cell_vm_if 36
|
||||
#define cell_vm_if 36
|
||||
// CONSTANT cell_vm_if_expr 37
|
||||
#define cell_vm_if_expr 37
|
||||
// CONSTANT cell_vm_macro_expand 38
|
||||
#define cell_vm_macro_expand 38
|
||||
// CONSTANT cell_vm_macro_expand_car 39
|
||||
#define cell_vm_macro_expand_car 39
|
||||
// CONSTANT cell_vm_macro_expand_cdr 40
|
||||
#define cell_vm_macro_expand_cdr 40
|
||||
// CONSTANT cell_vm_macro_expand_define 41
|
||||
#define cell_vm_macro_expand_define 41
|
||||
// CONSTANT cell_vm_macro_expand_define_macro 42
|
||||
#define cell_vm_macro_expand_define_macro 42
|
||||
// CONSTANT cell_vm_macro_expand_lambda 43
|
||||
#define cell_vm_macro_expand_lambda 43
|
||||
// CONSTANT cell_vm_macro_expand_set_x 44
|
||||
#define cell_vm_macro_expand_set_x 44
|
||||
// CONSTANT cell_vm_return 45
|
||||
#define cell_vm_return 45
|
||||
|
||||
// CONSTANT cell_symbol_dot 46
|
||||
#define cell_symbol_dot 46
|
||||
// CONSTANT cell_symbol_lambda 47
|
||||
#define cell_symbol_lambda 47
|
||||
// CONSTANT cell_symbol_begin 48
|
||||
#define cell_symbol_begin 48
|
||||
// CONSTANT cell_symbol_if 49
|
||||
#define cell_symbol_if 49
|
||||
// CONSTANT cell_symbol_quote 50
|
||||
#define cell_symbol_quote 50
|
||||
// CONSTANT cell_symbol_define 51
|
||||
#define cell_symbol_define 51
|
||||
// CONSTANT cell_symbol_define_macro 52
|
||||
#define cell_symbol_define_macro 52
|
||||
|
||||
// CONSTANT cell_symbol_quasiquote 53
|
||||
#define cell_symbol_quasiquote 53
|
||||
// CONSTANT cell_symbol_unquote 54
|
||||
#define cell_symbol_unquote 54
|
||||
// CONSTANT cell_symbol_unquote_splicing 55
|
||||
#define cell_symbol_unquote_splicing 55
|
||||
// CONSTANT cell_symbol_syntax 56
|
||||
#define cell_symbol_syntax 56
|
||||
// CONSTANT cell_symbol_quasisyntax 57
|
||||
#define cell_symbol_quasisyntax 57
|
||||
// CONSTANT cell_symbol_unsyntax 58
|
||||
#define cell_symbol_unsyntax 58
|
||||
// CONSTANT cell_symbol_unsyntax_splicing 59
|
||||
#define cell_symbol_unsyntax_splicing 59
|
||||
|
||||
// CONSTANT cell_symbol_set_x 60
|
||||
#define cell_symbol_set_x 60
|
||||
|
||||
// CONSTANT cell_symbol_sc_expand 61
|
||||
#define cell_symbol_sc_expand 61
|
||||
// CONSTANT cell_symbol_macro_expand 62
|
||||
#define cell_symbol_macro_expand 62
|
||||
// CONSTANT cell_symbol_portable_macro_expand 63
|
||||
#define cell_symbol_portable_macro_expand 63
|
||||
// CONSTANT cell_symbol_sc_expander_alist 64
|
||||
#define cell_symbol_sc_expander_alist 64
|
||||
|
||||
// CONSTANT cell_symbol_call_with_values 65
|
||||
#define cell_symbol_call_with_values 65
|
||||
// CONSTANT cell_symbol_call_with_current_continuation 66
|
||||
#define cell_symbol_call_with_current_continuation 66
|
||||
// CONSTANT cell_symbol_boot_module 67
|
||||
#define cell_symbol_boot_module 67
|
||||
// CONSTANT cell_symbol_current_module 68
|
||||
#define cell_symbol_current_module 68
|
||||
// CONSTANT cell_symbol_primitive_load 69
|
||||
#define cell_symbol_primitive_load 69
|
||||
// CONSTANT cell_symbol_read_input_file 70
|
||||
#define cell_symbol_read_input_file 70
|
||||
// CONSTANT cell_symbol_write 71
|
||||
#define cell_symbol_write 71
|
||||
// CONSTANT cell_symbol_display 72
|
||||
#define cell_symbol_display 72
|
||||
|
||||
// CONSTANT cell_symbol_car 73
|
||||
#define cell_symbol_car 73
|
||||
// CONSTANT cell_symbol_cdr 74
|
||||
#define cell_symbol_cdr 74
|
||||
// CONSTANT cell_symbol_not_a_number 75
|
||||
#define cell_symbol_not_a_number 75
|
||||
// CONSTANT cell_symbol_not_a_pair 76
|
||||
#define cell_symbol_not_a_pair 76
|
||||
// CONSTANT cell_symbol_system_error 77
|
||||
#define cell_symbol_system_error 77
|
||||
// CONSTANT cell_symbol_throw 78
|
||||
#define cell_symbol_throw 78
|
||||
// CONSTANT cell_symbol_unbound_variable 79
|
||||
#define cell_symbol_unbound_variable 79
|
||||
// CONSTANT cell_symbol_wrong_number_of_args 80
|
||||
#define cell_symbol_wrong_number_of_args 80
|
||||
// CONSTANT cell_symbol_wrong_type_arg 81
|
||||
#define cell_symbol_wrong_type_arg 81
|
||||
|
||||
// CONSTANT cell_symbol_buckets 82
|
||||
#define cell_symbol_buckets 82
|
||||
// CONSTANT cell_symbol_builtin 83
|
||||
#define cell_symbol_builtin 83
|
||||
// CONSTANT cell_symbol_frame 84
|
||||
#define cell_symbol_frame 84
|
||||
// CONSTANT cell_symbol_hashq_table 85
|
||||
#define cell_symbol_hashq_table 85
|
||||
// CONSTANT cell_symbol_module 86
|
||||
#define cell_symbol_module 86
|
||||
// CONSTANT cell_symbol_procedure 87
|
||||
#define cell_symbol_procedure 87
|
||||
// CONSTANT cell_symbol_record_type 88
|
||||
#define cell_symbol_record_type 88
|
||||
// CONSTANT cell_symbol_size 89
|
||||
#define cell_symbol_size 89
|
||||
// CONSTANT cell_symbol_stack 90
|
||||
#define cell_symbol_stack 90
|
||||
|
||||
// CONSTANT cell_symbol_argv 91
|
||||
#define cell_symbol_argv 91
|
||||
// CONSTANT cell_symbol_mes_datadir 92
|
||||
#define cell_symbol_mes_datadir 92
|
||||
// CONSTANT cell_symbol_mes_version 93
|
||||
#define cell_symbol_mes_version 93
|
||||
|
||||
// CONSTANT cell_symbol_internal_time_units_per_second 94
|
||||
#define cell_symbol_internal_time_units_per_second 94
|
||||
// CONSTANT cell_symbol_compiler 95
|
||||
#define cell_symbol_compiler 95
|
||||
// CONSTANT cell_symbol_arch 96
|
||||
#define cell_symbol_arch 96
|
||||
// CONSTANT cell_symbol_pmatch_car 97
|
||||
#define cell_symbol_pmatch_car 97
|
||||
// CONSTANT cell_symbol_pmatch_cdr 98
|
||||
#define cell_symbol_pmatch_cdr 98
|
||||
|
||||
// CONSTANT cell_type_bytes 99
|
||||
#define cell_type_bytes 99
|
||||
// CONSTANT cell_type_char 100
|
||||
#define cell_type_char 100
|
||||
// CONSTANT cell_type_closure 101
|
||||
#define cell_type_closure 101
|
||||
// CONSTANT cell_type_continuation 102
|
||||
#define cell_type_continuation 102
|
||||
// CONSTANT cell_type_function 103
|
||||
#define cell_type_function 103
|
||||
// CONSTANT cell_type_keyword 104
|
||||
#define cell_type_keyword 104
|
||||
// CONSTANT cell_type_macro 105
|
||||
#define cell_type_macro 105
|
||||
// CONSTANT cell_type_number 106
|
||||
#define cell_type_number 106
|
||||
// CONSTANT cell_type_pair 107
|
||||
#define cell_type_pair 107
|
||||
// CONSTANT cell_type_port 108
|
||||
#define cell_type_port 108
|
||||
// CONSTANT cell_type_ref 109
|
||||
#define cell_type_ref 109
|
||||
// CONSTANT cell_type_special 110
|
||||
#define cell_type_special 110
|
||||
// CONSTANT cell_type_string 111
|
||||
#define cell_type_string 111
|
||||
// CONSTANT cell_type_struct 112
|
||||
#define cell_type_struct 112
|
||||
// CONSTANT cell_type_symbol 113
|
||||
#define cell_type_symbol 113
|
||||
// CONSTANT cell_type_values 114
|
||||
#define cell_type_values 114
|
||||
// CONSTANT cell_type_variable 115
|
||||
#define cell_type_variable 115
|
||||
// CONSTANT cell_type_vector 116
|
||||
#define cell_type_vector 116
|
||||
// CONSTANT cell_type_broken_heart 117
|
||||
#define cell_type_broken_heart 117
|
||||
|
||||
// CONSTANT cell_test 118
|
||||
#define cell_test 118
|
||||
|
||||
/* Cell types */
|
||||
|
||||
// CONSTANT TBYTES 0
|
||||
#define TBYTES 0
|
||||
// CONSTANT TCHAR 1
|
||||
#define TCHAR 1
|
||||
// CONSTANT TCLOSURE 2
|
||||
#define TCLOSURE 2
|
||||
// CONSTANT TCONTINUATION 3
|
||||
#define TCONTINUATION 3
|
||||
// CONSTANT TKEYWORD 4
|
||||
#define TKEYWORD 4
|
||||
// CONSTANT TMACRO 5
|
||||
#define TMACRO 5
|
||||
// CONSTANT TNUMBER 6
|
||||
#define TNUMBER 6
|
||||
// CONSTANT TPAIR 7
|
||||
#define TPAIR 7
|
||||
// CONSTANT TPORT 8
|
||||
#define TPORT 8
|
||||
// CONSTANT TREF 9
|
||||
#define TREF 9
|
||||
// CONSTANT TSPECIAL 10
|
||||
#define TSPECIAL 10
|
||||
// CONSTANT TSTRING 11
|
||||
#define TSTRING 11
|
||||
// CONSTANT TSTRUCT 12
|
||||
#define TSTRUCT 12
|
||||
// CONSTANT TSYMBOL 13
|
||||
#define TSYMBOL 13
|
||||
// CONSTANT TVALUES 14
|
||||
#define TVALUES 14
|
||||
// CONSTANT TVARIABLE 15
|
||||
#define TVARIABLE 15
|
||||
// CONSTANT TVECTOR 16
|
||||
#define TVECTOR 16
|
||||
// CONSTANT TBROKEN_HEART 17
|
||||
#define TBROKEN_HEART 17
|
||||
|
||||
/* Struct types */
|
||||
|
||||
// CONSTANT STRUCT_TYPE 0
|
||||
#define STRUCT_TYPE 0
|
||||
// CONSTANT STRUCT_PRINTER 1
|
||||
#define STRUCT_PRINTER 1
|
||||
|
||||
#define FRAME_SIZE 5
|
||||
#define FRAME_PROCEDURE 4
|
||||
|
||||
#endif //__MES_CONSTANTS_H
|
||||
98
sysa/mes-0.22/include/mes/lib-mini.h
Normal file
98
sysa/mes-0.22/include/mes/lib-mini.h
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_LIB_MINI_H
|
||||
#define __MES_LIB_MINI_H
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include <mes/config.h>
|
||||
#endif
|
||||
|
||||
// CONSTANT STDIN 0
|
||||
#ifndef STDIN
|
||||
#define STDIN 0
|
||||
#endif
|
||||
|
||||
// CONSTANT STDOUT 1
|
||||
#ifndef STDOUT
|
||||
#define STDOUT 1
|
||||
#endif
|
||||
|
||||
// CONSTANT STDERR 2
|
||||
#ifndef STDERR
|
||||
#define STDERR 2
|
||||
#endif
|
||||
|
||||
char **environ;
|
||||
int __stdin;
|
||||
int __stdout;
|
||||
int __stderr;
|
||||
|
||||
int eputs (char const *s);
|
||||
int puts (char const *s);
|
||||
int oputs (char const *s);
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#else //!SYSTEM_LIBC
|
||||
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
#ifndef __SIZE_T
|
||||
#define __SIZE_T
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
#undef size_t
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _SSIZE_T
|
||||
#define _SSIZE_T
|
||||
#ifndef __SSIZE_T
|
||||
#define __SSIZE_T
|
||||
#ifndef __MES_SSIZE_T
|
||||
#define __MES_SSIZE_T
|
||||
#undef ssize_t
|
||||
#if __i386__
|
||||
typedef int ssize_t;
|
||||
#else
|
||||
typedef long ssize_t;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __MES_ERRNO_T
|
||||
#define __MES_ERRNO_T 1
|
||||
typedef int error_t;
|
||||
int errno;
|
||||
#endif // !__MES_ERRNO_T
|
||||
|
||||
size_t strlen (char const *s);
|
||||
ssize_t _write ();
|
||||
ssize_t write (int filedes, void const *buffer, size_t size);
|
||||
#endif // !SYSTEM_LIBC
|
||||
|
||||
#endif //__MES_LIB_MINI_H
|
||||
69
sysa/mes-0.22/include/mes/lib.h
Normal file
69
sysa/mes-0.22/include/mes/lib.h
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_LIB_H
|
||||
#define __MES_LIB_H
|
||||
|
||||
#include <mes/lib-mini.h>
|
||||
|
||||
int __mes_debug ();
|
||||
void __ungetc_init ();
|
||||
void __ungetc_clear (int filedes);
|
||||
void __ungetc_set (int filedes, int c);
|
||||
int __ungetc_p (int filedes);
|
||||
double abtod (char const **p, int base);
|
||||
long abtol (char const **p, int base);
|
||||
char *dtoab (double number, int base, int signed_p);
|
||||
char *itoa (int number);
|
||||
char *ltoa (long number);
|
||||
char *ltoab (long x, int base);
|
||||
char *ntoab (long number, int base, int signed_p);
|
||||
char *ultoa (unsigned long number);
|
||||
char *utoa (unsigned number);
|
||||
int eputc (int c);
|
||||
int fdgetc (int fd);
|
||||
char * fdgets (char *s, int count, int fd);
|
||||
int fdputc (int c, int fd);
|
||||
int fdputs (char const *s, int fd);
|
||||
int fdungetc (int c, int fd);
|
||||
char * _getcwd (char *buffer, size_t size);
|
||||
int isnumber (int c, int base);
|
||||
int mes_open (char const *file_name, int flags, int mask);
|
||||
int _open2 (char const *file_name, int flags);
|
||||
int _open3 (char const *file_name, int flags, int mask);
|
||||
int oputc (int c);
|
||||
int oputs (char const *s);
|
||||
char *search_path (char const *file_name);
|
||||
ssize_t _read (int fd, void *buffer, size_t size);
|
||||
|
||||
extern char *__brk;
|
||||
extern void (*__call_at_exit) (void);
|
||||
|
||||
#define __FILEDES_MAX 512
|
||||
|
||||
#if !SYSTEM_LIBC
|
||||
void __assert_fail (char *s);
|
||||
ssize_t __buffered_read (int filedes, void *buffer, size_t size);
|
||||
size_t __buffered_read_clear (int filedes);
|
||||
void _exit (int code);
|
||||
long brk (void *addr);
|
||||
#endif // !SYSTEM_LIBC
|
||||
|
||||
#endif //__MES_LIB_H
|
||||
80
sysa/mes-0.22/include/mes/macros.h
Normal file
80
sysa/mes-0.22/include/mes/macros.h
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_MACROS_H
|
||||
#define __MES_MACROS_H
|
||||
|
||||
#define TYPE(x) g_cells[x].type
|
||||
#define CAR(x) g_cells[x].car
|
||||
#define CDR(x) g_cells[x].cdr
|
||||
|
||||
#define NTYPE(x) g_news[x].type
|
||||
#define NCAR(x) g_news[x].car
|
||||
#define NCDR(x) g_news[x].cdr
|
||||
|
||||
#define BYTES(x) g_cells[x].car
|
||||
#define LENGTH(x) g_cells[x].car
|
||||
#define REF(x) g_cells[x].car
|
||||
#define START(x) (g_cells[x].car >> 16)
|
||||
#define LEN(x) (g_cells[x].car & 0xffff)
|
||||
#define VARIABLE(x) g_cells[x].car
|
||||
|
||||
#define CLOSURE(x) g_cells[x].cdr
|
||||
#define CONTINUATION(x) g_cells[x].cdr
|
||||
|
||||
#define CBYTES(x) (char*)&g_cells[x].cdr
|
||||
#define CSTRING_STRUCT(x) (char*)&g_cells[x.cdr].cdr
|
||||
|
||||
#define MACRO(x) g_cells[x].car
|
||||
#define NAME(x) g_cells[x].cdr
|
||||
#define PORT(x) g_cells[x].car
|
||||
#define STRING(x) g_cells[x].cdr
|
||||
#define STRUCT(x) g_cells[x].cdr
|
||||
#define VALUE(x) g_cells[x].cdr
|
||||
#define VECTOR(x) g_cells[x].cdr
|
||||
|
||||
#define NLENGTH(x) g_news[x].car
|
||||
#define NCBYTES(x) (char*)&g_news[x].cdr
|
||||
#define NVALUE(x) g_news[x].cdr
|
||||
#define NSTRING(x) g_news[x].cdr
|
||||
#define NVECTOR(x) g_news[x].cdr
|
||||
|
||||
#define CSTRING(x) CBYTES (STRING (x))
|
||||
|
||||
#define MAKE_BYTES0(x) make_bytes (x, strlen (x))
|
||||
#define NAME_SYMBOL(symbol,name) {size_t s = strlen (name); CAR (symbol) = s; CDR (symbol) = make_bytes (name, s);}
|
||||
|
||||
#define MAKE_CHAR(n) make_cell__ (TCHAR, 0, n)
|
||||
#define MAKE_CONTINUATION(n) make_cell__ (TCONTINUATION, n, g_stack)
|
||||
#define MAKE_NUMBER(n) make_cell__ (TNUMBER, 0, (long)n)
|
||||
#define MAKE_REF(n) make_cell__ (TREF, n, 0)
|
||||
#define MAKE_STRING0(x) make_string (x, strlen (x))
|
||||
#define MAKE_STRING_PORT(x) make_cell__ (TPORT, -length__ (g_ports) - 2, x)
|
||||
#define MAKE_MACRO(name, x) make_cell__ (TMACRO, x, STRING (name))
|
||||
|
||||
#define CAAR(x) CAR (CAR (x))
|
||||
#define CADR(x) CAR (CDR (x))
|
||||
#define CDAR(x) CDR (CAR (x))
|
||||
#define CDDR(x) CDR (CDR (x))
|
||||
#define CADAR(x) CAR (CDR (CAR (x)))
|
||||
#define CADDR(x) CAR (CDR (CDR (x)))
|
||||
#define CDADAR(x) CAR (CDR (CAR (CDR (x))))
|
||||
|
||||
#endif //__MES_MACROS_H
|
||||
106
sysa/mes-0.22/include/mes/mes.h
Normal file
106
sysa/mes-0.22/include/mes/mes.h
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_MES_H
|
||||
#define __MES_MES_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
typedef long SCM;
|
||||
|
||||
struct scm
|
||||
{
|
||||
long type;
|
||||
SCM car;
|
||||
SCM cdr;
|
||||
};
|
||||
|
||||
// mes
|
||||
extern int g_debug;
|
||||
extern char *g_buf;
|
||||
extern SCM g_continuations;
|
||||
extern SCM g_symbols;
|
||||
extern SCM g_symbol_max;
|
||||
|
||||
// a/env
|
||||
extern SCM r0;
|
||||
// param 1
|
||||
extern SCM r1;
|
||||
// save 2
|
||||
extern SCM r2;
|
||||
// continuation
|
||||
extern SCM r3;
|
||||
// current-module
|
||||
extern SCM m0;
|
||||
// macro
|
||||
extern SCM g_macros;
|
||||
extern SCM g_ports;
|
||||
|
||||
// gc
|
||||
extern long ARENA_SIZE;
|
||||
extern long MAX_ARENA_SIZE;
|
||||
extern long STACK_SIZE;
|
||||
extern long JAM_SIZE;
|
||||
extern long GC_SAFETY;
|
||||
extern long MAX_STRING;
|
||||
extern char *g_arena;
|
||||
extern long g_free;
|
||||
extern SCM g_stack;
|
||||
extern SCM *g_stack_array;
|
||||
extern struct scm *g_cells;
|
||||
extern struct scm *g_news;
|
||||
|
||||
SCM alloc (long n);
|
||||
SCM apply (SCM f, SCM x, SCM a);
|
||||
SCM apply_builtin (SCM fn, SCM x);
|
||||
SCM cstring_to_list (char const *s);
|
||||
SCM cstring_to_symbol (char const *s);
|
||||
SCM display_ (SCM x);
|
||||
SCM fdisplay_ (SCM, int, int);
|
||||
SCM gc_init ();
|
||||
SCM gc_peek_frame ();
|
||||
SCM gc_pop_frame ();
|
||||
SCM gc_push_frame ();
|
||||
SCM init_time (SCM a);
|
||||
SCM make_bytes (char const *s, size_t length);
|
||||
SCM make_cell__ (long type, SCM car, SCM cdr);
|
||||
SCM make_hash_table_ (long size);
|
||||
SCM make_hashq_type ();
|
||||
SCM make_initial_module (SCM a);
|
||||
SCM make_string (char const *s, size_t length);
|
||||
SCM make_vector__ (long k);
|
||||
SCM read_input_file_env (SCM);
|
||||
SCM string_equal_p (SCM a, SCM b);
|
||||
SCM struct_ref_ (SCM x, long i);
|
||||
SCM struct_set_x_ (SCM x, long i, SCM e);
|
||||
SCM vector_ref_ (SCM x, long i);
|
||||
SCM vector_set_x_ (SCM x, long i, SCM e);
|
||||
int peekchar ();
|
||||
int readchar ();
|
||||
int unreadchar ();
|
||||
long length__ (SCM x);
|
||||
size_t bytes_cells (size_t length);
|
||||
void assert_max_string (size_t i, char const *msg, char *string);
|
||||
|
||||
#include "mes/builtins.h"
|
||||
#include "mes/constants.h"
|
||||
#include "mes/macros.h"
|
||||
|
||||
#endif //__MES_MES_H
|
||||
46
sysa/mes-0.22/include/pwd.h
Normal file
46
sysa/mes-0.22/include/pwd.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_PWD_H
|
||||
#define __MES_PWD_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_PWD_H
|
||||
#include_next <pwd.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
struct passwd
|
||||
{
|
||||
char *pw_name;
|
||||
char *pw_passwd;
|
||||
uid_t pw_uid;
|
||||
gid_t pw_gid;
|
||||
char *pw_gecos;
|
||||
char *pw_dir;
|
||||
char *pw_shell;
|
||||
};
|
||||
|
||||
struct passwd *getpwuid ();
|
||||
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_PWD_H
|
||||
47
sysa/mes-0.22/include/setjmp.h
Normal file
47
sysa/mes-0.22/include/setjmp.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SETJMP_H
|
||||
#define __MES_SETJMP_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SETJMP_H
|
||||
#include_next <setjmp.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
typedef struct
|
||||
{
|
||||
long __bp;
|
||||
long __pc;
|
||||
long __sp;
|
||||
} __jmp_buf;
|
||||
typedef __jmp_buf jmp_buf[1];
|
||||
|
||||
#if __MESC__
|
||||
__jmp_buf buf[1];
|
||||
#else
|
||||
jmp_buf buf;
|
||||
#endif
|
||||
|
||||
void longjmp (jmp_buf env, int val);
|
||||
int setjmp (jmp_buf env);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SETJMP_H
|
||||
246
sysa/mes-0.22/include/signal.h
Normal file
246
sysa/mes-0.22/include/signal.h
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SIGNAL_H
|
||||
#define __MES_SIGNAL_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SIGNAL_H
|
||||
#include_next <signal.h>
|
||||
#else //! SYSTEM_LIBC
|
||||
|
||||
#define _NSIG 64
|
||||
|
||||
#define _SIGSET_NITEMS (_NSIG / (8 * sizeof(unsigned long)))
|
||||
|
||||
typedef struct {
|
||||
unsigned long items[_SIGSET_NITEMS];
|
||||
} sigset_t;
|
||||
typedef long stack_t;
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
// *INDENT-OFF*
|
||||
#define NSIG 30
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
#define SIGQUIT 3
|
||||
#define SIGILL 4
|
||||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT 6
|
||||
#define SIGBUS 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGUSR1 10
|
||||
#define SIGSEGV 11
|
||||
#define SIGUSR2 12
|
||||
#define SIGPIPE 13
|
||||
#define SIGALRM 14
|
||||
#define SIGTERM 15
|
||||
#define SIGSTKFLT 16
|
||||
#define SIGCHLD 17
|
||||
#define SIGCONT 18
|
||||
#define SIGSTOP 19
|
||||
#define SIGTSTP 20
|
||||
#define SIGTTIN 21
|
||||
#define SIGTTOU 22
|
||||
#define SIGURG 23
|
||||
#define SIGXCPU 24
|
||||
#define SIGXFSZ 25
|
||||
#define SIGVTALRM 26
|
||||
#define SIGPROF 27
|
||||
#define SIGWINCH 28
|
||||
#define SIGIO 29
|
||||
#define SIGPOLL SIGIO
|
||||
|
||||
#define FPE_INTDIV 1
|
||||
#define FPE_INTOVF 2
|
||||
#define FPE_FLTDIV 3
|
||||
#define FPE_FLTOVF 4
|
||||
#define FPE_FLTUND 5
|
||||
#define FPE_FLTRES 6
|
||||
#define FPE_FLTINV 7
|
||||
#define FPE_FLTSUB 8
|
||||
|
||||
#define SA_NOCLDSTOP 0x00000001
|
||||
#define SA_NOCLDWAIT 0x00000002
|
||||
#define SA_SIGINFO 0x00000004
|
||||
#define SA_RESTORER 0x04000000
|
||||
#define SA_ONSTACK 0x08000000
|
||||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
|
||||
#define SA_NOMASK SA_NODEFER
|
||||
#define SA_ONESHOT SA_RESETHAND
|
||||
|
||||
typedef struct siginfo_t
|
||||
{
|
||||
int si_signo;
|
||||
int si_errno;
|
||||
int si_code;
|
||||
int si_trapno;
|
||||
pid_t si_pid;
|
||||
uid_t si_uid;
|
||||
int si_status;
|
||||
clock_t si_utime;
|
||||
clock_t si_stime;
|
||||
sigval_t si_value;
|
||||
int si_int;
|
||||
void *si_ptr;
|
||||
int si_overrun;
|
||||
int si_timerid;
|
||||
void *si_addr;
|
||||
long si_band;
|
||||
int si_fd;
|
||||
short si_addr_lsb;
|
||||
void *si_lower;
|
||||
void *si_upper;
|
||||
int si_pkey;
|
||||
void *si_call_addr;
|
||||
int si_syscall;
|
||||
unsigned int si_arch;
|
||||
} siginfo_t;
|
||||
// *INDENT-ON*
|
||||
|
||||
#if __MESC__
|
||||
typedef long sighandler_t;
|
||||
#else
|
||||
typedef void (*sighandler_t) (int);
|
||||
#endif
|
||||
|
||||
struct sigaction
|
||||
{
|
||||
union
|
||||
{
|
||||
sighandler_t sa_handler;
|
||||
void (*sa_sigaction) (int signum, siginfo_t *, void *);
|
||||
};
|
||||
unsigned long sa_flags;
|
||||
#if __x86_64__
|
||||
long _foo0;
|
||||
#endif
|
||||
sigset_t sa_mask;
|
||||
#if __x86_64__
|
||||
long _foo1[15];
|
||||
#endif
|
||||
//unsigned long sa_flags; // x86?
|
||||
void (*sa_restorer) (void);
|
||||
};
|
||||
|
||||
|
||||
#define SIG_DFL ((sighandler_t)0)
|
||||
#define SIG_IGN ((sighandler_t)1)
|
||||
#define SIG_ERR ((sighandler_t)-1)
|
||||
|
||||
#ifdef __i386__
|
||||
|
||||
#define EBX 0
|
||||
#define ECX 1
|
||||
#define EDX 2
|
||||
#define ESI 3
|
||||
#define EDI 4
|
||||
#define EBP 5
|
||||
#define EAX 6
|
||||
#define DS 7
|
||||
#define ES 8
|
||||
#define FS 9
|
||||
#define GS 10
|
||||
#define ORIG_EAX 11
|
||||
#define EIP 12
|
||||
#define CS 13
|
||||
#define EFL 14
|
||||
#define UESP 15
|
||||
#define SS 16
|
||||
#define FRAME_SIZE 17
|
||||
|
||||
/* Type for general register. */
|
||||
typedef int greg_t;
|
||||
|
||||
/* Number of general registers. */
|
||||
#define NGREG 19
|
||||
|
||||
/* Container for all general registers. */
|
||||
typedef greg_t gregset_t[NGREG];
|
||||
|
||||
/* Definitions taken from the kernel headers. */
|
||||
struct _libc_fpreg
|
||||
{
|
||||
unsigned short int significand[4];
|
||||
unsigned short int exponent;
|
||||
};
|
||||
|
||||
struct _libc_fpstate
|
||||
{
|
||||
unsigned long int cw;
|
||||
unsigned long int sw;
|
||||
unsigned long int tag;
|
||||
unsigned long int ipoff;
|
||||
unsigned long int cssel;
|
||||
unsigned long int dataoff;
|
||||
unsigned long int datasel;
|
||||
struct _libc_fpreg _st[8];
|
||||
unsigned long int status;
|
||||
};
|
||||
|
||||
/* Structure to describe FPU registers. */
|
||||
typedef struct _libc_fpstate *fpregset_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gregset_t gregs;
|
||||
/* Due to Linux's history we have to use a pointer here. The SysV/i386
|
||||
ABI requires a struct with the values. */
|
||||
fpregset_t fpregs;
|
||||
unsigned long int oldmask;
|
||||
unsigned long int cr2;
|
||||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
struct _libc_fpstate __fpregs_mem;
|
||||
} ucontext_t;
|
||||
#endif // !__i386__
|
||||
|
||||
int kill (pid_t pid, int signum);
|
||||
int sigaction (int signum, struct sigaction const *act, struct sigaction *oldact);
|
||||
int sigaddset (sigset_t * set, int signum);
|
||||
#if __MESC__
|
||||
void *signal (int signum, void *action);
|
||||
#else
|
||||
sighandler_t signal (int signum, sighandler_t action);
|
||||
#endif
|
||||
int sigemptyset (sigset_t * set);
|
||||
#ifndef SIG_BLOCK
|
||||
#define SIG_BLOCK 0
|
||||
#define SIG_UNBLOCK 1
|
||||
#define SIG_SETMASK 2
|
||||
#endif
|
||||
int sigprocmask (int how, sigset_t const *set, sigset_t * oldset);
|
||||
|
||||
#endif //! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SIGNAL_H
|
||||
55
sysa/mes-0.22/include/stdarg.h
Normal file
55
sysa/mes-0.22/include/stdarg.h
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDARG_H
|
||||
#define __MES_STDARG_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_STDARG_H
|
||||
#include_next <stdarg.h>
|
||||
|
||||
#define va_arg8(ap, type) va_arg(ap, type)
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#if __GNUC__ && __x86_64__
|
||||
#define __FOO_VARARGS 1
|
||||
#endif
|
||||
|
||||
typedef char *va_list;
|
||||
#define va_start(ap, last) (void)((ap) = (char*)(&(last) + 1))
|
||||
#define va_arg(ap, type) (type)(((long*)((ap) = ((ap) + sizeof (void*))))[-1])
|
||||
#define va_align(ap, alignment) ((char*)((((unsigned long) (ap)) + (alignment) - 1) &~ ((alignment) - 1)))
|
||||
#define va_arg8(ap, type) (type)(((double*)((ap) = (va_align((ap), 8) + sizeof(double))))[-1])
|
||||
#define va_end(ap) (void)((ap) = 0)
|
||||
#define va_copy(dest, src) dest = src
|
||||
|
||||
int vexec (char const *file_name, va_list ap);
|
||||
int vfprintf (FILE * stream, char const *template, va_list ap);
|
||||
int vfscanf (FILE * stream, char const *template, va_list ap);
|
||||
int vprintf (char const *format, va_list ap);
|
||||
int vsprintf (char *str, char const *format, va_list ap);
|
||||
int vsnprintf (char *str, size_t size, char const *format, va_list ap);
|
||||
int vsscanf (char const *s, char const *template, va_list ap);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDARG_H
|
||||
36
sysa/mes-0.22/include/stdbool.h
Normal file
36
sysa/mes-0.22/include/stdbool.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDBOOL_H
|
||||
#define __MES_STDBOOL_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_STDBOOL_H
|
||||
#include_next <stdbool.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
typedef int bool;
|
||||
#define false 0
|
||||
#define true 1
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDBOOL_H
|
||||
42
sysa/mes-0.22/include/stddef.h
Normal file
42
sysa/mes-0.22/include/stddef.h
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDDEF_H
|
||||
#define __MES_STDDEF_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_STDDEF_H
|
||||
#include_next <stddef.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef offsetof
|
||||
#if __MESC__
|
||||
#define offsetof(type, field) (&((type *)0)->field)
|
||||
#else // !__MESC__
|
||||
#define offsetof(type, field) ((size_t)&((type *)0)->field)
|
||||
#endif // !__MESC__
|
||||
#endif // offsetof
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDDEF_H
|
||||
108
sysa/mes-0.22/include/stdint.h
Normal file
108
sysa/mes-0.22/include/stdint.h
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2018 Peter De Wachter <pdewacht@gmail.com>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDINT_H
|
||||
#define __MES_STDINT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_STDINT_H
|
||||
#include_next <stdint.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#undef unsigned
|
||||
#undef uint8_t
|
||||
#undef int8_t
|
||||
|
||||
#undef uint16_t
|
||||
#undef int16_t
|
||||
|
||||
#undef uint32_t
|
||||
#undef int32_t
|
||||
|
||||
#undef uint64_t
|
||||
#undef int64_t
|
||||
|
||||
#undef uintptr_t
|
||||
#undef intmax_t
|
||||
#undef intptr_t
|
||||
#undef uintmax_t
|
||||
#undef ptrdiff_t
|
||||
|
||||
typedef unsigned char uint8_t;
|
||||
typedef char int8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef short int16_t;
|
||||
typedef unsigned uint32_t;
|
||||
typedef int int32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
typedef long long int64_t;
|
||||
|
||||
typedef int intmax_t;
|
||||
typedef unsigned uintmax_t;
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#define CHAR_BIT 8
|
||||
#define CHAR_MAX 255
|
||||
#define UCHAR_MAX 255
|
||||
|
||||
#define INT8_MAX 127
|
||||
#define INT8_MIN (-INT8_MAX-1)
|
||||
#define UINT8_MAX 255
|
||||
|
||||
#define INT16_MAX 32767
|
||||
#define INT16_MIN (-INT16_MAX-1)
|
||||
#define UINT16_MAX 65535
|
||||
|
||||
#define INT32_MAX 2147483647
|
||||
#define INT32_MIN (-INT32_MAX-1)
|
||||
#define UINT32_MAX 4294967295U
|
||||
|
||||
#define INT64_MAX 9223372036854775807LL
|
||||
#define INT64_MIN (-INT64_MAX-1)
|
||||
#define UINT64_MAX 18446744073709551615ULL
|
||||
|
||||
#define INT_MIN -2147483648
|
||||
#define INT_MAX 2147483647
|
||||
#if __i386__
|
||||
#define LONG_MIN INT_MIN
|
||||
#define LONG_MAX INT_MAX
|
||||
#define UINT_MAX UINT32_MAX
|
||||
#define ULONG_MAX UINT32_MAX
|
||||
#define LLONG_MIN INT64_MIN
|
||||
#define LLONG_MAX INT64_MAX
|
||||
#define SIZE_MAX UINT32_MAX
|
||||
#elif __x86_64__
|
||||
#define LONG_MIN INT64_MIN
|
||||
#define LONG_MAX INT64_MAX
|
||||
#define UINT_MAX UINT32_MAX
|
||||
#define ULONG_MAX UINT64_MAX
|
||||
#define LLONG_MIN INT64_MIN
|
||||
#define LLONG_MAX INT64_MAX
|
||||
#define SIZE_MAX UINT64_MAX
|
||||
#endif
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDINT_H
|
||||
94
sysa/mes-0.22/include/stdio.h
Normal file
94
sysa/mes-0.22/include/stdio.h
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDIO_H
|
||||
#define __MES_STDIO_H 1
|
||||
|
||||
#include <mes/lib.h>
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_STDIO_H
|
||||
#include_next <stdio.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#ifndef _IOFBF
|
||||
#define _IOFBF 0 /* Fully buffered. */
|
||||
#define _IOLBF 1 /* Line buffered. */
|
||||
#define _IONBF 2 /* No buffering. */
|
||||
#endif
|
||||
|
||||
#ifndef BUFSIZ
|
||||
#define BUFSIZ 256
|
||||
#endif
|
||||
|
||||
#ifndef L_tmpnam
|
||||
#define L_tmpnam 100
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#define stdin (FILE*)0
|
||||
#define stdout (FILE*)1
|
||||
#define stderr (FILE*)2
|
||||
|
||||
#define SEEK_SET 0
|
||||
#define SEEK_CUR 1
|
||||
#define SEEK_END 2
|
||||
|
||||
FILE *fdopen (int fd, char const *mode);
|
||||
FILE *fopen (char const *file_name, char const *mode);
|
||||
int eputc (int c);
|
||||
int eputs (char const *s);
|
||||
int fclose (FILE * stream);
|
||||
int feof (FILE * stream);
|
||||
int ferror (FILE * stream);
|
||||
int fflush (FILE * stream);
|
||||
int fgetc (FILE * stream);
|
||||
char *fgets (char *s, int size, FILE * stream);
|
||||
int fprintf (FILE * stream, char const *format, ...);
|
||||
int fpurge (FILE * stream);
|
||||
int fputc (int c, FILE * stream);
|
||||
int fputs (char const *s, FILE * stream);
|
||||
int fscanf (FILE * stream, char const *template, ...);
|
||||
int fseek (FILE * stream, long offset, int whence);
|
||||
int getc (FILE * stream);
|
||||
int getchar (void);
|
||||
char *getlogin (void);
|
||||
int printf (char const *format, ...);
|
||||
int putc (int c, FILE * stream);
|
||||
int putchar (int c);
|
||||
int puts (char const *s);
|
||||
int remove (char const *file_name);
|
||||
int setvbuf (FILE * stream, char *buf, int mode, size_t size);
|
||||
int snprintf (char *str, size_t size, char const *format, ...);
|
||||
int sprintf (char *str, char const *format, ...);
|
||||
int sscanf (char const *str, char const *format, ...);
|
||||
int ungetc (int c, FILE * stream);
|
||||
long ftell (FILE * stream);
|
||||
size_t fread (void *ptr, size_t size, size_t count, FILE * stream);
|
||||
size_t freadahead (FILE * fp);
|
||||
size_t fwrite (void const *ptr, size_t size, size_t count, FILE * stream);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDIO_H
|
||||
69
sysa/mes-0.22/include/stdlib.h
Normal file
69
sysa/mes-0.22/include/stdlib.h
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDLIB_H
|
||||
#define __MES_STDLIB_H 1
|
||||
|
||||
#ifndef __MES_COMPARISON_FN_T
|
||||
#define __MES_COMPARISON_FN_T
|
||||
typedef int (*comparison_fn_t) (void const *, void const *);
|
||||
#endif
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_STDLIB_H
|
||||
#include_next <stdlib.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <alloca.h>
|
||||
|
||||
void abort (void);
|
||||
double atof (char const *s);
|
||||
int atoi (char const *s);
|
||||
int atexit (void (*function) (void));
|
||||
void *calloc (size_t nmemb, size_t size);
|
||||
void _exit (int status);
|
||||
void exit (int status);
|
||||
void free (void *ptr);
|
||||
char *getenv (char const *s);
|
||||
int setenv (char const *s, char const *v, int overwrite_p);
|
||||
void unsetenv (char const *name);
|
||||
void *malloc (size_t);
|
||||
void qsort (void *base, size_t nmemb, size_t size, int (*compar) (void const *, void const *));
|
||||
int rand (void);
|
||||
void *realloc (void *p, size_t size);
|
||||
double strtod (char const *string, char **tailptr);
|
||||
float strtof (char const *string, char **tailptr);
|
||||
long double strtold (char const *string, char **tailptr);
|
||||
long strtol (char const *string, char **tailptr, int base);
|
||||
long long strtoll (char const *string, char **tailptr, int base);
|
||||
unsigned long strtoul (char const *string, char **tailptr, int base);
|
||||
unsigned long long strtoull (char const *string, char **tailptr, int base);
|
||||
|
||||
#define EXIT_FAILURE 1
|
||||
#define EXIT_SUCCESS 0
|
||||
|
||||
void *bsearch (void const *key, void const *array, size_t count, size_t size, comparison_fn_t compare);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDLIB_H
|
||||
34
sysa/mes-0.22/include/stdnoreturn.h
Normal file
34
sysa/mes-0.22/include/stdnoreturn.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STDNORETURN_H
|
||||
#define __MES_STDNORETURN_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_STDNORETURN_H
|
||||
#include_next <stdnoreturn.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
// whut?
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDNORETURN_H
|
||||
60
sysa/mes-0.22/include/string.h
Normal file
60
sysa/mes-0.22/include/string.h
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STRING_H
|
||||
#define __MES_STRING_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_STRING_H
|
||||
#include_next <string.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
void *memchr (void const *block, int c, size_t size);
|
||||
void *memcpy (void *dest, void const *src, size_t n);
|
||||
void *memmove (void *dest, void const *src, size_t n);
|
||||
void *memset (void *s, int c, size_t n);
|
||||
void *memchr (void const *block, int c, size_t size);
|
||||
int memcmp (void const *s1, void const *s2, size_t n);
|
||||
void *memmem (void const *haystack, int haystack_len, void const *needle, int needle_len);
|
||||
char *strcat (char *dest, char const *src);
|
||||
char *strchr (char const *s, int c);
|
||||
int strcasecmp (char const *s1, char const *s2);
|
||||
int strcmp (char const *, char const *);
|
||||
char *strcpy (char *dest, char const *src);
|
||||
size_t strlen (char const *);
|
||||
char *strncpy (char *to, char const *from, size_t size);
|
||||
int strncmp (char const *, char const *, size_t);
|
||||
char *strrchr (char const *s, int c);
|
||||
char *strstr (char const *haystack, char const *needle);
|
||||
char *strlwr (char *string);
|
||||
char *strupr (char *string);
|
||||
|
||||
|
||||
char *strerror (int errnum);
|
||||
void perror (char const *message);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STRING_H
|
||||
28
sysa/mes-0.22/include/strings.h
Normal file
28
sysa/mes-0.22/include/strings.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_STRINGS_H
|
||||
#define __MES_STRINGS_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_STRINGS_H
|
||||
#include_next <strings.h>
|
||||
#endif // (SYSTEM_LIBC)
|
||||
|
||||
#endif // __MES_STRINGS_H
|
||||
28
sysa/mes-0.22/include/sys/cdefs.h
Normal file
28
sysa/mes-0.22/include/sys/cdefs.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_CDEFS_H
|
||||
#define __MES_SYS_CDEFS_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_CDEFS_H
|
||||
#include_next <sys/cdefs.h>
|
||||
#endif // (SYSTEM_LIBC)
|
||||
|
||||
#endif // __MES_SYS_CDEFS_H
|
||||
32
sysa/mes-0.22/include/sys/dir.h
Normal file
32
sysa/mes-0.22/include/sys/dir.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_DIR_H
|
||||
#define __MES_SYS_DIR_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_DIR_H
|
||||
#include_next <sys/dir.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_DIR_H
|
||||
32
sysa/mes-0.22/include/sys/file.h
Normal file
32
sysa/mes-0.22/include/sys/file.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_FILE_H
|
||||
#define __MES_SYS_FILE_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_FILE_H
|
||||
#include_next <sys/file.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_FILE_H
|
||||
36
sysa/mes-0.22/include/sys/ioctl.h
Normal file
36
sysa/mes-0.22/include/sys/ioctl.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_IOCTL_H
|
||||
#define __MES_SYS_IOCTL_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_IOCTL_H
|
||||
#include_next <sys/ioctl.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#define TCGETS 0x5401
|
||||
#define TCGETA 0x5405
|
||||
int ioctl (int fd, unsigned long request, ...);
|
||||
int ioctl3 (int fd, unsigned long request, long data);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_IOCTL_H
|
||||
43
sysa/mes-0.22/include/sys/mman.h
Normal file
43
sysa/mes-0.22/include/sys/mman.h
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_MMAN_H
|
||||
#define __MES_SYS_MMAN_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_MMAN_H
|
||||
#include_next <sys/mman.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
|
||||
#define PROT_NONE 0
|
||||
#define PROT_READ 1
|
||||
#define PROT_WRITE 2
|
||||
#define PROT_EXEC 4
|
||||
|
||||
int mprotect (void *addr, size_t len, int prot);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_MMAN_H
|
||||
|
||||
31
sysa/mes-0.22/include/sys/param.h
Normal file
31
sysa/mes-0.22/include/sys/param.h
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_PARAM_H
|
||||
#define __MES_SYS_PARAM_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_PARAM_H
|
||||
#include_next <sys/param.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_PARAM_H
|
||||
60
sysa/mes-0.22/include/sys/resource.h
Normal file
60
sysa/mes-0.22/include/sys/resource.h
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_RESOURCE_H
|
||||
#define __MES_SYS_RESOURCE_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_RESOURCE_H
|
||||
#include_next <sys/resource.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
struct rusage
|
||||
{
|
||||
struct timeval ru_utime;
|
||||
struct timeval ru_stime;
|
||||
long int ru_maxrss;
|
||||
long int ru_ixrss;
|
||||
long int ru_idrss;
|
||||
long int ru_isrss;
|
||||
long int ru_minflt;
|
||||
long int ru_majflt;
|
||||
long int ru_nswap;
|
||||
long int ru_inblock;
|
||||
long int ru_oublock;
|
||||
long int ru_msgsnd;
|
||||
long int ru_msgrcv;
|
||||
long int ru_nsignals;
|
||||
long int ru_nvcsw;
|
||||
long int ru_nivcsw;
|
||||
};
|
||||
|
||||
#define RUSAGE_SELF 0
|
||||
#define RUSAGE_CHILDREN -1
|
||||
#define RLIMIT_NOFILE 1024
|
||||
#define OPEN_MAX RLIMIT_NOFILE
|
||||
|
||||
int getrusage (int processes, struct rusage *rusage);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_RESOURCE_H
|
||||
30
sysa/mes-0.22/include/sys/select.h
Normal file
30
sysa/mes-0.22/include/sys/select.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_SELECT_H
|
||||
#define __MES_SYS_SELECT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_SELECT_H
|
||||
#include_next <sys/select.h>
|
||||
#else //! SYSTEM_LIBC
|
||||
typedef int fd_set;
|
||||
#endif //! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_SELECT_H
|
||||
123
sysa/mes-0.22/include/sys/stat.h
Normal file
123
sysa/mes-0.22/include/sys/stat.h
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_STAT_H
|
||||
#define __MES_SYS_STAT_H 1lei
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_STAT_H
|
||||
#include_next <sys/stat.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef __MES_MODE_T
|
||||
#define __MES_MODE_T
|
||||
typedef int mode_t;
|
||||
#endif
|
||||
|
||||
// *INDENT-OFF*
|
||||
#if __i386__
|
||||
struct stat
|
||||
{
|
||||
unsigned long st_dev;
|
||||
unsigned long st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
unsigned long st_rdev;
|
||||
long st_size; /* Linux: unsigned long; glibc: off_t (i.e. signed) */
|
||||
unsigned long st_blksize;
|
||||
unsigned long st_blocks;
|
||||
time_t st_atime; /* Linux: unsigned long; glibc: time_t */
|
||||
unsigned long st_atime_usec;
|
||||
time_t st_mtime; /* Linux: unsigned long; glibc: time_t */
|
||||
unsigned long st_mtime_usec;
|
||||
time_t st_ctime; /* Linux: unsigned long; glibc: time_t */
|
||||
unsigned long st_ctime_usec;
|
||||
unsigned long __foo0;
|
||||
unsigned long __foo1;
|
||||
};
|
||||
#elif __x86_64__
|
||||
struct stat
|
||||
{
|
||||
unsigned long st_dev;
|
||||
unsigned long st_ino;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_nlink;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned long st_rdev;
|
||||
long st_size;
|
||||
unsigned long st_blksize;
|
||||
unsigned long st_blocks;
|
||||
time_t st_atime;
|
||||
unsigned long st_atime_usec;
|
||||
time_t st_mtime;
|
||||
unsigned long st_mtime_usec;
|
||||
time_t st_ctime;
|
||||
unsigned long st_ctime_usec;
|
||||
unsigned long __foo0;
|
||||
unsigned long __foo1;
|
||||
};
|
||||
#endif
|
||||
// *INDENT-ON*
|
||||
|
||||
int chmod (char const *file_name, mode_t mode);
|
||||
int fstat (int filedes, struct stat *buf);
|
||||
int mkdir (char const *file_name, mode_t mode);
|
||||
int mknod (char const *file_name, mode_t mode, dev_t dev);
|
||||
int chown (char const *file_name, uid_t owner, gid_t group);
|
||||
int rmdir (char const *file_name);
|
||||
int stat (char const *file_name, struct stat *buf);
|
||||
|
||||
#define S_IFIFO 0010000
|
||||
#define S_IFCHR 0020000
|
||||
#define S_IFDIR 0040000
|
||||
#define S_IFBLK 0060000
|
||||
#define S_IFREG 0100000
|
||||
#define S_IFLNK 0120000
|
||||
#define S_IFMT 0170000
|
||||
|
||||
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
||||
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
||||
|
||||
#define S_IRWXU 00700
|
||||
#define S_IXUSR 00100
|
||||
#define S_IWUSR 00200
|
||||
#define S_IRUSR 00400
|
||||
|
||||
#define S_ISUID 0400
|
||||
#define S_ISGID 02000
|
||||
#define S_IXGRP 00010
|
||||
#define S_IXOTH 00001
|
||||
#define S_IRGRP 00040
|
||||
#define S_IROTH 00004
|
||||
#define S_IWGRP 00020
|
||||
#define S_IWOTH 00002
|
||||
#define S_IRWXG 00070
|
||||
#define S_IRWXO 00007
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_STAT_H
|
||||
56
sysa/mes-0.22/include/sys/time.h
Normal file
56
sysa/mes-0.22/include/sys/time.h
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_TIME_H
|
||||
#define __MES_SYS_TIME_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_TIME_H
|
||||
#include_next <sys/time.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
struct timeval
|
||||
{
|
||||
long tv_sec;
|
||||
long tv_usec;
|
||||
};
|
||||
|
||||
struct timezone
|
||||
{
|
||||
int tz_minuteswest;
|
||||
int tz_dsttime;
|
||||
};
|
||||
|
||||
struct itimerval
|
||||
{
|
||||
struct timeval it_interval;
|
||||
struct timeval it_value;
|
||||
};
|
||||
|
||||
#define ITIMER_REAL 0
|
||||
#define ITIMER_VIRTUAL 1
|
||||
#define ITIMER_PROF 2
|
||||
|
||||
int gettimeofday (struct timeval *tv, struct timezone *tz);
|
||||
int setitimer (int which, struct itimerval const *new, struct itimerval *old);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_TIME_H
|
||||
28
sysa/mes-0.22/include/sys/timeb.h
Normal file
28
sysa/mes-0.22/include/sys/timeb.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_TIMEB_H
|
||||
#define __MES_SYS_TIMEB_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_TIMEB_H
|
||||
#include_next <sys/timeb.h>
|
||||
#endif // (SYSTEM_LIBC)
|
||||
|
||||
#endif // __MES_SYS_TIMEB_H
|
||||
53
sysa/mes-0.22/include/sys/times.h
Normal file
53
sysa/mes-0.22/include/sys/times.h
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_TIMES_H
|
||||
#define __MES_SYS_TIMES_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_TIMES_H
|
||||
#include_next <sys/times.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#ifndef __MES_CLOCK_T
|
||||
#define __MES_CLOCK_T
|
||||
#undef clock_t
|
||||
typedef long clock_t;
|
||||
#endif
|
||||
|
||||
#ifndef CLOCKS_PER_SEC
|
||||
#define CLOCKS_PER_SEC 1000000
|
||||
#endif
|
||||
|
||||
#ifndef HZ
|
||||
#define HZ 100
|
||||
#endif
|
||||
|
||||
struct tms
|
||||
{
|
||||
clock_t tms_utime;
|
||||
clock_t tms_stime;
|
||||
clock_t tms_cutime;
|
||||
clock_t tms_cstime;
|
||||
};
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_TIMES_H
|
||||
152
sysa/mes-0.22/include/sys/types.h
Normal file
152
sysa/mes-0.22/include/sys/types.h
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_TYPES_H
|
||||
#define __MES_SYS_TYPES_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_TYPES_H
|
||||
#include_next <sys/types.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#include <endian.h>
|
||||
|
||||
#ifndef __MESCCLIB__
|
||||
#define __MESCCLIB__ 15
|
||||
#endif
|
||||
|
||||
#ifndef EOF
|
||||
#define EOF -1
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef __MES_CLOCK_T
|
||||
#define __MES_CLOCK_T
|
||||
#undef clock_t
|
||||
typedef long clock_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_DEV_T
|
||||
#define __MES_DEV_T
|
||||
#undef dev_t
|
||||
typedef long dev_t;
|
||||
#endif
|
||||
|
||||
#if !defined (__MES_FILE_T) && ! defined (_FILE_T)
|
||||
#define __MES_FILE_T
|
||||
#define _FILE_T
|
||||
typedef long FILE;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_GID_T
|
||||
#define __MES_GID_T
|
||||
#undef gid_t
|
||||
typedef unsigned gid_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_INO_T
|
||||
#define __MES_INO_T
|
||||
#undef ino_t
|
||||
typedef unsigned long ino_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_INO64_T
|
||||
#define __MES_INO64_T
|
||||
#undef ino64_t
|
||||
typedef unsigned long long ino64_t;
|
||||
#endif
|
||||
|
||||
#if !defined (__MES_INTPTR_T) && !defined (__intptr_t_defined)
|
||||
#define __MES_INTPTR_T
|
||||
#define __intptr_t_defined
|
||||
#undef intptr_t
|
||||
typedef long intptr_t;
|
||||
#undef uintptr_t
|
||||
typedef unsigned long uintptr_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_OFF_T
|
||||
#define __MES_OFF_T
|
||||
#undef off_t
|
||||
typedef long off_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_OFF64_T
|
||||
#define __MES_OFF64_T
|
||||
#undef off64_t
|
||||
typedef unsigned long long off64_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_PID_T
|
||||
#define __MES_PID_T
|
||||
#undef pid_t
|
||||
typedef int pid_t;
|
||||
#endif
|
||||
|
||||
#ifndef __PTRDIFF_T
|
||||
#define __PTRDIFF_T
|
||||
#ifndef __MES_PTRDIFF_T
|
||||
#define __MES_PTRDIFF_T
|
||||
#undef ptrdiff_t
|
||||
typedef long ptrdiff_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __MES_SIGVAL_T
|
||||
#define __MES_SIGVAL_T
|
||||
#undef clock_t
|
||||
typedef long sigval_t;
|
||||
#endif
|
||||
|
||||
#ifndef __SIZE_T
|
||||
#define __SIZE_T
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
#undef size_t
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __MES_SSIZE_T
|
||||
#define __MES_SSIZE_T
|
||||
#undef ssize_t
|
||||
typedef long ssize_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_UID_T
|
||||
#define __MES_UID_T
|
||||
#undef uid_t
|
||||
typedef unsigned uid_t;
|
||||
#endif
|
||||
|
||||
#ifndef __WCHAR_T
|
||||
#define __WCHAR_T
|
||||
#ifndef __MES_WCHAR_T
|
||||
#define __MES_WCHAR_T
|
||||
#undef wchar_t
|
||||
typedef int wchar_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_TYPES_H
|
||||
28
sysa/mes-0.22/include/sys/ucontext.h
Normal file
28
sysa/mes-0.22/include/sys/ucontext.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_UCONTEXT_H
|
||||
#define __MES_SYS_UCONTEXT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_UCONTEXT_H
|
||||
#include_next <sys/ucontext.h>
|
||||
#endif // (SYSTEM_LIBC)
|
||||
|
||||
#endif // __MES_SYS_UCONTEXT_H
|
||||
111
sysa/mes-0.22/include/sys/user.h
Normal file
111
sysa/mes-0.22/include/sys/user.h
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_USER_H
|
||||
#define __MES_SYS_USER_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_USER_H
|
||||
#include_next <sys/user.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
/* These are the 32-bit x86 structures. */
|
||||
struct user_fpregs_struct
|
||||
{
|
||||
long int cwd;
|
||||
long int swd;
|
||||
long int twd;
|
||||
long int fip;
|
||||
long int fcs;
|
||||
long int foo;
|
||||
long int fos;
|
||||
long int st_space[20];
|
||||
};
|
||||
|
||||
struct user_fpxregs_struct
|
||||
{
|
||||
unsigned short int cwd;
|
||||
unsigned short int swd;
|
||||
unsigned short int twd;
|
||||
unsigned short int fop;
|
||||
long int fip;
|
||||
long int fcs;
|
||||
long int foo;
|
||||
long int fos;
|
||||
long int mxcsr;
|
||||
long int reserved;
|
||||
long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
|
||||
long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
|
||||
long int padding[56];
|
||||
};
|
||||
|
||||
struct user_regs_struct
|
||||
{
|
||||
long int ebx;
|
||||
long int ecx;
|
||||
long int edx;
|
||||
long int esi;
|
||||
long int edi;
|
||||
long int ebp;
|
||||
long int eax;
|
||||
long int xds;
|
||||
long int xes;
|
||||
long int xfs;
|
||||
long int xgs;
|
||||
long int orig_eax;
|
||||
long int eip;
|
||||
long int xcs;
|
||||
long int eflags;
|
||||
long int esp;
|
||||
long int xss;
|
||||
};
|
||||
|
||||
// *INDENT-OFF*
|
||||
struct user
|
||||
{
|
||||
struct user_regs_struct regs;
|
||||
int u_fpvalid;
|
||||
struct user_fpregs_struct i387;
|
||||
unsigned long int u_tsize;
|
||||
unsigned long int u_dsize;
|
||||
unsigned long int u_ssize;
|
||||
unsigned long int start_code;
|
||||
unsigned long int start_stack;
|
||||
long int signal;
|
||||
int reserved;
|
||||
struct user_regs_struct *u_ar0;
|
||||
struct user_fpregs_struct *u_fpstate;
|
||||
unsigned long int magic;
|
||||
char u_comm [32];
|
||||
int u_debugreg [8];
|
||||
};
|
||||
|
||||
#define PAGE_SHIFT 12
|
||||
#define PAGE_SIZE (1UL << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
#define NBPG PAGE_SIZE
|
||||
#define UPAGES 1
|
||||
#define HOST_TEXT_START_ADDR (u.start_code)
|
||||
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
||||
// *INDENT-ON*
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_USER_H
|
||||
41
sysa/mes-0.22/include/sys/wait.h
Normal file
41
sysa/mes-0.22/include/sys/wait.h
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_WAIT_H
|
||||
#define __MES_SYS_WAIT_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_WAIT_H
|
||||
#include_next <sys/wait.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#ifndef __MES_PID_T
|
||||
#define __MES_PID_T
|
||||
typedef int pid_t;
|
||||
#endif
|
||||
|
||||
#define WNOHANG 1
|
||||
#define W_EXITCODE(status, signal) ((status) << 8 | (signal))
|
||||
|
||||
pid_t waitpid (pid_t pid, int *status_ptr, int options);
|
||||
pid_t wait (int *status_ptr);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_SYS_WAIT_H
|
||||
72
sysa/mes-0.22/include/termio.h
Normal file
72
sysa/mes-0.22/include/termio.h
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_TERMIO_H
|
||||
#define __MES_TERMIO_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_TERMIO_H
|
||||
#include_next <termio.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#define TIOCGWINSZ 0x5413
|
||||
#define TCGETA 0x5405
|
||||
#define TCSETAW 0x5407
|
||||
|
||||
#define VTIME 5
|
||||
#define VMIN 6
|
||||
|
||||
#define ISIG 0000001
|
||||
#define ICANON 0000002
|
||||
#define ECHO 0000010
|
||||
#define ECHOK 0000040
|
||||
#define ECHONL 0000100
|
||||
|
||||
#define ISTRIP 0000040
|
||||
#define INLCR 0000100
|
||||
#define ICRNL 0000400
|
||||
|
||||
#define CS8 0000060
|
||||
#define PARENB 0000400
|
||||
|
||||
struct winsize
|
||||
{
|
||||
unsigned short ws_row;
|
||||
unsigned short ws_col;
|
||||
unsigned short ws_xpixel;
|
||||
unsigned short ws_ypixel;
|
||||
};
|
||||
|
||||
struct termio
|
||||
{
|
||||
unsigned short c_iflag;
|
||||
unsigned short c_oflag;
|
||||
unsigned short c_cflag;
|
||||
unsigned short c_lflag;
|
||||
unsigned char c_line;
|
||||
unsigned char c_cc[8];
|
||||
};
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_TERMIO_H
|
||||
68
sysa/mes-0.22/include/time.h
Normal file
68
sysa/mes-0.22/include/time.h
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_TIME_H
|
||||
#define __MES_TIME_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_TIME_H
|
||||
#include_next <time.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#ifndef __MES_TIME_T
|
||||
#define __MES_TIME_T 1
|
||||
typedef long int clockid_t;
|
||||
typedef long int time_t;
|
||||
#endif
|
||||
|
||||
struct tm
|
||||
{
|
||||
int tm_sec;
|
||||
int tm_min;
|
||||
int tm_hour;
|
||||
int tm_mday;
|
||||
int tm_mon;
|
||||
int tm_year;
|
||||
int tm_wday;
|
||||
int tm_yday;
|
||||
int tm_isdst;
|
||||
};
|
||||
|
||||
#ifndef __MES_STRUCT_TIMESPEC
|
||||
#define __MES_STRUCT_TIMESPEC
|
||||
|
||||
struct timespec
|
||||
{
|
||||
long tv_sec;
|
||||
long tv_nsec;
|
||||
};
|
||||
|
||||
#endif // __MES_STRUCT_TIMESPEC
|
||||
|
||||
#define CLOCK_PROCESS_CPUTIME_ID 2
|
||||
int clock_gettime (clockid_t clk_id, struct timespec *tp);
|
||||
struct tm *localtime (time_t const *timep);
|
||||
struct tm *gmtime (time_t const *time);
|
||||
time_t mktime (struct tm *broken_time);
|
||||
int nanosleep (struct timespec const *requested_time, struct timespec const *remaining);
|
||||
time_t time (time_t * tloc);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_TIME_H
|
||||
98
sysa/mes-0.22/include/unistd.h
Normal file
98
sysa/mes-0.22/include/unistd.h
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_UNISTD_H
|
||||
#define __MES_UNISTD_H 1
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#undef __MES_UNISTD_H
|
||||
#include_next <unistd.h>
|
||||
|
||||
#else // ! SYSTEM_LIBC
|
||||
|
||||
#if defined (BOOTSTRAP_WITH_POSIX)
|
||||
#define _POSIX_VERSION 199009L
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef STDIN_FILENO
|
||||
#define STDIN_FILENO 0
|
||||
#define STDOUT_FILENO 1
|
||||
#define STDERR_FILENO 2
|
||||
#endif // STDIN_FILENO
|
||||
|
||||
#ifndef STDIN_FILE_NO
|
||||
#define STDIN_FILE_NO 0
|
||||
#define STDOUT_FILE_NO 1
|
||||
#define STDERR_FILE_NO 2
|
||||
#endif // STDIN_FILE_NO
|
||||
|
||||
#ifndef R_OK
|
||||
#define F_OK 0
|
||||
#define X_OK 1
|
||||
#define W_OK 2
|
||||
#define R_OK 4
|
||||
#endif
|
||||
|
||||
int access (char const *s, int mode);
|
||||
unsigned int alarm (unsigned int seconds);
|
||||
int close (int fd);
|
||||
int execv (char const *file_name, char *const argv[]);
|
||||
int execl (char const *file_name, char const *arg, ...);
|
||||
int execlp (char const *file_name, char const *arg, ...);
|
||||
int execve (char const *file, char *const argv[], char *const env[]);
|
||||
int execvp (char const *file, char *const argv[]);
|
||||
int fork (void);
|
||||
int fsync (int filedes);
|
||||
char *getcwd (char *buf, size_t size);
|
||||
uid_t getuid (void);
|
||||
gid_t getgid (void);
|
||||
int setgid (gid_t newgid);
|
||||
int setuid (uid_t newuid);
|
||||
uid_t geteuid (void);
|
||||
gid_t getegid (void);
|
||||
pid_t getpgrp (void);
|
||||
pid_t getpid (void);
|
||||
pid_t getppid (void);
|
||||
int getpgid (pid_t pid);
|
||||
int isatty (int fd);
|
||||
int link (char const *old_name, char const *new_name);
|
||||
off_t lseek (int fd, off_t offset, int whence);
|
||||
ssize_t read (int fd, void *buffer, size_t size);
|
||||
ssize_t readlink (char const *file_name, char *buffer, size_t size);
|
||||
#if __SBRK_CHAR_PTRDIFF
|
||||
/* xmalloc in binutils <= 2.10.1 uses this old prototype */
|
||||
char *sbrk (ptrdiff_t delta);
|
||||
#else
|
||||
void *sbrk (intptr_t delta);
|
||||
#endif
|
||||
int symlink (char const *old_name, char const *new_name);
|
||||
int unlink (char const *file_name);
|
||||
ssize_t write (int filedes, void const *buffer, size_t size);
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_UNISTD_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue