All of lore.kernel.org
 help / color / mirror / Atom feed
From: "mailinglists@d-g-c.de" <mailinglists@d-g-c.de>
To: Vitaly Fertman <vitaly@namesys.com>
Cc: reiserfs-list@namesys.com
Subject: Re: Reiser4fs and SPARC64?
Date: Mon, 21 Feb 2005 13:23:25 +0100	[thread overview]
Message-ID: <4219D2BD.1030004@d-g-c.de> (raw)
In-Reply-To: <200502161724.16258.vitaly@namesys.com>

Vitaly Fertman wrote:

>On Wednesday 16 February 2005 17:09, Alex Zarochentsev wrote:
>  
>
>>On Wed, Feb 16, 2005 at 02:17:49PM +0100, mailinglists@d-g-c.de wrote:
>>    
>>
>>>Hi,
>>>
>>>i just wondered about reiser4fs working on SPARC64? I use Gentoo Sparc64
>>>and it is working fine with kernel 2.4.28. But is the Reiser4 code
>>>SPARC64 ready?
>>>      
>>>
>>It would be nice if you try it :) we have no reiser4/sparc64 reports yet.
>>
>>Reiser4 code is included into AKPM's -mm kernels.  mkfs and other utils are
>>in the ftp://ftp.namesys.com/pub/reiser4progs/
>>
>>At least 3 additional patches are needed for running reiser4 on sparc64.
>>They not yet included into -mm kernels.  I am attaching them to this
>>e-mail.
>>    
>>
>
>and at least these 2 patches needs to applied also.
>
>  
>
>------------------------------------------------------------------------
>
>diff -rup libaal-1.0.3/include/aal/Makefile.am libaal-1.0.3-1/include/aal/Makefile.am
>--- libaal-1.0.3/include/aal/Makefile.am	2004-01-08 15:49:40.000000000 +0100
>+++ libaal-1.0.3-1/include/aal/Makefile.am	2005-01-16 22:18:51.000000000 +0100
>@@ -2,4 +2,4 @@ aalincludedir		= $(includedir)/aal
> 
> aalinclude_HEADERS   	= libaal.h device.h file.h exception.h list.h malloc.h \
> 			  print.h string.h math.h endian.h debug.h bitops.h \
>-                          gauge.h block.h ui.h stream.h hash.h types.h
>+                          gauge.h block.h ui.h stream.h hash.h types.h unaligned.h
>diff -rup libaal-1.0.3/include/aal/Makefile.in libaal-1.0.3-1/include/aal/Makefile.in
>--- libaal-1.0.3/include/aal/Makefile.in	2004-12-06 19:04:14.000000000 +0100
>+++ libaal-1.0.3-1/include/aal/Makefile.in	2005-01-16 15:24:49.000000000 +0100
>@@ -146,7 +146,7 @@ aalincludedir = $(includedir)/aal
> 
> aalinclude_HEADERS = libaal.h device.h file.h exception.h list.h malloc.h \
> 			  print.h string.h math.h endian.h debug.h bitops.h \
>-                          gauge.h block.h ui.h stream.h hash.h types.h
>+                          gauge.h block.h ui.h stream.h hash.h types.h unaligned.h
> 
> subdir = include/aal
> ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
>diff -rup libaal-1.0.3/include/aal/endian.h libaal-1.0.3-1/include/aal/endian.h
>--- libaal-1.0.3/include/aal/endian.h	2003-07-27 10:55:29.000000000 +0200
>+++ libaal-1.0.3-1/include/aal/endian.h	2005-01-16 22:29:19.000000000 +0100
>@@ -75,8 +75,8 @@
> 
> #endif
> 
>-#define aal_get_leXX(xx, p, field)	(LE##xx##_TO_CPU ((p)->field))
>-#define aal_set_leXX(xx, p, field, val)	((p)->field = CPU_TO_LE##xx(val))
>+#define aal_get_leXX(xx, p, field)	(LE##xx##_TO_CPU (get_unaligned(&(p)->field)))
>+#define aal_set_leXX(xx, p, field, val)	put_unaligned(&(p)->field, CPU_TO_LE##xx(val))
> 
> #define aal_get_le16(p, field) 		aal_get_leXX(16, p, field)
> #define aal_set_le16(p, field, val) 	aal_set_leXX(16, p, field, val)
>diff -rup libaal-1.0.3/include/aal/libaal.h libaal-1.0.3-1/include/aal/libaal.h
>--- libaal-1.0.3/include/aal/libaal.h	2004-09-22 14:27:23.000000000 +0200
>+++ libaal-1.0.3-1/include/aal/libaal.h	2005-01-16 22:18:51.000000000 +0100
>@@ -26,6 +26,7 @@ extern "C" {
> #include "math.h"
> #include "bitops.h"
> #include "endian.h"
>+#include "unaligned.h"
> #include "debug.h"
> #include "gauge.h"
> #include "block.h"
>diff -rup libaal-1.0.3/include/aal/unaligned.h libaal-1.0.3-1/include/aal/unaligned.h
>--- libaal-1.0.3/include/aal/unaligned.h	2005-01-16 23:09:05.000000000 +0100
>+++ libaal-1.0.3-1/include/aal/unaligned.h	2005-01-16 22:18:51.000000000 +0100
>@@ -0,0 +1,26 @@
>+/* Copyright (C) 2001-2005 by Hans Reiser, licensing governed by libaal/COPYING.
>+         
>+   unaligned.h -- libaal unalignment declaration. */
>+
>+#ifdef HAVE_CONFIG_H
>+#  include <config.h>
>+#endif
>+
>+#ifndef AAL_UNALIGNED_H
>+#define AAL_UNALIGNED_H
>+
>+#define get_unaligned(ptr)				\
>+({							\
>+	__typeof__(*(ptr)) __tmp;			\
>+	aal_memcpy(&__tmp, (ptr), sizeof(*(ptr)));	\
>+	__tmp;						\
>+})
>+
>+#define put_unaligned(ptr, val)				\
>+({							\
>+	__typeof__(*(ptr)) __tmp = (val);		\
>+	aal_memcpy((ptr), &__tmp, sizeof(*(ptr)));	\
>+	(void)0;					\
>+})
>+
>+#endif
>  
>
>------------------------------------------------------------------------
>
>diff -rup reiser4progs-1.0.3/plugin/item/cde40/cde40.h reiser4progs-1.0.3-1/plugin/item/cde40/cde40.h
>--- reiser4progs-1.0.3/plugin/item/cde40/cde40.h	2004-06-30 01:42:33.000000000 +0200
>+++ reiser4progs-1.0.3-1/plugin/item/cde40/cde40.h	2005-01-16 22:57:58.000000000 +0100
>@@ -33,6 +33,7 @@ struct objid3 {
> 
> typedef struct objid3 objid3_t;
> 
>+
> struct hash3 {
> 	d8_t objectid[8];
> 	d8_t offset[8];
>@@ -130,71 +131,76 @@ extern uint32_t cde40_cut(reiser4_place_
> extern uint16_t cde40_overhead();
> 
> #if defined(ENABLE_SHORT_KEYS) && defined(ENABLE_LARGE_KEYS)
>+
>+/* objidN_t macroses. */
>+#define ob_loc(ob, pol)							\
>+	((pol == 3) ?							\
>+	 ((objid3_t *)(ob))->locality :					\
>+	 ((objid4_t *)(ob))->locality)
>+ 
> #define ob_get_locality(ob, pol)					\
>-        ((pol == 3) ?							\
>-	 LE64_TO_CPU(*((d64_t *)((objid3_t *)(ob))->locality)) :	\
>-	 LE64_TO_CPU(*((d64_t *)((objid4_t *)(ob))->locality)))
>+	LE64_TO_CPU(get_unaligned((d64_t *)ob_loc(ob, pol)))
> 
> #define ob_set_locality(ob, val, pol)					\
>-        ((pol == 3) ?							\
>-	 (*(d64_t *)((objid3_t *)(ob))->locality) = CPU_TO_LE64(val) :	\
>-	 (*(d64_t *)((objid4_t *)(ob))->locality) = CPU_TO_LE64(val))
>+	put_unaligned((d64_t *)ob_loc(ob, pol), CPU_TO_LE64(val))
>+
>+#define ob_oid(ob, pol)							\
>+	((pol == 3) ?							\
>+	 ((objid3_t *)(ob))->objectid :					\
>+	 ((objid4_t *)(ob))->objectid)
> 
> #define ob_get_objectid(ob, pol)					\
>-        ((pol == 3) ?							\
>-	 LE64_TO_CPU(*((d64_t *)((objid3_t *)(ob))->objectid)) :	\
>-	 LE64_TO_CPU(*((d64_t *)((objid4_t *)(ob))->objectid)))
>+	LE64_TO_CPU(get_unaligned((d64_t *)ob_oid(ob, pol)))
> 
> #define ob_set_objectid(ob, val, pol)					\
>-        ({if (pol == 3)							\
>-	 (*(d64_t *)((objid3_t *)(ob))->objectid) = CPU_TO_LE64(val);	\
>-         else								\
>-	 (*(d64_t *)((objid4_t *)(ob))->objectid) = CPU_TO_LE64(val);})
>+	put_unaligned((d64_t *)ob_oid(ob, pol), CPU_TO_LE64(val))
>+
>+#define ob_ord(ob, pol) ((pol == 3) ? 0 : ((objid4_t *)(ob))->ordering)
> 
> #define ob_get_ordering(ob, pol)					\
>-        ((pol == 3) ? 0 :						\
>-	 LE64_TO_CPU(*((d64_t *)((objid4_t *)(ob))->ordering)))
>+	LE64_TO_CPU(get_unaligned((d64_t *)ob_ord(ob, pol)))
> 
> #define ob_set_ordering(ob, val, pol)					\
>-        ({if (pol == 3) do {} while(0); else				\
>-	 (*(d64_t *)((objid4_t *)(ob))->ordering) = CPU_TO_LE64(val);})
>+	({if (pol == 3) do {} while(0); else				\
>+	 put_unaligned((d64_t *)ob_ord(ob, pol), CPU_TO_LE64(val));})
> 
>-#define ob_size(pol)							\
>-        ((pol == 3) ? sizeof(objid3_t) : sizeof(objid4_t))
>+#define ob_size(pol) ((pol == 3) ? sizeof(objid3_t) : sizeof(objid4_t))
>+
>+/* hashN_t macroses.  */
>+#define ha_oid(ha, pol)							\
>+	((pol == 3) ?							\
>+	 ((hash3_t *)(ha))->objectid :					\
>+	 ((hash4_t *)(ha))->objectid)
> 
> #define ha_get_objectid(ha, pol)					\
>-        ((pol == 3) ?							\
>-	 LE64_TO_CPU(*((d64_t *)((hash3_t *)(ha))->objectid)) :		\
>-	 LE64_TO_CPU(*((d64_t *)((hash4_t *)(ha))->objectid)))
>+	LE64_TO_CPU(get_unaligned((d64_t *)ha_oid(ha, pol)))
> 
> #define ha_set_objectid(ha, val, pol)					\
>-        ({if (pol == 3)							\
>-         (*(d64_t *)((hash3_t *)(ha))->objectid) = CPU_TO_LE64(val);	\
>-	 else								\
>-	 (*(d64_t *)((hash4_t *)(ha))->objectid) = CPU_TO_LE64(val);})
>+	put_unaligned((d64_t *)ha_oid(ha, pol),  CPU_TO_LE64(val))
>+
>+#define ha_off(ha, pol)							\
>+	((pol == 3) ?							\
>+	 ((hash3_t *)(ha))->offset :					\
>+	 ((hash4_t *)(ha))->offset)
> 
> #define ha_get_offset(ha, pol)						\
>-        ((pol == 3) ?							\
>-         LE64_TO_CPU(*((d64_t *)((hash3_t *)(ha))->offset)) :		\
>-	 LE64_TO_CPU(*((d64_t *)((hash4_t *)(ha))->offset)))
>-	 
>+	LE64_TO_CPU(get_unaligned((d64_t *)ha_off(ha, pol)))
>+
> #define ha_set_offset(ha, val, pol)					\
>-        ({if (pol == 3)							\
>-        (*(d64_t *)((hash3_t *)(ha))->offset) = CPU_TO_LE64(val);	\
>-        else								\
>-        (*(d64_t *)((hash4_t *)(ha))->offset) = CPU_TO_LE64(val);})
>+	put_unaligned((d64_t *)ha_off(ha, pol), CPU_TO_LE64(val))
>+
>+#define ha_ord(ha, pol) ((pol == 3) ? 0 : ((hash4_t *)(ha))->ordering)
> 
> #define ha_get_ordering(ha, pol)					\
>-        ((pol == 3) ? 0 :						\
>-	 LE64_TO_CPU(*((d64_t *)((hash4_t *)(ha))->ordering)))
>-	 
>+	LE64_TO_CPU(get_unaligned((d64_t *)ha_ord(ha, pol)))
>+
> #define ha_set_ordering(ha, val, pol)					\
>-        ({if (pol == 3) do {} while(0); else				\
>-        (*(d64_t *)((hash4_t *)(ha))->ordering) = CPU_TO_LE64(val);})
>+	({if (pol == 3) do {} while(0); else				\
>+	 put_unaligned((d64_t *)ha_ord(ha, pol), CPU_TO_LE64(val));})
> 
>-#define ha_size(pol)							\
>-        ((pol == 3) ? sizeof(hash3_t) : sizeof(hash4_t))
>+#define ha_size(pol) ((pol == 3) ? sizeof(hash3_t) : sizeof(hash4_t))
> 
>+/* entryN_t macroses */
> #define en_get_offset(en, pol)						\
>         ((pol == 3) ?							\
> 	 aal_get_le16(((entry3_t *)(en)), offset) :			\
>@@ -214,97 +220,108 @@ extern uint16_t cde40_overhead();
> 	 (void *)(&((cde403_t *)(pl)->body)->entry[pos]) :		\
> 	 (void *)(&((cde404_t *)(pl)->body)->entry[pos]))
> 
>-#else
>-#if defined(ENABLE_SHORT_KEYS)
>+#elif defined(ENABLE_SHORT_KEYS)
>+
>+/* objidN_t macroses.  */
> #define ob_get_locality(ob, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((objid3_t *)(ob))->locality))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((objid3_t *)(ob))->locality))
> 
> #define ob_set_locality(ob, val, pol)					\
>-	 (*(d64_t *)((objid3_t *)(ob))->locality) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((objid3_t *)(ob))->locality,		\
>+		      CPU_TO_LE64(val))
> 
> #define ob_get_objectid(ob, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((objid3_t *)(ob))->objectid))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((objid3_t *)(ob))->objectid))
> 
> #define ob_set_objectid(ob, val, pol)					\
>-	 (*(d64_t *)((objid3_t *)(ob))->objectid) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((objid3_t *)(ob))->objectid,		\
>+		      CPU_TO_LE64(val))
> 
> #define ob_get_ordering(ob, pol) (0)
> #define ob_set_ordering(ob, val, pol) do {} while(0)
> 
>-#define ob_size(pol)							\
>-        (sizeof(objid3_t))
>+#define ob_size(pol) (sizeof(objid3_t))
> 
>+/* hashN_t macroses.  */
> #define ha_get_objectid(ha, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((hash3_t *)(ha))->objectid))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((hash3_t *)(ha))->objectid))
> 
> #define ha_set_objectid(ha, val, pol)					\
>-         (*(d64_t *)((hash3_t *)(ha))->objectid) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((hash3_t *)(ha))->objectid,		\
>+		      CPU_TO_LE64(val))
> 
> #define ha_get_offset(ha, pol)						\
>-         LE64_TO_CPU(*((d64_t *)((hash3_t *)(ha))->offset))
>-	 
>+	LE64_TO_CPU(get_unaligned((d64_t *)((hash3_t *)(ha))->offset))
>+
> #define ha_set_offset(ha, val, pol)					\
>-        (*(d64_t *)((hash3_t *)(ha))->offset) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((hash3_t *)(ha))->offset,		\
>+		      CPU_TO_LE64(val))
> 
> #define ha_get_ordering(ha, pol) (0)
> #define ha_set_ordering(ha, val, pol) do {} while (0)
> 
>-#define ha_size(pol)							\
>-        (sizeof(hash3_t))
>+#define ha_size(pol) (sizeof(hash3_t))
> 
>+/* entryN_t macroses */
> #define en_get_offset(en, pol)						\
> 	 aal_get_le16(((entry3_t *)(en)), offset)
> 
> #define en_set_offset(en, val, pol)					\
>          aal_set_le16(((entry3_t *)(en)), offset, val)
> 
>-#define en_size(pol)							\
>-        (sizeof(entry3_t))
>+#define en_size(pol) (sizeof(entry3_t))
> 
> #define cde_get_entry(pl, pos, pol)					\
> 	 ((void *)(&((cde403_t *)pl->body)->entry[pos]))
>-#else
>+
>+#elif defined(ENABLE_LARGE_KEYS)
>+/* objidN_t macroses. */
> #define ob_get_locality(ob, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((objid4_t *)(ob))->locality))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((objid4_t *)(ob))->locality))
> 
> #define ob_set_locality(ob, val, pol)					\
>-	 (*(d64_t *)((objid4_t *)(ob))->locality) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((objid4_t *)(ob))->locality,		\
>+		      CPU_TO_LE64(val))
> 
> #define ob_get_objectid(ob, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((objid4_t *)(ob))->objectid))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((objid4_t *)(ob))->objectid))
> 
> #define ob_set_objectid(ob, val, pol)					\
>-	 (*(d64_t *)((objid4_t *)(ob))->objectid) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((objid4_t *)(ob))->objectid,		\
>+		      CPU_TO_LE64(val))
> 
> #define ob_get_ordering(ob, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((objid4_t *)(ob))->ordering))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((objid4_t *)(ob))->ordering))
> 
> #define ob_set_ordering(ob, val, pol)					\
>-	 (*(d64_t *)((objid4_t *)(ob))->ordering) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((objid4_t *)(ob))->ordering,		\
>+		      CPU_TO_LE64(val))
> 
>-#define ob_size(pol)							\
>-        (sizeof(objid4_t))
>+#define ob_size(pol) (sizeof(objid4_t))
> 
>+/* hashN_t macroses.  */
> #define ha_get_objectid(ha, pol)					\
>-	 LE64_TO_CPU(*((d64_t *)((hash4_t *)(ha))->objectid))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((hash4_t *)(ha))->objectid))
> 
> #define ha_set_objectid(ha, val, pol)					\
>-         (*(d64_t *)((hash4_t *)(ha))->objectid) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((hash4_t *)(ha))->objectid,		\
>+		      CPU_TO_LE64(val))
> 
> #define ha_get_offset(ha, pol)						\
>-         LE64_TO_CPU(*((d64_t *)((hash4_t *)(ha))->offset))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((hash4_t *)(ha))->offset))
> 	 
> #define ha_set_offset(ha, val, pol)					\
>-        (*(d64_t *)((hash4_t *)(ha))->offset) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((hash4_t *)(ha))->offset,		\
>+		      CPU_TO_LE64(val))
> 
> #define ha_get_ordering(ha, pol)					\
>-         LE64_TO_CPU(*((d64_t *)((hash4_t *)(ha))->ordering))
>+	LE64_TO_CPU(get_unaligned((d64_t *)((hash4_t *)(ha))->ordering))
> 
> #define ha_set_ordering(ha, val, pol)					\
>-        (*(d64_t *)((hash4_t *)(ha))->ordering) = CPU_TO_LE64(val)
>+	put_unaligned((d64_t *)((hash4_t *)(ha))->ordering,		\
>+		      CPU_TO_LE64(val))
> 
>-#define ha_size(pol)							\
>-        (sizeof(hash4_t))
>+#define ha_size(pol) (sizeof(hash4_t))
> 
> #define en_get_offset(en, pol)						\
> 	 aal_get_le16(((entry4_t *)(en)), offset)
>@@ -312,13 +329,11 @@ extern uint16_t cde40_overhead();
> #define en_set_offset(en, val, pol)					\
>          aal_set_le16(((entry4_t *)(en)), offset, val)
> 
>-#define en_size(pol)							\
>-        (sizeof(entry4_t))
>+#define en_size(pol) (sizeof(entry4_t))
> 
> #define cde_get_entry(pl, pos, pol)					\
> 	 ((void *)(&((cde404_t *)pl->body)->entry[pos]))
> #endif
>-#endif
> 
> #define cde_get_units(pl)						\
>         aal_get_le16(((cde40_t *)pl->body), units)
>diff -rup reiser4progs-1.0.3/plugin/key/key_large/key_large.h reiser4progs-1.0.3-1/plugin/key/key_large/key_large.h
>--- reiser4progs-1.0.3/plugin/key/key_large/key_large.h	2004-09-22 14:35:47.000000000 +0200
>+++ reiser4progs-1.0.3-1/plugin/key/key_large/key_large.h	2005-01-16 22:57:58.000000000 +0100
>@@ -120,14 +120,14 @@ extern uint64_t key_large_get_fobjectid(
> static inline uint64_t kl_get_el(const key_large_t *key,
> 				 key_large_field_t off)
> {
>-	return LE64_TO_CPU(key->el[off]);
>+	return LE64_TO_CPU(get_unaligned(key->el + off));
> }
> 
> static inline void kl_set_el(key_large_t *key,
> 			     key_large_field_t off,
> 			     uint64_t value)
> {
>-	key->el[off] = CPU_TO_LE64(value);
>+	put_unaligned(key->el + off, CPU_TO_LE64(value));
> }
> 
> static inline int kl_comp_el(void *k1, void *k2, int off) {
>diff -rup reiser4progs-1.0.3/plugin/key/key_short/key_short.h reiser4progs-1.0.3-1/plugin/key/key_short/key_short.h
>--- reiser4progs-1.0.3/plugin/key/key_short/key_short.h	2004-09-22 14:35:54.000000000 +0200
>+++ reiser4progs-1.0.3-1/plugin/key/key_short/key_short.h	2005-01-16 22:57:58.000000000 +0100
>@@ -108,14 +108,14 @@ extern uint64_t key_short_get_fobjectid(
> static inline uint64_t ks_get_el(const key_short_t *key,
> 				 key_short_field_t off)
> {
>-	return LE64_TO_CPU(key->el[off]);
>+	return LE64_TO_CPU(get_unaligned(key->el + off));
> }
> 
> static inline void ks_set_el(key_short_t *key,
> 			     key_short_field_t off,
> 			     uint64_t value)
> {
>-	key->el[off] = CPU_TO_LE64(value);
>+	put_unaligned(key->el + off, CPU_TO_LE64(value));
> }
> 
> static inline int ks_comp_el(void *k1, void *k2, int off) {
>diff -rup reiser4progs-1.0.3/plugin/sdext/sdext_plug/sdext_plug.h reiser4progs-1.0.3-1/plugin/sdext/sdext_plug/sdext_plug.h
>--- reiser4progs-1.0.3/plugin/sdext/sdext_plug/sdext_plug.h	2004-06-03 22:00:12.000000000 +0200
>+++ reiser4progs-1.0.3-1/plugin/sdext/sdext_plug/sdext_plug.h	2005-01-16 22:57:58.000000000 +0100
>@@ -27,14 +27,14 @@ typedef struct sdext_plug sdext_plug_t;
> 
> extern reiser4_core_t *sdext_plug_core;
> 
>-#define sdext_plug_get_count(ext)		aal_get_le16(ext, count)
>-#define sdext_plug_set_count(ext, val)		aal_set_le16(ext, count, val)
>+#define sdext_plug_get_count(ext)		aal_get_le16((ext), count)
>+#define sdext_plug_set_count(ext, val)		aal_set_le16((ext), count, (val))
> 
>-#define sdext_plug_get_member(ext, n)		aal_get_le16(&(ext->slot[n]), member)
>-#define sdext_plug_set_member(ext, n, val)	aal_set_le16(&(ext->slot[n]), member, val)
>+#define sdext_plug_get_member(ext, n)		aal_get_le16(&((ext)->slot[n]), member)
>+#define sdext_plug_set_member(ext, n, val)	aal_set_le16(&((ext)->slot[n]), member, (val))
> 
>-#define sdext_plug_get_pid(ext, n)		aal_get_le16(&(ext->slot[n]), plug)
>-#define sdext_plug_set_pid(ext, n, val)		aal_set_le16(&(ext->slot[n]), plug, val)
>+#define sdext_plug_get_pid(ext, n)		aal_get_le16(&((ext)->slot[n]), plug)
>+#define sdext_plug_set_pid(ext, n, val)		aal_set_le16(&((ext)->slot[n]), plug, (val))
> 
> extern uint32_t sdext_plug_length(stat_entity_t *stat, void *hint);
> 
>  
>

These 2 patches are no more needed for me and my sparc64 since you 
released 1.0.4?
Today i compiled my 2.6.10-mm3-reiser4 kernel and it works fine. Only 
problem left is LVM cause the kernel gets too big (>3.5MB) with LVM 
compiled in it. So my root filesystem will be no LVM...

greetz Florian

  parent reply	other threads:[~2005-02-21 12:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-16 13:17 Reiser4fs and SPARC64? mailinglists
2005-02-16 14:09 ` Alex Zarochentsev
2005-02-16 14:24   ` Vitaly Fertman
2005-02-17  9:38     ` mailinglists
2005-02-17  9:44       ` Alex Zarochentsev
2005-02-21 12:23     ` mailinglists [this message]
2005-02-21 13:44       ` Alex Zarochentsev
2005-02-21 14:13         ` Florian Engelmann
2005-03-02  9:15           ` mailinglists
2005-02-21 12:34     ` mailinglists
2005-02-21 13:17       ` Vitaly Fertman
2005-02-21 14:12         ` Florian Engelmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4219D2BD.1030004@d-g-c.de \
    --to=mailinglists@d-g-c.de \
    --cc=reiserfs-list@namesys.com \
    --cc=vitaly@namesys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.