From 5e1a84ab74d5e97582427f016f291a8c11e66f99 Mon Sep 17 00:00:00 2001 From: jutteau Date: Fri, 11 May 2007 18:10:19 +0000 Subject: Completion du script de mise à jour de la pc-104 : * Ajout des sources de busybox dans ./conf/busybox/ * Ajout d'un fichier réclamé par les script dans ./conf/busybox.links --- i/pc104/initrd/conf/busybox/libbb/mtab.c | 52 ++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 i/pc104/initrd/conf/busybox/libbb/mtab.c (limited to 'i/pc104/initrd/conf/busybox/libbb/mtab.c') diff --git a/i/pc104/initrd/conf/busybox/libbb/mtab.c b/i/pc104/initrd/conf/busybox/libbb/mtab.c new file mode 100644 index 0000000..18386ef --- /dev/null +++ b/i/pc104/initrd/conf/busybox/libbb/mtab.c @@ -0,0 +1,52 @@ +/* vi: set sw=4 ts=4: */ +/* + * Utility routines. + * + * Copyright (C) 1999-2004 by Erik Andersen + * + * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + */ + +#include +#include "libbb.h" + +#if ENABLE_FEATURE_MTAB_SUPPORT +void erase_mtab(const char *name) +{ + struct mntent *entries = NULL; + int i, count = 0; + FILE *mountTable; + struct mntent *m; + + mountTable = setmntent(bb_path_mtab_file, "r"); + /* Bummer. Fall back on trying the /proc filesystem */ + if (!mountTable) mountTable = setmntent("/proc/mounts", "r"); + if (!mountTable) { + bb_perror_msg(bb_path_mtab_file); + return; + } + + while ((m = getmntent(mountTable)) != 0) { + i = count++; + entries = xrealloc(entries, count * sizeof(entries[0])); + entries[i].mnt_fsname = xstrdup(m->mnt_fsname); + entries[i].mnt_dir = xstrdup(m->mnt_dir); + entries[i].mnt_type = xstrdup(m->mnt_type); + entries[i].mnt_opts = xstrdup(m->mnt_opts); + entries[i].mnt_freq = m->mnt_freq; + entries[i].mnt_passno = m->mnt_passno; + } + endmntent(mountTable); + + mountTable = setmntent(bb_path_mtab_file, "w"); + if (mountTable) { + for (i = 0; i < count; i++) { + if (strcmp(entries[i].mnt_fsname, name) != 0 + && strcmp(entries[i].mnt_dir, name) != 0) + addmntent(mountTable, &entries[i]); + } + endmntent(mountTable); + } else if (errno != EROFS) + bb_perror_msg(bb_path_mtab_file); +} +#endif -- cgit v1.2.3