X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmountlist.h;h=c3694c21131417d3fc7ec2b72821249cfe0b0755;hb=8c275683036775b0f42833f4e895343d0f3e85fe;hp=963670d4b9951b4d2bf36e999852812f5413501c;hpb=ae9fb019a793319f2f09d902e5e137f35b6a1b74;p=gnulib.git diff --git a/lib/mountlist.h b/lib/mountlist.h index 963670d4b..c3694c211 100644 --- a/lib/mountlist.h +++ b/lib/mountlist.h @@ -1,5 +1,7 @@ -/* mountlist.h -- declarations for list of mounted filesystems - Copyright (C) 1991, 1992 Free Software Foundation, Inc. +/* mountlist.h -- declarations for list of mounted file systems + + Copyright (C) 1991, 1992, 1998, 2000, 2001, 2002, 2003, 2004 Free + Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,6 +17,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include + /* A mount table entry. */ struct mount_entry { @@ -22,17 +26,30 @@ struct mount_entry char *me_mountdir; /* Mount point directory pathname. */ char *me_type; /* "nfs", "4.2", etc. */ dev_t me_dev; /* Device number of me_mountdir. */ + unsigned int me_dummy : 1; /* Nonzero for dummy file systems. */ + unsigned int me_remote : 1; /* Nonzero for remote fileystems. */ + unsigned int me_type_malloced : 1; /* Nonzero if me_type was malloced. */ struct mount_entry *me_next; }; -#if __STDC__ -struct mount_entry *read_filesystem_list (int need_fs_type, int all_fs); -#else -struct mount_entry *read_filesystem_list (); +struct mount_entry *read_file_system_list (bool need_fs_type); + +#ifndef ME_DUMMY +# define ME_DUMMY(Fs_name, Fs_type) \ + (!strcmp (Fs_type, "autofs") \ + /* for Irix 6.5 */ \ + || !strcmp (Fs_type, "ignore")) #endif -/* In most environments, by default, a filesystem type is remote if it - begins with "nfs". This allows variants like "nfs3". */ -#ifndef REMOTE_FS_TYPE -# define REMOTE_FS_TYPE(t) (!strncmp (t, "nfs", 3)) +#undef STREQ +#define STREQ(a, b) (strcmp ((a), (b)) == 0) + +#ifndef ME_REMOTE +/* A file system is `remote' if its Fs_name contains a `:' + or if (it is of type smbfs and its Fs_name starts with `//'). */ +# define ME_REMOTE(Fs_name, Fs_type) \ + (strchr ((Fs_name), ':') != 0 \ + || ((Fs_name)[0] == '/' \ + && (Fs_name)[1] == '/' \ + && STREQ (Fs_type, "smbfs"))) #endif