date and time created 92/07/21 13:20:51 by bostic
[unix-history] / usr / src / usr.sbin / amd / config / mtab_ultrix.c
CommitLineData
e1a31032 1/*
e1a31032
KM
2 * Copyright (c) 1990 Jan-Simon Pendry
3 * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
4 * Copyright (c) 1990 The Regents of the University of California.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * Jan-Simon Pendry at Imperial College, London.
9 *
10 * %sccs.include.redist.c%
11 *
332f0791 12 * @(#)mtab_ultrix.c 5.4 (Berkeley) %G%
8d2991d5 13 *
332f0791 14 * $Id: mtab_ultrix.c,v 5.2.2.1 1992/02/09 15:10:50 jsp beta $
8d2991d5 15 *
e1a31032
KM
16 */
17
18#include "am.h"
19
20#ifdef READ_MTAB_ULTRIX_STYLE
21
22#include <sys/mount.h>
23#include <sys/fs_types.h>
24
25static struct mntent *mnt_dup(mp)
26struct fs_data *mp;
27{
28 struct mntent *new_mp = ALLOC(mntent);
29
30 new_mp->mnt_fsname = strdup(mp->fd_devname);
31 new_mp->mnt_dir = strdup(mp->fd_path);
32 if (mp->fd_fstype >= GT_NUMTYPES)
33 mp->fd_fstype = GT_UNKWN;
34 else if (gt_names[mp->fd_fstype] == 0)
35 mp->fd_fstype = GT_UNKWN;
36 new_mp->mnt_type = strdup(gt_names[mp->fd_fstype]);
37 new_mp->mnt_opts = strdup("unset");
38
39 new_mp->mnt_freq = 0;
40 new_mp->mnt_passno = mp->fd_dev;
41
42 return new_mp;
43}
44
45/*
46 * Read a mount table into memory
47 */
48mntlist *read_mtab(fs)
49char *fs;
50{
51 mntlist **mpp, *mhp;
52
53/* From: Piete Brooks <pb@cl.cam.ac.uk> */
54
55 int loc=0;
56#undef NMOUNT
57#define NMOUNT 20
58 struct fs_data mountbuffer[NMOUNT], *fs_data;
59 int ret;
60
61 mpp = &mhp;
62 while ((ret = getmountent(&loc, mountbuffer, NMOUNT)) > 0) {
63 for (fs_data = mountbuffer; fs_data < &mountbuffer[ret]; fs_data++) {
64 /*
65 * Allocate a new slot
66 */
67 *mpp = ALLOC(mntlist);
68
69 /*
70 * Copy the data returned by getmntent
71 */
72 (*mpp)->mnt = mnt_dup(fs_data);
73
74 /*
75 * Move to next pointer
76 */
77 mpp = &(*mpp)->mnext;
78 }
79 }
80 if (ret < 0) {
81 plog(XLOG_ERROR, "getmountent: %m");
82 return 0;
83 }
84 *mpp = 0;
85
86 return mhp;
87}
88
89#endif /* READ_MTAB_ULTRIX_STYLE */