Loading...
gen/disklabel.c Libc-262 Libc-997.1.1
--- Libc/Libc-262/gen/disklabel.c
+++ Libc/Libc-997.1.1/gen/disklabel.c
@@ -1,21 +1,22 @@
 /*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1999, 2008 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
@@ -57,8 +58,9 @@
 #include <sys/time.h>
 #define DKTYPENAMES
 #include <sys/disklabel.h>
-#include <ufs/ufs/dinode.h>
-#include <ufs/ffs/fs.h>
+/* from ufs/ffs/fs.h */
+#define BBSIZE		8192
+#define SBSIZE		8192
 
 #include <errno.h>
 #include <fcntl.h>
@@ -68,16 +70,16 @@
 #include <unistd.h>
 #include <ctype.h>
 
-static int	error __P((int));
-static int	gettype __P((char *, char **));
+#ifdef unused
+static int	error(int);
+#endif // unused
+static int	gettype(char *, char **);
 
 struct disklabel *
-getdiskbyname(name)
-	const char *name;
+getdiskbyname(const char *name)
 {
-	static struct	disklabel disk;
-	register struct	disklabel *dp = &disk;
-	register struct partition *pp;
+	static struct disklabel *dp = NULL;
+	struct partition *pp;
 	char	*buf;
 	char  	*db_array[2] = { _PATH_DISKTAB, 0 };
 	char	*cp, *cq;	/* can't be register */
@@ -88,7 +90,14 @@
 	if (cgetent(&buf, db_array, (char *) name) < 0)
 		return NULL;
 
-	bzero((char *)&disk, sizeof(disk));
+	if (dp == NULL) {
+		dp = malloc(sizeof(struct disklabel));
+		if (dp == NULL) {
+			return NULL;
+		}
+	}
+	memset(dp, 0, sizeof(struct disklabel));
+
 	/*
 	 * typename
 	 */
@@ -189,6 +198,7 @@
 	return (0);
 }
 
+#ifdef unused
 static int
 error(err)
 	int err;
@@ -202,3 +212,4 @@
 	(void)write(STDERR_FILENO, p, strlen(p));
 	(void)write(STDERR_FILENO, "\n", 1);
 }
+#endif // unused