]> Zhao Yanbai Git Server - minix.git/commitdiff
Giovanni's symlinks patches (libs)
authorBen Gras <ben@minix3.org>
Mon, 31 Oct 2005 14:28:19 +0000 (14:28 +0000)
committerBen Gras <ben@minix3.org>
Mon, 31 Oct 2005 14:28:19 +0000 (14:28 +0000)
lib/posix/lstat.c
lib/posix/readlink.c
lib/posix/symlink.c

index b96fa6fff155a7e735a46907393792ebe596477f..bdde67c5279676c263d6e9f60d1262288a9dc352 100644 (file)
@@ -1,13 +1,16 @@
-/*
-lstat.c
-*/
-
-#define stat _stat
-
+#include <lib.h>
+#define lstat  _lstat
 #include <sys/stat.h>
+#include <string.h>
 
-int lstat(const char *path, struct stat *sb)
+PUBLIC int lstat(name, buffer)
+_CONST char *name;
+struct stat *buffer;
 {
-       /* Without symlinks, lstat is equal to stat */
-       return stat(path, sb);
+  message m;
+
+  m.m1_i1 = strlen(name) + 1;
+  m.m1_p1 = (char *) name;
+  m.m1_p2 = (char *) buffer;
+  return(_syscall(FS, LSTAT, &m));
 }
index be8350d0c41406f236e1ddc5967a58ea2d39fde5..3243c93bb74e5f1146c6a5c58eb8f31e5953c454 100644 (file)
@@ -1,12 +1,18 @@
-/*
-readlink.c
-*/
-
+#include <lib.h>
 #include <unistd.h>
-#include <errno.h>
+#include <string.h>
 
-int readlink(const char *path, char *buf, int bufsiz)
+PUBLIC int readlink(name, buffer, bufsiz)
+_CONST char *name;
+char *buffer;
+size_t bufsiz;
 {
-       errno = EINVAL; /* "The named file is not a symbolic link" */
-       return -1;
+  message m;
+
+  m.m1_i1 = strlen(name) + 1;
+  m.m1_i2 = bufsiz;
+  m.m1_p1 = (char *) name;
+  m.m1_p2 = (char *) buffer;
+
+  return(_syscall(FS, RDLNK, &m));
 }
index 3e918fe0847272a7e772e126058fdd0c0ab81c96..9398ca918895c6f796a181f4d4989862174ecbca 100644 (file)
@@ -1,12 +1,16 @@
-/*
-symlink.c
-*/
-
-#include <errno.h>
+#include <lib.h>
+#define symlink        _symlink
+#include <string.h>
 #include <unistd.h>
 
-int symlink(const char *path1, const char *path2)
+PUBLIC int symlink(name, name2)
+_CONST char *name, *name2;
 {
-       errno= ENOSYS;
-       return -1;
+  message m;
+
+  m.m1_i1 = strlen(name) + 1;
+  m.m1_i2 = strlen(name2) + 1;
+  m.m1_p1 = (char *) name;
+  m.m1_p2 = (char *) name2;
+  return(_syscall(FS, SYMLINK, &m));
 }