~ubuntu-branches/ubuntu/lucid/mc/lucid

« back to all changes in this revision

Viewing changes to src/mountlist.c

  • Committer: Bazaar Package Importer
  • Author(s): Patrick Winnertz
  • Date: 2008-09-16 10:38:59 UTC
  • mfrom: (3.1.6 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080916103859-2uwn8w61xk5mbxxq
Tags: 2:4.6.2~git20080311-4
Corrected fix for odt2txt issue (Closes: #492019) 

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
   along with this program; if not, write to the Free Software
16
16
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
17
17
 
18
 
#ifdef HAVE_CONFIG_H
19
18
#include <config.h>
20
 
#endif
21
19
 
22
 
#include <sys/types.h>
23
20
#include <stdio.h>
24
21
#include <stdlib.h>
25
22
 
 
23
#include <sys/types.h>
 
24
 
26
25
/* This header needs to be included before sys/mount.h on *BSD */
27
26
#ifdef HAVE_SYS_PARAM_H
28
27
#include <sys/param.h>
49
48
#include <sys/mount.h>
50
49
#endif
51
50
 
 
51
#ifdef MOUNTED_GETMNTINFO2      /* NetBSD 3.0.  */
 
52
#include <sys/statvfs.h>
 
53
#endif
 
54
 
52
55
#ifdef MOUNTED_GETMNT           /* Ultrix.  */
53
56
#include <sys/mount.h>
54
57
#include <sys/fs_types.h>
170
173
}
171
174
#endif /* MOUNTED_GETMNTENT1 */
172
175
 
173
 
#if defined (MOUNTED_GETMNTINFO) && !defined (HAVE_F_FSTYPENAME)
 
176
#ifdef MOUNTED_GETMNTINFO
 
177
 
 
178
#ifndef HAVE_STRUCT_STATFS_F_FSTYPENAME
174
179
static char *fstype_to_string (short t)
175
180
{
176
181
    switch (t) {
177
 
    case MOUNT_UFS:
178
 
        return "ufs";
179
 
    case MOUNT_NFS:
180
 
        return "nfs";
181
182
#ifdef MOUNT_PC
182
183
    case MOUNT_PC:
183
184
        return "pc";
198
199
    case MOUNT_TMP:
199
200
        return "tmp";
200
201
#endif
 
202
#ifdef MOUNT_UFS
 
203
   case MOUNT_UFS:
 
204
     return "ufs" ;
 
205
#endif
 
206
#ifdef MOUNT_NFS
 
207
   case MOUNT_NFS:
 
208
     return "nfs" ;
 
209
#endif
 
210
#ifdef MOUNT_MSDOS
 
211
   case MOUNT_MSDOS:
 
212
     return "msdos" ;
 
213
#endif
 
214
#ifdef MOUNT_LFS
 
215
   case MOUNT_LFS:
 
216
     return "lfs" ;
 
217
#endif
 
218
#ifdef MOUNT_LOFS
 
219
   case MOUNT_LOFS:
 
220
     return "lofs" ;
 
221
#endif
 
222
#ifdef MOUNT_FDESC
 
223
   case MOUNT_FDESC:
 
224
     return "fdesc" ;
 
225
#endif
 
226
#ifdef MOUNT_PORTAL
 
227
   case MOUNT_PORTAL:
 
228
     return "portal" ;
 
229
#endif
 
230
#ifdef MOUNT_NULL
 
231
   case MOUNT_NULL:
 
232
     return "null" ;
 
233
#endif
 
234
#ifdef MOUNT_UMAP
 
235
   case MOUNT_UMAP:
 
236
     return "umap" ;
 
237
#endif
 
238
#ifdef MOUNT_KERNFS
 
239
   case MOUNT_KERNFS:
 
240
     return "kernfs" ;
 
241
#endif
 
242
#ifdef MOUNT_PROCFS
 
243
   case MOUNT_PROCFS:
 
244
     return "procfs" ;
 
245
#endif
 
246
#ifdef MOUNT_AFS
 
247
   case MOUNT_AFS:
 
248
     return "afs" ;
 
249
#endif
 
250
#ifdef MOUNT_CD9660
 
251
   case MOUNT_CD9660:
 
252
     return "cd9660" ;
 
253
#endif
 
254
#ifdef MOUNT_UNION
 
255
   case MOUNT_UNION:
 
256
     return "union" ;
 
257
#endif
 
258
#ifdef MOUNT_DEVFS
 
259
   case MOUNT_DEVFS:
 
260
     return "devfs" ;
 
261
#endif
 
262
#ifdef MOUNT_EXT2FS
 
263
   case MOUNT_EXT2FS:
 
264
     return "ext2fs" ;
 
265
#endif
201
266
    default:
202
267
        return "?";
203
268
    }
204
269
}
205
 
#endif /* MOUNTED_GETMNTINFO && !HAVE_F_FSTYPENAME */
 
270
#endif /* ! HAVE_STRUCT_STATFS_F_FSTYPENAME */
 
271
 
 
272
#endif /* MOUNTED_GETMNTINFO */
206
273
 
207
274
#ifdef MOUNTED_VMOUNT           /* AIX.  */
208
275
static char *
232
299
    struct mount_entry *me;
233
300
    struct mount_entry *mtail;
234
301
 
 
302
    (void) need_fs_type;
 
303
    (void) all_fs;
 
304
 
235
305
    /* Start the list off with a dummy entry. */
236
306
    me = (struct mount_entry *) malloc (sizeof (struct mount_entry));
237
307
    me->me_next = NULL;
290
360
            me = (struct mount_entry *) malloc (sizeof (struct mount_entry));
291
361
            me->me_devname = strdup (fsp->f_mntfromname);
292
362
            me->me_mountdir = strdup (fsp->f_mntonname);
293
 
#ifdef HAVE_F_FSTYPENAME
 
363
#ifdef HAVE_STRUCT_STATFS_F_FSTYPENAME
294
364
            me->me_type = strdup (fsp->f_fstypename);
295
365
#else
296
366
            me->me_type = fstype_to_string (fsp->f_type);
306
376
    }
307
377
#endif /* MOUNTED_GETMNTINFO */
308
378
 
 
379
#ifdef MOUNTED_GETMNTINFO2      /* NetBSD 3.0.  */
 
380
    {
 
381
        struct statvfs *fsp;
 
382
        int entries;
 
383
 
 
384
        entries = getmntinfo (&fsp, MNT_NOWAIT);
 
385
        if (entries < 0)
 
386
            return NULL;
 
387
        for (; entries-- > 0; fsp++) {
 
388
            me = (struct mount_entry *) malloc (sizeof (struct mount_entry));
 
389
            me->me_devname = strdup (fsp->f_mntfromname);
 
390
            me->me_mountdir = strdup (fsp->f_mntonname);
 
391
            me->me_type = strdup (fsp->f_fstypename);
 
392
            me->me_dev = (dev_t) -1;    /* Magic; means not known yet. */
 
393
 
 
394
            /* Add to the linked list. */
 
395
            mtail->me_next = me;
 
396
            mtail = me;
 
397
        }
 
398
    }
 
399
#endif /* MOUNTED_GETMNTINFO2 */
 
400
 
309
401
#ifdef MOUNTED_GETMNT           /* Ultrix.  */
310
402
    {
311
403
        int offset = 0;
607
699
    }
608
700
 
609
701
    if (entry){
 
702
        memset (&fs_use, 0, sizeof (struct fs_usage));
610
703
        get_fs_usage (entry->me_mountdir, &fs_use);
611
704
 
612
705
        myfs_stats->type = entry->me_dev;