Package: psmisc
Version: 18
Author: Guillem Jover <guillem@hadrons.org>
Status: not-sent
Description:
 Fix asm strings.
 Use memset instead of bzero, as gcc optimizes the later to memset.
 Fix all warnings.

diff -Naur proll-18.orig/src/hme.c proll-18/src/hme.c
--- proll-18.orig/src/hme.c	2002-07-23 07:52:52.000000000 +0200
+++ proll-18/src/hme.c	2004-11-26 00:48:52.000000000 +0100
@@ -655,10 +655,10 @@
 				    unsigned int flags,
 				    unsigned int addr)
 {
-	__asm__ __volatile__("
-	stwa	%3, [%0] %2
-	stwa	%4, [%1] %2
-"	: /* no outputs */
+	__asm__ __volatile__(
+	"stwa	%3, [%0] %2\n\t"
+	"stwa	%4, [%1] %2\n\t"
+	: /* no outputs */
 	: "r" (&rp->rx_addr), "r" (&rp->rx_flags),
 	  "i" (ASI_PL), "r" (addr), "r" (flags));
 }
@@ -667,10 +667,10 @@
 				    unsigned int flags,
 				    unsigned int addr)
 {
-	__asm__ __volatile__("
-	stwa	%3, [%0] %2
-	stwa	%4, [%1] %2
-"	: /* no outputs */
+	__asm__ __volatile__(
+	"stwa	%3, [%0] %2\n\t"
+	"stwa	%4, [%1] %2\n\t"
+	: /* no outputs */
 	: "r" (&tp->tx_addr), "r" (&tp->tx_flags),
 	  "i" (ASI_PL), "r" (addr), "r" (flags));
 }
@@ -2404,7 +2404,7 @@
 		TXD(("[%d]", elem));
 		this = &txbase[elem];
 #ifdef  __sparc_v9__
-		__asm__ __volatile__("lduwa [%1] %2, %0"
+		__asm__ __volatile__("lduwa [%1] %2, %0\n\t"
 				     : "=r" (flags)
 				     : "r" (&this->tx_flags), "i" (ASI_PL));
 #else
@@ -2447,7 +2447,7 @@
 	RXD(("RX<"));
 	this = &rxbase[elem];
 #ifdef  __sparc_v9__
-	__asm__ __volatile__("lduwa [%1] %2, %0"
+	__asm__ __volatile__("lduwa [%1] %2, %0\n\t"
 			     : "=r" (flags)
 			     : "r" (&this->rx_flags), "i" (ASI_PL));
 #else
@@ -2530,7 +2530,7 @@
 		elem = NEXT_RX(elem);
 		this = &rxbase[elem];
 #ifdef __sparc_v9__ 
-		__asm__ __volatile__("lduwa [%1] %2, %0"
+		__asm__ __volatile__("lduwa [%1] %2, %0\n\t"
 				     : "=r" (flags)
 				     : "r" (&this->rx_flags), "i" (ASI_PL));
 #else
diff -Naur proll-18.orig/src/le.c proll-18/src/le.c
--- proll-18.orig/src/le.c	2002-07-23 07:52:49.000000000 +0200
+++ proll-18/src/le.c	2004-11-27 00:37:00.000000000 +0100
@@ -771,7 +771,7 @@
 	/* Clear the slack of the packet, do I need this? */
 	/* For a firewall its a good idea - AC */
 	if (len != skblen)
-		bzero((char *) &ib->tx_buf [entry][skblen], len - skblen);
+		memset((char *) &ib->tx_buf [entry][skblen], 0, len - skblen);
     
 	/* Now, give the packet to the lance */
 	ib->btx_ring [entry].tmd1_bits = (LE_T1_POK|LE_T1_OWN);
diff -Naur proll-18.orig/src/printf.c proll-18/src/printf.c
--- proll-18.orig/src/printf.c	1999-03-19 08:03:59.000000000 +0100
+++ proll-18/src/printf.c	2004-11-26 02:52:35.000000000 +0100
@@ -41,7 +41,7 @@
 void
 prf(struct prf_fp *filog, char *fmt, va_list adx)
 {
-        register c;
+        register char c;
         char *s;
 
 	for(;;) {
@@ -60,7 +60,7 @@
                 	putchar(va_arg(adx,unsigned), filog);
         	} else if(c == 's') {
                 	s = va_arg(adx,char*);
-               		while(c = *s++)
+               		while((c = *s++))
                         	putchar(c,filog);
        		} else if (c == 'l' || c == 'O') {
         	        printn(filog, (long)va_arg(adx,long), c=='l'?10:8);
diff -Naur proll-18.orig/src/rconsole.c proll-18/src/rconsole.c
--- proll-18.orig/src/rconsole.c	1999-01-16 08:16:55.000000000 +0100
+++ proll-18/src/rconsole.c	2004-11-26 00:49:24.000000000 +0100
@@ -46,18 +46,18 @@
 #endif
 
 static __inline__ void stfb_w(void *ptr, unsigned int data) {
-	__asm__ __volatile__ ("sta %0, [%1] %2" : :
+	__asm__ __volatile__ ("sta %0, [%1] %2\n\t" : :
 				"r" (data), "r" (ptr), "i" (ASI_M_BYPASS));
 }
 
 static __inline__ void stfb_b(void *ptr, unsigned int data) {
-	__asm__ __volatile__ ("stba %0, [%1] %2" : :
+	__asm__ __volatile__ ("stba %0, [%1] %2\n\t" : :
 				"r" (data), "r" (ptr), "i" (ASI_M_BYPASS));
 }
 
 static __inline__ unsigned int ldfb_w(void *ptr) {
 	unsigned int data;
-	__asm__ __volatile__ ("lda [%1] %2, %0" :
+	__asm__ __volatile__ ("lda [%1] %2, %0\n\t" :
 				"=r" (data) :
 				"r" (ptr), "i" (ASI_M_BYPASS));
 	return data;
@@ -65,7 +65,7 @@
 
 static __inline__ unsigned int ldfb_b(void *ptr) {
 	unsigned int data;
-	__asm__ __volatile__ ("lduba [%1] %2, %0" :
+	__asm__ __volatile__ ("lduba [%1] %2, %0\n\t" :
 				"=r" (data) :
 				"r" (ptr), "i" (ASI_M_BYPASS));
 	return data;
diff -Naur proll-18.orig/src/romlib.h proll-18/src/romlib.h
--- proll-18.orig/src/romlib.h	1999-04-20 06:26:45.000000000 +0200
+++ proll-18/src/romlib.h	2004-11-27 00:42:20.000000000 +0100
@@ -27,6 +27,8 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+#include <sys/types.h>
+
 
 /*
  **************************************************************************
@@ -72,10 +74,9 @@
  */
 #define memcpy(dst, src, len)	bcopy(src, dst, len)
 #define memcmp(x1, x2, len)	bcmp(x1, x2, len)
-#define memset(p, len, zero)	bzero(p, len)
 extern void bcopy(void *b1, void *b2, int length);
 extern int  bcmp(void *b1, void *b2, int length);
-extern void bzero(void *b, int c);
+extern void *memset(void *p, int c, size_t length);
 /* gcc complains about "conflicting types for builtin function strlen". */
 #define strlen(s)		ssize(s)
 extern int ssize(char *s);
diff -Naur proll-18.orig/src/system.c proll-18/src/system.c
--- proll-18.orig/src/system.c	2002-07-23 07:52:49.000000000 +0200
+++ proll-18/src/system.c	2004-11-27 10:37:54.000000000 +0100
@@ -507,19 +507,30 @@
 {
 	char *p;
 
-	if ((p = mem_alloc(t, size, align)) != 0) bzero(p, size);
+	if ((p = mem_alloc(t, size, align)) != 0) memset(p, 0, size);
 	return p;
 }
 
 /*
  * Library functions
  */
-void bzero(void *s, int len) {
-	while (len--) *((char *)s)++ = 0;
+void *memset(void *s, int c, size_t len)
+{
+	void *p = s;
+
+	while (len--) {
+		*(char *)s = c;
+		s++;
+	}
+	return p;
 }
 
 void bcopy(void *f, void *t, int len) {
-	while (len--) *((char *)t)++ = *((char *)f)++;
+	while (len--) {
+		*(char *)t = *(char *)f;
+		f++;
+		t++;
+	}
 }
 
 /* Comparison is 7-bit */
@@ -529,8 +540,11 @@
 	char ch;
 
 	while (len--) {
-		ch = *((char *)s1)++;
-		if ((i = ch - *((char *)s2)++) != 0)
+		ch = *(char *)s1;
+		i = ch - *(char *)s2;
+		s1++;
+		s2++;
+		if (i != 0)
 			return i;
 		if (ch == 0)
 			return 0;
diff -Naur proll-18.orig/src/system.h proll-18/src/system.h
--- proll-18.orig/src/system.h	2002-09-13 23:53:32.000000000 +0200
+++ proll-18/src/system.h	2004-11-26 02:43:33.000000000 +0100
@@ -164,10 +164,10 @@
 
 extern __inline__ void setipl(unsigned long __orig_psr)
 {
-	__asm__ __volatile__("
-		wr	%0, 0x0, %%psr
-		nop; nop; nop
-"		: /* no outputs */
+	__asm__ __volatile__(
+		"wr	%0, 0x0, %%psr\n\t"
+		"nop; nop; nop\n\t"
+		: /* no outputs */
 		: "r" (__orig_psr)
 		: "memory", "cc");
 }
@@ -176,13 +176,13 @@
 {
 	unsigned long tmp;
 
-	__asm__ __volatile__("
-		rd	%%psr, %0
-		nop; nop; nop;		/* Sun4m + Cypress + SMP bug */
-		or	%0, %1, %0
-		wr	%0, 0x0, %%psr
-		nop; nop; nop
-"		: "=r" (tmp)
+	__asm__ __volatile__(
+		"rd	%%psr, %0\n\t"
+		"nop; nop; nop;\n\t"	/* Sun4m + Cypress + SMP bug */
+		"or	%0, %1, %0\n\t"
+		"wr	%0, 0x0, %%psr\n\t"
+		"nop; nop; nop\n\t"
+		: "=r" (tmp)
 		: "i" (PSR_PIL)
 		: "memory");
 }
@@ -191,13 +191,13 @@
 {
 	unsigned long tmp;
 
-	__asm__ __volatile__("
-		rd	%%psr, %0	
-		nop; nop; nop;		/* Sun4m + Cypress + SMP bug */
-		andn	%0, %1, %0
-		wr	%0, 0x0, %%psr
-		nop; nop; nop
-"		: "=r" (tmp)
+	__asm__ __volatile__(
+		"rd	%%psr, %0\n\t"
+		"nop; nop; nop;\n\t"	/* Sun4m + Cypress + SMP bug */
+		"andn	%0, %1, %0\n\t"
+		"wr	%0, 0x0, %%psr\n\t"
+		"nop; nop; nop\n\t"
+		: "=r" (tmp)
 		: "i" (PSR_PIL)
 		: "memory");
 }
@@ -214,18 +214,18 @@
 {
 	unsigned long retval;
 
-	__asm__ __volatile__("
-		rd	%%psr, %0
-		nop; nop; nop;		/* Sun4m + Cypress + SMP bug */
-		and	%0, %2, %%g1
-		and	%1, %2, %%g2
-		xorcc	%%g1, %%g2, %%g0
-		be	1f
-		 nop
-		wr	%0, %2, %%psr
-		nop; nop; nop;
-1:
-"		: "=r" (retval)
+	__asm__ __volatile__(
+		"rd	%%psr, %0\n\t"
+		"nop; nop; nop;\n\t"	/* Sun4m + Cypress + SMP bug */
+		"and	%0, %2, %%g1\n\t"
+		"and	%1, %2, %%g2\n\t"
+		"xorcc	%%g1, %%g2, %%g0\n\t"
+		"be	1f\n\t"
+		"nop\n\t"
+		"wr	%0, %2, %%psr\n\t"
+		"nop; nop; nop;\n\t"
+		"1:\n\t"
+		: "=r" (retval)
 		: "r" (__new_psr), "i" (PSR_PIL)
 		: "g1", "g2", "memory", "cc");
 
@@ -236,13 +236,13 @@
 {
 	unsigned long retval;
 
-	__asm__ __volatile__("
-		rd	%%psr, %0
-		nop; nop; nop;		/* Sun4m + Cypress + SMP bug */
-		or	%0, %1, %%g1
-		wr	%%g1, 0x0, %%psr
-		nop; nop; nop
-"		: "=r" (retval)
+	__asm__ __volatile__(
+		"rd	%%psr, %0\n\t"
+		"nop; nop; nop;\n\t"	/* Sun4m + Cypress + SMP bug */
+		"or	%0, %1, %%g1\n\t"
+		"wr	%%g1, 0x0, %%psr\n\t"
+		"nop; nop; nop\n\t"
+		: "=r" (retval)
 		: "i" (PSR_PIL)
 		: "g1", "memory");
 
