]> Zhao Yanbai Git Server - minix.git/commitdiff
libpuffs: make GCC happy
authorThomas Veerman <thomas@minix3.org>
Wed, 1 Feb 2012 11:44:26 +0000 (11:44 +0000)
committerThomas Veerman <thomas@minix3.org>
Wed, 1 Feb 2012 13:23:33 +0000 (13:23 +0000)
lib/libpuffs/Makefile
lib/libpuffs/fs.h
lib/libpuffs/link.c
lib/libpuffs/null.c
lib/libpuffs/open.c
lib/libpuffs/path.c
lib/libpuffs/path_puffs.c
lib/libpuffs/proto.h
lib/libpuffs/read.c
lib/libpuffs/utility.c

index 967ed1312a1d7e823199756fe2b6b7d6b90431c4..e0abd0e662504b60acb8e59467bb0ae15da40a6a 100644 (file)
@@ -1,17 +1,23 @@
-# Makefile for libpuffs
+#      $NetBSD: Makefile,v 1.24 2010/12/06 14:50:34 pooka Exp $
+#
 
-LIB=    puffs
-CC=    clang
-SRCS=  callcontext.c  creds.c  null.c  pnode.c  puffs.c  subr.c\
-       table.c  link.c  misc.c  open.c  path.c  path_puffs.c  protect.c\
-       read.c  stadir.c  time.c  utility.c  mount.c  inode.c
-INCS=  puffs.h puffs_msgif.h
-INCSDIR=       /usr/include
-MAN=           puffs.3 puffs_cc.3 puffs_cred.3 puffs_node.3 \
-               puffs_ops.3 puffs_path.3
+.include <bsd.own.mk>
 
-DEFAULT_NR_BUFS= 1024
+USE_FORT?= no  # data-driven bugs?
 
-CPPFLAGS+=     -D_MINIX -D_POSIX_SOURCE -D_POSIX_C_SOURCE -D_NETBSD_SOURCE -DDEFAULT_NR_BUFS=${DEFAULT_NR_BUFS}
+WARNS=         4
+
+LIB=           puffs
+
+SRCS=          puffs.c callcontext.c creds.c \
+               null.c pnode.c \
+               subr.c \
+               inode.c link.c misc.c mount.c open.c path.c path_puffs.c \
+               protect.c read.c stadir.c time.c utility.c table.c
+MAN=           puffs.3 puffs_cc.3 puffs_cred.3         \
+               puffs_node.3 puffs_ops.3 puffs_path.3
+INCS=          puffs.h puffs_msgif.h
+INCSDIR=       /usr/include
+LINTFLAGS+=-S -w
 
 .include <bsd.lib.mk>
index 691b0dd2ec09277e1885d6bb1c49c2b21421538d..44c70a9e3a06fdf5ab01ea7769c79092d423097b 100644 (file)
@@ -14,6 +14,7 @@
 /* The following are so basic, all the *.c files get them automatically. */
 #include <minix/config.h>      /* MUST be first */
 #include <minix/ansi.h>                /* MUST be second */
+#include <sys/cdefs.h>
 #include <sys/types.h>
 #include <minix/const.h>
 #include <minix/type.h>
index e85222450f70e9bab0b772ef8219f45154459070..8129df7c90af1fe2eb80d7f539cc9b78136e2378 100644 (file)
@@ -79,7 +79,7 @@ PUBLIC int fs_link()
   time_t cur_time;
   struct puffs_kcn pkcnp;
   PUFFS_MAKECRED(pcr, &global_kcred);
-  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *)pcr, {0}};
+  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) __UNCONST(pcr), {0,0,0}};
 
   if (global_pu->pu_ops.puffs_node_link == NULL)
        return(OK);
@@ -157,7 +157,7 @@ PUBLIC int fs_rdlink()
   register int r;              /* return value */
   size_t copylen;
   struct puffs_node *pn;
-  char user_path[PATH_MAX];
+  char path[PATH_MAX];
   PUFFS_MAKECRED(pcr, &global_kcred);
 
   copylen = fs_m_in.REQ_MEM_SIZE < UMAX_FILE_POS ?
@@ -174,7 +174,7 @@ PUBLIC int fs_rdlink()
   if (global_pu->pu_ops.puffs_node_readlink == NULL)
        return(EINVAL);
 
-  r = global_pu->pu_ops.puffs_node_readlink(global_pu, pn, pcr, user_path,
+  r = global_pu->pu_ops.puffs_node_readlink(global_pu, pn, pcr, path,
                                                &copylen);
   if (r != OK) {
        if (r > 0) r = -r;
@@ -182,7 +182,7 @@ PUBLIC int fs_rdlink()
   }
 
   r = sys_safecopyto(VFS_PROC_NR, (cp_grant_id_t) fs_m_in.REQ_GRANT,
-                 (vir_bytes) 0, (vir_bytes) user_path, (size_t) copylen, D);
+                 (vir_bytes) 0, (vir_bytes) path, (size_t) copylen, D);
   if (r == OK)
          fs_m_out.RES_NBYTES = copylen;
 
@@ -190,9 +190,6 @@ PUBLIC int fs_rdlink()
 }
 
 
-FORWARD _PROTOTYPE( void release_node, (struct puffs_usermount *pu,
-                        struct puffs_node *pn ));
-
 /*===========================================================================*
  *                              fs_rename                                    *
  *===========================================================================*/
@@ -203,10 +200,10 @@ PUBLIC int fs_rename()
   struct puffs_node *new_dirp, *new_ip;      /* ptrs to new dir, file pnodes */
   struct puffs_kcn pkcnp_src;
   PUFFS_MAKECRED(pcr_src, &global_kcred);
-  struct puffs_cn pcn_src = {&pkcnp_src, (struct puffs_cred *) pcr_src, {0}};
+  struct puffs_cn pcn_src = {&pkcnp_src, (struct puffs_cred *) __UNCONST(pcr_src), {0,0,0}};
   struct puffs_kcn pkcnp_dest;
   PUFFS_MAKECRED(pcr_dest, &global_kcred);
-  struct puffs_cn pcn_targ = {&pkcnp_dest, (struct puffs_cred *) pcr_dest, {0}};
+  struct puffs_cn pcn_targ = {&pkcnp_dest, (struct puffs_cred *) __UNCONST(pcr_dest), {0,0,0}};
   int r = OK;                           /* error flag; initially no error */
   int odir, ndir;                       /* TRUE iff {old|new} file is dir */
   int same_pdir;                        /* TRUE iff parent dirs are the same */
@@ -406,7 +403,7 @@ PUBLIC int fs_unlink()
   struct puffs_node *pn, *pn_dir;
   time_t cur_time;
   struct puffs_kcn pkcnp;
-  struct puffs_cn pcn = {&pkcnp, 0, {0}};
+  struct puffs_cn pcn = {&pkcnp, 0, {0,0,0}};
   PUFFS_KCREDTOCRED(pcn.pcn_cred, &global_kcred);
   int len;
 
index d1aad767c9234127f1cb1e3d4863a525b518d831..5e192406290ca7e482940fd16280cc10267025e8 100644 (file)
@@ -66,7 +66,9 @@ processvattr(const char *path, const struct vattr *va, int regular)
                if (chown(path, va->va_uid, va->va_gid) == -1)
                        return errno;
 
+#ifndef __minix
        if (va->va_mode != (unsigned)PUFFS_VNOVAL)
+#endif
                 /* FIXME: lchmod */
                if (chmod(path, va->va_mode) == -1)
                        return errno;
index da3e1f05934c1c71652182b7284261239187c087..1ff9834e5654542e2e108ff9942387e00b3f3a7b 100644 (file)
@@ -25,7 +25,7 @@ PUBLIC int fs_create()
   struct puffs_newinfo pni;
   struct puffs_kcn pkcnp;
   PUFFS_MAKECRED(pcr, &global_kcred);
-  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) pcr, {0}};
+  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) __UNCONST(pcr), {0,0,0}};
   struct vattr va;
   time_t cur_time;
   int len;
@@ -122,7 +122,7 @@ PUBLIC int fs_mknod()
   struct puffs_newinfo pni;
   struct puffs_kcn pkcnp;
   PUFFS_MAKECRED(pcr, &global_kcred);
-  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) pcr, {0}};
+  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) __UNCONST(pcr), {0,0,0}};
   struct vattr va;
   time_t cur_time;
   int len;
@@ -205,7 +205,7 @@ PUBLIC int fs_mkdir()
   struct puffs_newinfo pni;
   struct puffs_kcn pkcnp;
   PUFFS_MAKECRED(pcr, &global_kcred);
-  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) pcr, {0}};
+  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) __UNCONST(pcr), {0,0,0}};
   struct vattr va;
   time_t cur_time;
   int len;
@@ -289,7 +289,7 @@ PUBLIC int fs_slink()
   struct puffs_newinfo pni;
   struct puffs_kcn pkcnp;
   PUFFS_MAKECRED(pcr, &global_kcred);
-  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) pcr, {0}};
+  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) __UNCONST(pcr), {0,0,0}};
   struct vattr va;
   int len;
 
index 211afbfadf44460446f91c02d3218510aea7f634..9ad6e3e11403c9af266a94c98991a1c18e042d89 100644 (file)
@@ -372,7 +372,7 @@ int chk_perm;                       /* check permissions when string is looked up*/
 
   struct puffs_kcn pkcnp;
   PUFFS_MAKECRED(pcr, &global_kcred);
-  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) pcr, {0}};
+  struct puffs_cn pcn = {&pkcnp, (struct puffs_cred *) __UNCONST(pcr), {0,0,0}};
 
   enum vtype node_vtype;
   voff_t size;
index 027f1f8152c8fe45b205f473037e6c2f211db522..70a64ad6cc6a726d6b60c0d63755a8e39adf684a 100644 (file)
@@ -54,6 +54,7 @@ puffs_path_pcnbuild(struct puffs_usermount *pu, struct puffs_cn *pcn,
 
        assert(pn_parent->pn_po.po_path != NULL);
        assert(pu->pu_flags & PUFFS_FLAG_BUILDPATH);
+       pcn_orig = *pcn;
 
        if (pu->pu_pathtransform) {
                rv = pu->pu_pathtransform(pu, &pn_parent->pn_po, pcn, &po);
@@ -65,8 +66,6 @@ puffs_path_pcnbuild(struct puffs_usermount *pu, struct puffs_cn *pcn,
        }
 
        if (pu->pu_namemod) {
-               /* XXX: gcc complains if I do assignment */
-               memcpy(&pcn_orig, pcn, sizeof(pcn_orig));
                rv = pu->pu_namemod(pu, &pn_parent->pn_po, pcn);
                if (rv)
                        return rv;
index da1c95d8bd7f48229657b8d43a5a456744b856ad..09e784d359c3608934421543298d3d0a50af3d16 100644 (file)
@@ -1,12 +1,17 @@
 #ifndef PUFFS_PROTO_H
 #define PUFFS_PROTO_H
 
+struct puffs_usermount;
+struct puffs_node;
+
 /* Function prototypes. */
 
 _PROTOTYPE( int fs_new_driver, (void)                                  );
 
 /* inode.c */
 _PROTOTYPE( int fs_putnode, (void)                                     );
+_PROTOTYPE( void release_node, (struct puffs_usermount *pu,
+                               struct puffs_node *pn )                 );
 
 /* device.c */
 _PROTOTYPE( int dev_open, (endpoint_t driver_e, dev_t dev,
@@ -62,10 +67,10 @@ _PROTOTYPE( int fs_utime, (void)                                    );
 
 /* utility.c */
 _PROTOTYPE( int no_sys, (void)                                          );
-_PROTOTYPE( void mfs_nul_f, (char *file, int line, char *str,
+_PROTOTYPE( void mfs_nul_f, (const char *file, int line, char *str,
                              unsigned int len, unsigned int maxlen)     );
 _PROTOTYPE( time_t clock_time, (void)                                  );
 _PROTOTYPE( int update_times, (struct puffs_node *pn, int fl, time_t t) );
-_PROTOTYPE( void lpuffs_debug, (char *format, ...)                     );
+_PROTOTYPE( void lpuffs_debug, (const char *format, ...)                       );
 
 #endif /* PUFFS_PROTO_H */
index 3e260b10b999497e8a41147fe77cf6a538aaf2dc..4c4516b0fffd1ac980550a6e21882e342c973f1f 100644 (file)
@@ -32,7 +32,7 @@ PUBLIC int fs_readwrite(void)
   int r = OK, rw_flag;
   cp_grant_id_t gid;
   off_t pos;
-  size_t nrbytes, bytes_left, bytes_done;
+  size_t nrbytes, bytes_left, bytes_done = 0;
   struct puffs_node *pn;
   struct vattr va;
   PUFFS_MAKECRED(pcr, &global_kcred);
@@ -51,7 +51,7 @@ PUBLIC int fs_readwrite(void)
   if (nrbytes > RW_BUFSIZ)
        nrbytes = bytes_left = RW_BUFSIZ;
 
-  memset(getdents_buf, '\0', RW_BUFSIZ);  /* Avoid leaking any data */
+  memset(getdents_buf, '\0', GETDENTS_BUFSIZ);  /* Avoid leaking any data */
 
   if (rw_flag == READING) {
        if (global_pu->pu_ops.puffs_node_read == NULL)
index a1e262d874540ad0ccc7d3bce2a4338059861fab..5b49869e21dc98ad16aeac9d7a951812cab3cb63 100644 (file)
@@ -24,7 +24,7 @@ PUBLIC int no_sys()
 /*===========================================================================*
  *                              mfs_nul                                      *
  *===========================================================================*/
-PUBLIC void mfs_nul_f(char *file, int line, char *str, unsigned int len,
+PUBLIC void mfs_nul_f(const char *file, int line, char *str, unsigned int len,
                       unsigned int maxlen)
 {
   if (len < maxlen && str[len-1] != '\0') {
@@ -103,7 +103,7 @@ PUBLIC int update_times(struct puffs_node *pn, int flags, time_t t)
 /*===========================================================================*
  *                             lpuffs_debug                                 *
  *===========================================================================*/
-PUBLIC void lpuffs_debug(char *format, ...)
+PUBLIC void lpuffs_debug(const char *format, ...)
 {   
   char buffer[256];
   va_list args;