Mailinglist Archive: opensuse-commit (2092 mails)

< Previous Next >
commit dosfstools
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Thu, 09 Aug 2007 18:38:06 +0200
  • Message-id: <20070809163807.0749167832C@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package dosfstools
checked in at Thu Aug 9 18:38:06 CEST 2007.

--------
--- dosfstools/dosfstools.changes       2007-04-26 12:51:21.000000000 +0200
+++ /mounts/work_src_done/STABLE/dosfstools/dosfstools.changes  2007-08-09 17:09:04.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Aug  9 17:08:41 CEST 2007 - olh@xxxxxxx
+
+- remove inclusion of asm/unaligned.h, use private copy of 
+  asm-generic/unaligned.h
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dosfstools.spec ++++++
--- /var/tmp/diff_new_pack.j22145/_old  2007-08-09 18:37:24.000000000 +0200
+++ /var/tmp/diff_new_pack.j22145/_new  2007-08-09 18:37:24.000000000 +0200
@@ -12,12 +12,12 @@
 
 Name:           dosfstools
 Provides:       mkdosfs dosfsck
-License:        GNU General Public License (GPL)
+License:        GPL v2 or later
 Group:          System/Filesystems
 Autoreqprov:    on
 Summary:        Utilities for Making and Checking MS-DOS FAT File Systems on Linux
 Version:        2.11
-Release:        51
+Release:        71
 URL:            ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools
 Source:         %{name}-%{version}.src.tar.bz2
 Patch0:         %{name}-%{version}-linuxfs.patch
@@ -45,7 +45,7 @@
 %prep
 %setup
 %patch0
-%patch1
+%patch1 -p1
 %patch2
 %patch3
 %patch4 -p1
@@ -89,6 +89,9 @@
 %{_mandir}/man8/*.gz
 
 %changelog
+* Thu Aug 09 2007 - olh@xxxxxxx
+- remove inclusion of asm/unaligned.h, use private copy of
+  asm-generic/unaligned.h
 * Thu Apr 26 2007 - lnussel@xxxxxxx
 - remove obsolete subfs patch
 - fix handling of zero heads and sectors

++++++ dosfstools-2.11-unaligned.patch ++++++
--- /var/tmp/diff_new_pack.j22145/_old  2007-08-09 18:37:24.000000000 +0200
+++ /var/tmp/diff_new_pack.j22145/_new  2007-08-09 18:37:24.000000000 +0200
@@ -1,14 +1,10 @@
---- dosfsck/boot.c
-+++ dosfsck/boot.c
-@@ -8,6 +8,7 @@
- #include <stdio.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <asm/unaligned.h>

- #include "common.h"
- #include "dosfsck.h"
-@@ -35,18 +36,11 @@ static struct {
+---
+ dosfsck/boot.c |  131 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 120 insertions(+), 11 deletions(-)
+
+--- a/dosfsck/boot.c
++++ b/dosfsck/boot.c
+@@ -34,18 +34,127 @@ static struct {
      { 0xff, "5.25\" 320k floppy 2s/40tr/8sec" },
  };
  
@@ -22,10 +18,127 @@
 -    })
 -#else
 -#define GET_UNALIGNED_W(f) CF_LE_W( *(unsigned short *)&f )
-+#ifndef get_unaligned
-+#define get_unaligned(ptr) (*(ptr))
- #endif
+-#endif
  
++/*
++ * For the benefit of those who are trying to port Linux to another
++ * architecture, here are some C-language equivalents.
++ *
++ * This is based almost entirely upon Richard Henderson's
++ * asm-alpha/unaligned.h implementation.  Some comments were
++ * taken from David Mosberger's asm-ia64/unaligned.h header.
++ */
++
++#include <linux/types.h>
++
++/*
++ * The main single-value unaligned transfer routines.
++ */
++#define get_unaligned(ptr) \
++      __get_unaligned((ptr), sizeof(*(ptr)))
++#define put_unaligned(x,ptr) \
++      __put_unaligned((__u64)(x), (ptr), sizeof(*(ptr)))
++
++/*
++ * This function doesn't actually exist.  The idea is that when
++ * someone uses the macros below with an unsupported size (datatype),
++ * the linker will alert us to the problem via an unresolved reference
++ * error.
++ */
++extern void bad_unaligned_access_length(void) __attribute__((noreturn));
++
++struct __una_u64 { __u64 x __attribute__((packed)); };
++struct __una_u32 { __u32 x __attribute__((packed)); };
++struct __una_u16 { __u16 x __attribute__((packed)); };
++
++/*
++ * Elemental unaligned loads
++ */
++
++static inline __u64 __uldq(const __u64 *addr)
++{
++      const struct __una_u64 *ptr = (const struct __una_u64 *) addr;
++      return ptr->x;
++}
++
++static inline __u32 __uldl(const __u32 *addr)
++{
++      const struct __una_u32 *ptr = (const struct __una_u32 *) addr;
++      return ptr->x;
++}
++
++static inline __u16 __uldw(const __u16 *addr)
++{
++      const struct __una_u16 *ptr = (const struct __una_u16 *) addr;
++      return ptr->x;
++}
++
++/*
++ * Elemental unaligned stores
++ */
++
++static inline void __ustq(__u64 val, __u64 *addr)
++{
++      struct __una_u64 *ptr = (struct __una_u64 *) addr;
++      ptr->x = val;
++}
++
++static inline void __ustl(__u32 val, __u32 *addr)
++{
++      struct __una_u32 *ptr = (struct __una_u32 *) addr;
++      ptr->x = val;
++}
++
++static inline void __ustw(__u16 val, __u16 *addr)
++{
++      struct __una_u16 *ptr = (struct __una_u16 *) addr;
++      ptr->x = val;
++}
++
++#define __get_unaligned(ptr, size) ({         \
++      const void *__gu_p = ptr;               \
++      __u64 val;                              \
++      switch (size) {                         \
++      case 1:                                 \
++              val = *(const __u8 *)__gu_p;    \
++              break;                          \
++      case 2:                                 \
++              val = __uldw(__gu_p);           \
++              break;                          \
++      case 4:                                 \
++              val = __uldl(__gu_p);           \
++              break;                          \
++      case 8:                                 \
++              val = __uldq(__gu_p);           \
++              break;                          \
++      default:                                \
++              bad_unaligned_access_length();  \
++      };                                      \
++      (__typeof__(*(ptr)))val;                \
++})
++
++#define __put_unaligned(val, ptr, size)               \
++do {                                          \
++      void *__gu_p = ptr;                     \
++      switch (size) {                         \
++      case 1:                                 \
++              *(__u8 *)__gu_p = val;          \
++              break;                          \
++      case 2:                                 \
++              __ustw(val, __gu_p);            \
++              break;                          \
++      case 4:                                 \
++              __ustl(val, __gu_p);            \
++              break;                          \
++      case 8:                                 \
++              __ustq(val, __gu_p);            \
++              break;                          \
++      default:                                \
++              bad_unaligned_access_length();  \
++      };                                      \
++} while(0)
++
++
 +#define GET_UNALIGNED_W(f) CF_LE_W( get_unaligned ((unsigned short *)&f))
  
  static char *get_media_descr( unsigned char media )


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages