Module Name: src
Committed By: tsutsui
Date: Sat May 21 15:50:42 UTC 2011
Modified Files:
src/sys/arch/sparc/stand/ofwboot: Locore.c Makefile boot.c
loadfile_machdep.c net.c net.h netif_of.c ofdev.c openfirm.h
promlib.c
Log Message:
WARNSfy and fix dumb bugs noticed by warnings.
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/sparc/stand/ofwboot/Locore.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/sparc/stand/ofwboot/Makefile
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/sparc/stand/ofwboot/boot.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/sparc/stand/ofwboot/loadfile_machdep.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/sparc/stand/ofwboot/net.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/sparc/stand/ofwboot/net.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/sparc/stand/ofwboot/netif_of.c
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/sparc/stand/ofwboot/ofdev.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/sparc/stand/ofwboot/openfirm.h
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/sparc/stand/ofwboot/promlib.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/sparc/stand/ofwboot/Locore.c
diff -u src/sys/arch/sparc/stand/ofwboot/Locore.c:1.11 src/sys/arch/sparc/stand/ofwboot/Locore.c:1.12
--- src/sys/arch/sparc/stand/ofwboot/Locore.c:1.11 Mon May 18 11:39:30 2009
+++ src/sys/arch/sparc/stand/ofwboot/Locore.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: Locore.c,v 1.11 2009/05/18 11:39:30 nakayama Exp $ */
+/* $NetBSD: Locore.c,v 1.12 2011/05/21 15:50:42 tsutsui Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -764,12 +764,12 @@
if (virt == NULL) {
if ((virt = (void*)OF_alloc_virt(size, align)) == (void*)-1) {
- printf("OF_alloc_virt(%d,%d) failed w/%x\n", size, align, virt);
+ printf("OF_alloc_virt(%d,%d) failed w/%p\n", size, align, virt);
return (void *)-1;
}
} else {
if ((newvirt = (void*)OF_claim_virt((vaddr_t)virt, size)) == (void*)-1) {
- printf("OF_claim_virt(%x,%d) failed w/%x\n", virt, size, newvirt);
+ printf("OF_claim_virt(%p,%d) failed w/%p\n", virt, size, newvirt);
return (void *)-1;
}
}
@@ -779,7 +779,8 @@
return (void *)-1;
}
if (OF_map_phys(paddr, size, (vaddr_t)virt, -1) == -1) {
- printf("OF_map_phys(%x,%d,%x,%d) failed\n", paddr, size, virt, -1);
+ printf("OF_map_phys(0x%lx,%d,%p,%d) failed\n",
+ (u_long)paddr, size, virt, -1);
OF_free_phys((paddr_t)paddr, size);
OF_free_virt((vaddr_t)virt, size);
return (void *)-1;
Index: src/sys/arch/sparc/stand/ofwboot/Makefile
diff -u src/sys/arch/sparc/stand/ofwboot/Makefile:1.28 src/sys/arch/sparc/stand/ofwboot/Makefile:1.29
--- src/sys/arch/sparc/stand/ofwboot/Makefile:1.28 Sun Jan 23 11:29:46 2011
+++ src/sys/arch/sparc/stand/ofwboot/Makefile Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.28 2011/01/23 11:29:46 nakayama Exp $
+# $NetBSD: Makefile,v 1.29 2011/05/21 15:50:42 tsutsui Exp $
CURDIR= ${.CURDIR}
S= ${CURDIR}/../../../..
@@ -7,7 +7,7 @@
# Override normal settings
#
-WARNS= 0
+WARNS?= 2
PROG?= ofwboot
SRCS= srt0.s Locore.c boot.c ofdev.c alloc.c net.c netif_of.c vers.c
Index: src/sys/arch/sparc/stand/ofwboot/boot.c
diff -u src/sys/arch/sparc/stand/ofwboot/boot.c:1.27 src/sys/arch/sparc/stand/ofwboot/boot.c:1.28
--- src/sys/arch/sparc/stand/ofwboot/boot.c:1.27 Sat Jan 22 19:19:24 2011
+++ src/sys/arch/sparc/stand/ofwboot/boot.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: boot.c,v 1.27 2011/01/22 19:19:24 joerg Exp $ */
+/* $NetBSD: boot.c,v 1.28 2011/05/21 15:50:42 tsutsui Exp $ */
/*
* Copyright (c) 1997, 1999 Eduardo E. Horvath. All rights reserved.
@@ -230,8 +230,8 @@
static void
ksyms_copyout(void **ssym, void **esym)
{
- void *addr;
- int kssize = (int)(long)(*esym - *ssym + 1);
+ uint8_t *addr;
+ int kssize = (int)(long)((char *)*esym - (char *)*ssym + 1);
DPRINTF(("ksyms_copyout(): ssym = %p, esym = %p, kssize = %d\n",
*ssym, *esym, kssize));
@@ -253,7 +253,6 @@
static void
jump_to_kernel(u_long *marks, char *kernel, char *args, void *ofw)
{
- extern char end[];
int l, machine_tag;
long newargs[4];
void *ssym, *esym;
@@ -467,7 +466,7 @@
static void
check_boot_config(void)
{
- int fd, err, off, len;
+ int fd, off, len;
struct stat st;
char *bc;
@@ -515,7 +514,7 @@
for (;; *kernel = '\0') {
if (boothowto & RB_ASKNAME) {
- char *cp, cmdline[PROM_MAX_PATH];
+ char cmdline[PROM_MAX_PATH];
printf("Boot: ");
gets(cmdline);
Index: src/sys/arch/sparc/stand/ofwboot/loadfile_machdep.c
diff -u src/sys/arch/sparc/stand/ofwboot/loadfile_machdep.c:1.8 src/sys/arch/sparc/stand/ofwboot/loadfile_machdep.c:1.9
--- src/sys/arch/sparc/stand/ofwboot/loadfile_machdep.c:1.8 Fri May 20 14:49:54 2011
+++ src/sys/arch/sparc/stand/ofwboot/loadfile_machdep.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: loadfile_machdep.c,v 1.8 2011/05/20 14:49:54 he Exp $ */
+/* $NetBSD: loadfile_machdep.c,v 1.9 2011/05/21 15:50:42 tsutsui Exp $ */
/*-
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -71,7 +71,9 @@
static void* ofw_memset(void *, int, size_t);
static void ofw_freeall(void);
+#if 0
static int nop_mapin(vaddr_t, vsize_t);
+#endif
static ssize_t nop_read(int, void *, size_t);
static void* nop_memcpy(void *, const void *, size_t);
static void* nop_memset(void *, int, size_t);
Index: src/sys/arch/sparc/stand/ofwboot/net.c
diff -u src/sys/arch/sparc/stand/ofwboot/net.c:1.6 src/sys/arch/sparc/stand/ofwboot/net.c:1.7
--- src/sys/arch/sparc/stand/ofwboot/net.c:1.6 Sat May 21 15:10:34 2011
+++ src/sys/arch/sparc/stand/ofwboot/net.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: net.c,v 1.6 2011/05/21 15:10:34 christos Exp $ */
+/* $NetBSD: net.c,v 1.7 2011/05/21 15:50:42 tsutsui Exp $ */
/*
* Copyright (C) 1995 Wolfgang Solfrank.
@@ -60,12 +60,14 @@
#include <lib/libsa/stand.h>
#include <lib/libsa/net.h>
#include <lib/libsa/netif.h>
+#include <lib/libsa/bootp.h>
#include <lib/libsa/bootparam.h>
#include <lib/libsa/nfs.h>
#include <lib/libkern/libkern.h>
#include "ofdev.h"
+#include "net.h"
static int net_mountroot_bootparams(void);
@@ -116,6 +118,7 @@
netif_close(netdev_sock);
netdev_sock = -1;
}
+ return 0;
}
static void
@@ -178,14 +181,13 @@
}
int
-net_tftp_bootp(int **sock)
+net_tftp_bootp(struct of_dev *op)
{
net_mountroot_bootp();
if (myip.s_addr == 0)
return(ENOENT);
- *sock = &netdev_sock;
return (0);
}
Index: src/sys/arch/sparc/stand/ofwboot/net.h
diff -u src/sys/arch/sparc/stand/ofwboot/net.h:1.1 src/sys/arch/sparc/stand/ofwboot/net.h:1.2
--- src/sys/arch/sparc/stand/ofwboot/net.h:1.1 Fri May 20 14:49:54 2011
+++ src/sys/arch/sparc/stand/ofwboot/net.h Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: net.h,v 1.1 2011/05/20 14:49:54 he Exp $ */
+/* $NetBSD: net.h,v 1.2 2011/05/21 15:50:42 tsutsui Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -32,11 +32,9 @@
#ifndef _OFWBOOT_NET_H
#define _OFWBOOT_NET_H
-extern int net_open(struct of_dev *);
-extern int net_close(struct of_dev *);
-extern int net_mountroot_bootparams(void);
-extern int net_mountroot_bootp(void);
-extern int net_tftp_bootp(int **);
-extern int net_mountroot(void);
+int net_open(struct of_dev *);
+int net_close(struct of_dev *);
+int net_tftp_bootp(struct of_dev *);
+int net_mountroot(void);
#endif /* _OFWBOOT_NET_H */
Index: src/sys/arch/sparc/stand/ofwboot/netif_of.c
diff -u src/sys/arch/sparc/stand/ofwboot/netif_of.c:1.7 src/sys/arch/sparc/stand/ofwboot/netif_of.c:1.8
--- src/sys/arch/sparc/stand/ofwboot/netif_of.c:1.7 Wed Mar 18 16:00:15 2009
+++ src/sys/arch/sparc/stand/ofwboot/netif_of.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: netif_of.c,v 1.7 2009/03/18 16:00:15 cegger Exp $ */
+/* $NetBSD: netif_of.c,v 1.8 2011/05/21 15:50:42 tsutsui Exp $ */
/*
* Copyright (C) 1995 Wolfgang Solfrank.
@@ -73,8 +73,6 @@
{
struct of_dev *op = machdep_hint;
struct iodesc *io;
- int fd, error;
- char addr[32];
#ifdef NETIF_DEBUG
printf("netif_open...");
Index: src/sys/arch/sparc/stand/ofwboot/ofdev.c
diff -u src/sys/arch/sparc/stand/ofwboot/ofdev.c:1.29 src/sys/arch/sparc/stand/ofwboot/ofdev.c:1.30
--- src/sys/arch/sparc/stand/ofwboot/ofdev.c:1.29 Fri May 20 14:49:54 2011
+++ src/sys/arch/sparc/stand/ofwboot/ofdev.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: ofdev.c,v 1.29 2011/05/20 14:49:54 he Exp $ */
+/* $NetBSD: ofdev.c,v 1.30 2011/05/21 15:50:42 tsutsui Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -57,6 +57,7 @@
#include "ofdev.h"
#include "net.h"
#include "boot.h"
+#include "net.h"
extern char bootdev[];
extern bool root_fs_quickseekable;
@@ -180,14 +181,17 @@
#endif
prom_close(op->handle);
op->handle = -1;
+ return 0;
}
static struct devsw ofdevsw[1] = {
- "OpenFirmware",
- strategy,
- (int (*)(struct open_file *, ...))nodev,
- devclose,
- noioctl
+ {
+ "OpenFirmware",
+ strategy,
+ (int (*)(struct open_file *, ...))nodev,
+ devclose,
+ noioctl
+ }
};
int ndevs = sizeof ofdevsw / sizeof ofdevsw[0];
@@ -214,13 +218,6 @@
char opened_name[256];
int floppyboot;
-static u_long
-get_long(const void *p)
-{
- const unsigned char *cp = p;
-
- return cp[0] | (cp[1] << 8) | (cp[2] << 16) | (cp[3] << 24);
-}
/************************************************************************
*
* The rest of this was taken from arch/sparc64/scsi/sun_disklabel.c
@@ -326,15 +323,9 @@
search_label(struct of_dev *devp, u_long off, char *buf,
struct disklabel *lp, u_long off0)
{
- size_t read;
- struct mbr_partition *p;
- int i;
- u_long poff;
- static int recursion;
-
+ size_t readsize;
struct disklabel *dlp;
struct sun_disklabel *slp;
- int error;
/* minimal requirements for archtypal disk label */
if (lp->d_secperunit == 0)
@@ -344,8 +335,8 @@
lp->d_partitions[0].p_size = 0x1fffffff;
lp->d_partitions[0].p_offset = 0;
- if (strategy(devp, F_READ, LABELSECTOR, DEV_BSIZE, buf, &read)
- || read != DEV_BSIZE)
+ if (strategy(devp, F_READ, LABELSECTOR, DEV_BSIZE, buf, &readsize)
+ || readsize != DEV_BSIZE)
return ("Cannot read label");
/* Check for a NetBSD disk label. */
dlp = (struct disklabel *) (buf + LABELOFFSET);
@@ -379,8 +370,8 @@
} b;
struct disklabel label;
int handle, part, try = 0;
- size_t read;
- char *errmsg = NULL, *pp, savedpart = 0;
+ size_t readsize;
+ char *errmsg = NULL, *pp = NULL, savedpart = 0;
int error = 0;
if (ofdev.handle != -1)
@@ -475,8 +466,8 @@
/* First try to find a disklabel without MBR partitions */
DPRINTF(("devopen: trying to read disklabel\n"));
if (strategy(&ofdev, F_READ,
- LABELSECTOR, DEV_BSIZE, b.buf, &read) != 0
- || read != DEV_BSIZE
+ LABELSECTOR, DEV_BSIZE, b.buf, &readsize) != 0
+ || readsize != DEV_BSIZE
|| (errmsg = getdisklabel(b.buf, &label))) {
if (errmsg) {
DPRINTF(("devopen: getdisklabel returned %s\n",
@@ -536,7 +527,7 @@
}
#ifdef NETBOOT
if (!strcmp(b.buf, "network")) {
- if (error = net_open(&ofdev))
+ if ((error = net_open(&ofdev)) != 0)
goto bad;
ofdev.type = OFDEV_NET;
@@ -546,14 +537,14 @@
if (!strncmp(*file,"/tftp:",6)) {
*file += 6;
memcpy(&file_system[0], &file_system_tftp, sizeof file_system[0]);
- if (net_tftp_bootp((int**)&of->f_devdata)) {
+ if (net_tftp_bootp(of->f_devdata)) {
net_close(&ofdev);
goto bad;
}
root_fs_quickseekable = false;
} else {
memcpy(&file_system[0], &file_system_nfs, sizeof file_system[0]);
- if (error = net_mountroot()) {
+ if ((error = net_mountroot()) != 0) {
net_close(&ofdev);
goto bad;
}
Index: src/sys/arch/sparc/stand/ofwboot/openfirm.h
diff -u src/sys/arch/sparc/stand/ofwboot/openfirm.h:1.4 src/sys/arch/sparc/stand/ofwboot/openfirm.h:1.5
--- src/sys/arch/sparc/stand/ofwboot/openfirm.h:1.4 Mon May 18 11:39:30 2009
+++ src/sys/arch/sparc/stand/ofwboot/openfirm.h Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: openfirm.h,v 1.4 2009/05/18 11:39:30 nakayama Exp $ */
+/* $NetBSD: openfirm.h,v 1.5 2011/05/21 15:50:42 tsutsui Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -58,7 +58,8 @@
void* OF_claim(void *, u_int, u_int);
void OF_release(void *, u_int);
int OF_milliseconds(void);
-void OF_chain(void *, u_int, void (*)(), void *, u_int);
+void OF_chain(void *, u_int,
+ void (*)(int, int, int (*)(void *), void *, u_int), void *, u_int);
int OF_peer(int);
int OF_child(int);
vaddr_t OF_claim_virt(vaddr_t, int);
Index: src/sys/arch/sparc/stand/ofwboot/promlib.c
diff -u src/sys/arch/sparc/stand/ofwboot/promlib.c:1.2 src/sys/arch/sparc/stand/ofwboot/promlib.c:1.3
--- src/sys/arch/sparc/stand/ofwboot/promlib.c:1.2 Mon Apr 28 20:23:36 2008
+++ src/sys/arch/sparc/stand/ofwboot/promlib.c Sat May 21 15:50:42 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: promlib.c,v 1.2 2008/04/28 20:23:36 martin Exp $ */
+/* $NetBSD: promlib.c,v 1.3 2011/05/21 15:50:42 tsutsui Exp $ */
/*-
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -37,6 +37,9 @@
#include <sys/types.h>
#include <machine/promlib.h>
+#include <lib/libsa/stand.h>
+#include <lib/libkern/libkern.h>
+
#include "openfirm.h"
@@ -139,7 +142,7 @@
OF_initialize();
- memset(promops, 0, sizeof(promops));
+ memset(&promops, 0, sizeof(promops));
/* Access to boot arguments */
promops.po_bootpath = openfirmware_bootpath;