Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Aug 2005 23:39:40 +0900
From:      "R. Imura" <imura@ryu16.org>
To:        Pyun YongHyeon <pyunyh@gmail.com>
Cc:        John Nielsen <john@jnielsen.net>, freebsd-sparc64@freebsd.org
Subject:   Re: "fast data access mmu miss" on kernels w/o "makeoptions DEBUG=-g"
Message-ID:  <20050824143940.GA65078%imura@ryu16.org>
In-Reply-To: <20050824010147.GD4956@rndsoft.co.kr>
References:  <200508110931.13802.john@jnielsen.net> <200508201453.40439.jhb@FreeBSD.org> <20050823081517.GB4956@rndsoft.co.kr> <200508230911.18163.john@jnielsen.net> <20050824010147.GD4956@rndsoft.co.kr>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On Wed, Aug 24, 2005 at 10:01:47AM +0900, Pyun YongHyeon wrote:
> On Tue, Aug 23, 2005 at 09:11:17AM -0400, John Nielsen wrote:
>  > On Tuesday 23 August 2005 04:15, Pyun YongHyeon wrote:
>  > > It seems that iconv needs default KOBJMETHOD for ICONV_CONVERTER_NAME.
>  > > With attached patch I can boot my system with LIBICONV.
>  > > John Nielsen, would you please let me know how the attached patch goes
>  > > on your system?
>  > 
>  > My system already boots fine with LIBICONV, although I haven't tried 
> 
> Then it seems that you are seeing differnet issues not known to me.
> Would you please post stack trace?
> 
>  > mounting and SMB FS yet.
>  > 
> 
> smbfs does not work on sparc64 as smbfs assumes it runs on
> architectures that allow on-aligned memory access. It also needs
> big-endian clean up too.(See sys/mchain.h)

To begin with, you might want this patch. :)

Index: sys/sys/mchain.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/mchain.h,v
retrieving revision 1.9
diff -u -r1.9 mchain.h
--- sys/sys/mchain.h	29 Jul 2005 13:22:36 -0000	1.9
+++ sys/sys/mchain.h	24 Aug 2005 10:55:39 -0000
@@ -42,42 +42,36 @@
  */
 #if (BYTE_ORDER == LITTLE_ENDIAN)
 
-#define	htoles(x)	((u_int16_t)(x))
-#define	letohs(x)	((u_int16_t)(x))
-#define	htolel(x)	((u_int32_t)(x))
-#define	letohl(x)	((u_int32_t)(x))
-#define	htoleq(x)	((int64_t)(x))
-#define	letohq(x)	((int64_t)(x))
-
-#define	htobes(x)	(__htons(x))
-#define	betohs(x)	(__ntohs(x))
-#define	htobel(x)	(__htonl(x))
-#define	betohl(x)	(__ntohl(x))
-
-static __inline int64_t
-htobeq(int64_t x)
-{
-	return (int64_t)__htonl((u_int32_t)(x >> 32)) |
-	    (int64_t)__htonl((u_int32_t)(x & 0xffffffff)) << 32;
-}
-
-static __inline int64_t
-betohq(int64_t x)
-{
-	return (int64_t)__ntohl((u_int32_t)(x >> 32)) |
-	    (int64_t)__ntohl((u_int32_t)(x & 0xffffffff)) << 32;
-}
+#define	htoles(x)	((uint16_t)(x))
+#define	letohs(x)	((uint16_t)(x))
+#define	htolel(x)	((uint32_t)(x))
+#define	letohl(x)	((uint32_t)(x))
+#define	htoleq(x)	((uint64_t)(x))
+#define	letohq(x)	((uint64_t)(x))
+
+#define	htobes(x)	(bswap16(x))
+#define	betohs(x)	(bswap16(x))
+#define	htobel(x)	(bswap32(x))
+#define	betohl(x)	(bswap32(x))
+#define	htobeq(x)	(bswap64(x))
+#define	betohq(x)	(bswap64(x))
 
 #else	/* (BYTE_ORDER == LITTLE_ENDIAN) */
 
-#error "Macros for Big-Endians are incomplete"
+#define	htoles(x)	(bswap16(x))
+#define	letohs(x)	(bswap16(x))
+#define	htolel(x)	(bswap32(x))
+#define	letohl(x)	(bswap32(x))
+#define	htoleq(x)	(bswap64(x))
+#define	letohq(x)	(bswap64(x))
+
+#define	htobes(x)	((uint16_t)(x))
+#define	betohs(x)	((uint16_t)(x))
+#define	htobel(x)	((uint32_t)(x))
+#define	betohl(x)	((uint32_t)(x))
+#define	htobeq(x)	((uint64_t)(x))
+#define	betohq(x)	((uint64_t)(x))
 
-/*
-#define	htoles(x)	((u_int16_t)(x))
-#define	letohs(x)	((u_int16_t)(x))
-#define	htolel(x)	((u_int32_t)(x))
-#define	letohl(x)	((u_int32_t)(x))
-*/
 #endif	/* (BYTE_ORDER == LITTLE_ENDIAN) */
 #endif	/* _KERNEL */
 
Regards,
- R. Imura



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050824143940.GA65078%imura>