mescc: Mes C library: Move common getcwd, open bits to posix.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 25 Jun 2019 21:10:52 +0000 (23:10 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Tue, 25 Jun 2019 21:10:52 +0000 (23:10 +0200)
* lib/linux/_getcwd.c: Rename from getcwd.c.
* lib/linux/_open3.c: Rename from open.c.
* lib/posix/getcwd.c: New file with bits from ../linux/getcwd.c.
* lib/posix/open.c: New file with bits ../linux/getcwd.c.
* build-aux/build-lib.sh (libc_SOURCES): Update.

build-aux/build-lib.sh
include/mes/lib.h
lib/linux/_getcwd.c [new file with mode: 0644]
lib/linux/_open3.c [new file with mode: 0644]
lib/linux/getcwd.c [deleted file]
lib/linux/open.c [deleted file]
lib/posix/getcwd.c [new file with mode: 0644]
lib/posix/open.c [new file with mode: 0644]
simple.sh

index 22caf6e939944943786ba77c1eda82a6eaf7f023..db10233640a703e701e1640c7a551461e02e7ad5 100755 (executable)
@@ -86,9 +86,11 @@ $libmes_SOURCES
 lib/mes/__assert_fail.c
 lib/mes/__mes_debug.c
 lib/posix/execv.c
+lib/posix/getcwd.c
 lib/posix/getenv.c
 lib/posix/isatty.c
 lib/posix/read.c
+lib/posix/open.c
 lib/posix/setenv.c
 lib/posix/wait.c
 lib/stdio/fgetc.c
@@ -122,10 +124,10 @@ lib/linux/dup2.c
 lib/linux/execve.c
 lib/linux/fork.c
 lib/linux/fsync.c
-lib/linux/getcwd.c
+lib/linux/_getcwd.c
 lib/linux/gettimeofday.c
 lib/linux/ioctl.c
-lib/linux/open.c
+lib/linux/_open3.c
 lib/linux/_read.c
 lib/linux/time.c
 lib/linux/unlink.c
index 7145dab1b5123a83fd63a1d0b13ec36d3361901d..63d1eba91dab4dfd22b8fb6090245e1099a7b6fc 100644 (file)
@@ -41,6 +41,7 @@ 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);
diff --git a/lib/linux/_getcwd.c b/lib/linux/_getcwd.c
new file mode 100644 (file)
index 0000000..55db9a0
--- /dev/null
@@ -0,0 +1,32 @@
+/* -*-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/>.
+ */
+
+#include <mes/lib-mini.h>
+#include <linux/syscall.h>
+#include <syscall.h>
+
+char *
+_getcwd (char *buffer, size_t size)
+{
+  int r = _sys_call2 (SYS_getcwd, (long) buffer, (long) size);
+  if (r >= 0)
+    return buffer;
+  return 0;
+}
diff --git a/lib/linux/_open3.c b/lib/linux/_open3.c
new file mode 100644 (file)
index 0000000..e1bf1f7
--- /dev/null
@@ -0,0 +1,34 @@
+/* -*-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/>.
+ */
+
+#include <linux/syscall.h>
+#include <syscall.h>
+#include <mes/lib.h>
+#include <fcntl.h>
+
+int
+_open3 (char const *file_name, int flags, int mask)
+{
+  int r = _sys_call3 (SYS_open, (long) file_name, (int) flags, (int) mask);
+  __ungetc_init ();
+  if (r > 2)
+    __ungetc_clear (r);
+  return r;
+}
diff --git a/lib/linux/getcwd.c b/lib/linux/getcwd.c
deleted file mode 100644 (file)
index fbb6728..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*-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/>.
- */
-
-#include <linux/syscall.h>
-#include <syscall.h>
-#include <limits.h>
-#include <sys/types.h>
-
-char *
-_getcwd (char *buffer, size_t size)
-{
-  int r = _sys_call2 (SYS_getcwd, (long) buffer, (long) size);
-  if (r >= 0)
-    return buffer;
-  return 0;
-}
-
-char *
-getcwd (char *buffer, size_t size)
-{
-  static char buf[PATH_MAX];
-  if (buffer)
-    return _getcwd (buffer, size);
-  return _getcwd (buf, PATH_MAX);
-}
diff --git a/lib/linux/open.c b/lib/linux/open.c
deleted file mode 100644 (file)
index 28c6573..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*-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/>.
- */
-
-#include <linux/syscall.h>
-#include <syscall.h>
-#include <mes/lib.h>
-#include <fcntl.h>
-#include <stdarg.h>
-
-int
-_open3 (char const *file_name, int flags, int mask)
-{
-  int r = _sys_call3 (SYS_open, (long) file_name, (int) flags, (int) mask);
-  __ungetc_init ();
-  if (r > 2)
-    __ungetc_clear (r);
-  return r;
-}
-
-int
-_open2 (char const *file_name, int flags)
-{
-  int mask = 0777;
-  return _open3 (file_name, flags, mask);
-}
-
-int
-open (char const *file_name, int flags, ...)
-{
-  va_list ap;
-  va_start (ap, flags);
-  int mask = va_arg (ap, int);
-  int r = _open3 (file_name, flags, mask);
-  va_end (ap);
-  return r;
-}
diff --git a/lib/posix/getcwd.c b/lib/posix/getcwd.c
new file mode 100644 (file)
index 0000000..39dd3bf
--- /dev/null
@@ -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/>.
+ */
+
+#include <limits.h>
+#include <sys/types.h>
+
+char *
+getcwd (char *buffer, size_t size)
+{
+  static char buf[PATH_MAX];
+  if (buffer)
+    return _getcwd (buffer, size);
+  return _getcwd (buf, PATH_MAX);
+}
diff --git a/lib/posix/open.c b/lib/posix/open.c
new file mode 100644 (file)
index 0000000..256f2f1
--- /dev/null
@@ -0,0 +1,41 @@
+/* -*-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/>.
+ */
+
+#include <mes/lib.h>
+#include <fcntl.h>
+#include <stdarg.h>
+
+int
+_open2 (char const *file_name, int flags)
+{
+  int mask = 0777;
+  return _open3 (file_name, flags, mask);
+}
+
+int
+open (char const *file_name, int flags, ...)
+{
+  va_list ap;
+  va_start (ap, flags);
+  int mask = va_arg (ap, int);
+  int r = _open3 (file_name, flags, mask);
+  va_end (ap);
+  return r;
+}
index f87d09778b9366292521138e46a1dcfa0a90c9ca..4c0964633dd78f75604d302373be672fe76b0053 100755 (executable)
--- a/simple.sh
+++ b/simple.sh
@@ -169,8 +169,10 @@ $CC -g -D HAVE_CONFIG_H=1 -I include -I include/$mes_kernel/$mes_cpu\
     lib/mes/__assert_fail.c\
     lib/mes/__mes_debug.c\
     lib/posix/execv.c\
+    lib/posix/getcwd.c\
     lib/posix/getenv.c\
     lib/posix/isatty.c\
+    lib/posix/open.c\
     lib/posix/setenv.c\
     lib/posix/wait.c\
     lib/stdio/fgetc.c\
@@ -201,10 +203,10 @@ $CC -g -D HAVE_CONFIG_H=1 -I include -I include/$mes_kernel/$mes_cpu\
     lib/linux/execve.c\
     lib/linux/fork.c\
     lib/linux/fsync.c\
-    lib/linux/getcwd.c\
+    lib/linux/_getcwd.c\
     lib/linux/gettimeofday.c\
     lib/linux/ioctl.c\
-    lib/linux/open.c\
+    lib/linux/_open3.c\
     lib/linux/read.c\
     lib/linux/time.c\
     lib/linux/unlink.c\