[BACK]Return to patch-ab CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / sysutils / hal / patches

File: [cvs.NetBSD.org] / pkgsrc / sysutils / hal / patches / Attic / patch-ab (download)

Revision 1.1, Sat Nov 22 15:20:51 2008 UTC (15 years, 4 months ago) by jmcneill
Branch: MAIN

Initial revision

$NetBSD: patch-ab,v 1.1 2008/11/22 15:20:51 jmcneill Exp $

--- tools/hal-storage-shared.c.orig	2008-05-07 19:24:24.000000000 -0400
+++ tools/hal-storage-shared.c
@@ -42,6 +42,10 @@
 #include <fcntl.h>
 #include <sys/mnttab.h>
 #include <sys/vfstab.h>
+#elif __NetBSD__
+#include <fstab.h>
+#include <sys/param.h>
+#include <sys/mount.h>
 #else
 #include <mntent.h>
 #endif
@@ -60,13 +64,20 @@ struct mtab_handle
   int		n_mounts;
   int		iter;
 };
+#elif __NetBSD__
+struct mtab_handle
+{
+  struct statvfs *mounts;
+  int		n_mounts;
+  int		iter;
+};
 #endif
 
 
 gboolean
 mtab_open (gpointer *handle)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	struct mtab_handle *mtab;
 
 	mtab = g_new0 (struct mtab_handle, 1);
@@ -90,7 +101,7 @@ mtab_open (gpointer *handle)
 char *
 mtab_next (gpointer handle, char **mount_point)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	struct mtab_handle *mtab = handle;
 
 	if (mtab->iter < mtab->n_mounts) {
@@ -131,7 +142,7 @@ mtab_next (gpointer handle, char **mount
 void
 mtab_close (gpointer handle)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	g_free (handle);
 #else
 	fclose (handle);
@@ -143,7 +154,7 @@ mtab_close (gpointer handle)
 gboolean
 fstab_open (gpointer *handle)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	return setfsent () == 1;
 #elif sun
 	*handle = fopen (VFSTAB, "r");
@@ -157,7 +168,7 @@ fstab_open (gpointer *handle)
 char *
 fstab_next (gpointer handle, char **mount_point)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	struct fstab *fstab;
 
 	fstab = getfsent ();
@@ -188,7 +199,7 @@ fstab_next (gpointer handle, char **moun
 void
 fstab_close (gpointer handle)
 {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	endfsent ();
 #else
 	fclose (handle);
@@ -197,6 +208,8 @@ fstab_close (gpointer handle)
 
 #ifdef __FreeBSD__
 #define UMOUNT		"/sbin/umount"
+#elif __NetBSD__
+#define UMOUNT		"/sbin/umount"
 #elif sun
 #define UMOUNT		"/sbin/umount"
 #else
@@ -467,7 +480,7 @@ line_found:
 	/* construct arguments to /bin/umount */
 	na = 0;
 	args[na++] = UMOUNT;
-#ifndef __FreeBSD__
+#if !defined(__FreeBSD__) && !defined(__NetBSD__)
 	if (option_lazy)
 		args[na++] = "-l";
 #endif
@@ -632,6 +645,11 @@ try_open_excl_again:
 		args[na++] = "close";
 	else
 		args[na++] = "eject";
+#elif __NetBSD__
+	args[na++] = "-f";
+	if (closetray)
+		args[na++] = "-l";
+	args[na++] = (char *) device;
 #else
 	if (closetray) {
 		args[na++] = "-t";