linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] 2.5.70-mm3: 64bit kdev_t explicitly-sized types
@ 2003-06-01 10:05 Andres Salomon
  0 siblings, 0 replies; only message in thread
From: Andres Salomon @ 2003-06-01 10:05 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, Andries.Brouwer

[-- Attachment #1: Type: text/plain, Size: 411 bytes --]

This patch changes some of the core stuff touched by
64-bit-dev_t-kdev_t.patch (the driver stuff is left alone) to use
explicitly sized types (ie, __u64).  The only really controvertial part of
it is the inclusion of asm/types.h in asm/posix_types.h; since asm/types.h
only (on most archs) defines the standard {u,s}{8,16,32,64} types and
umode_t, I don't think namespace pollution will be much of an issue...


[-- Attachment #2: 64-bit-explicit-types.patch --]
[-- Type: application/octet-stream, Size: 3573 bytes --]

diff -x {arch} -urN linux-patch-1/include/asm-i386/posix_types.h linux-patch-2/include/asm-i386/posix_types.h
--- linux-patch-1/include/asm-i386/posix_types.h	2003-06-01 04:38:39.000000000 -0400
+++ linux-patch-2/include/asm-i386/posix_types.h	2003-06-01 04:43:10.000000000 -0400
@@ -1,15 +1,15 @@
 #ifndef __ARCH_I386_POSIX_TYPES_H
 #define __ARCH_I386_POSIX_TYPES_H
 
+#include <asm/types.h>
+
 /*
  * This file is generally used by user-level software, so you need to
  * be a little careful about namespace pollution etc.  Also, we cannot
  * assume GCC is being used.
  */
 
-#ifdef __GNUC__
-typedef unsigned long long	__kernel_dev_t;
-#endif
+typedef __u64		__kernel_dev_t;
 typedef unsigned long	__kernel_ino_t;
 typedef unsigned short	__kernel_mode_t;
 typedef unsigned short	__kernel_nlink_t;
diff -x {arch} -urN linux-patch-1/include/linux/kdev_t.h linux-patch-2/include/linux/kdev_t.h
--- linux-patch-1/include/linux/kdev_t.h	2003-06-01 04:38:58.000000000 -0400
+++ linux-patch-2/include/linux/kdev_t.h	2003-06-01 04:43:19.000000000 -0400
@@ -5,10 +5,10 @@
 #include <linux/types.h>       /* for dev_t */
 
 typedef struct {
-	unsigned long long value;
+	__u64 value;
 } kdev_t;
 
-#define __mkdev(major, minor)	(((unsigned long long)(major) << 32) + (minor))
+#define __mkdev(major, minor)	(((__u64)(major) << 32) + (minor))
 
 #define mk_kdev(major, minor)	((kdev_t) { __mkdev(major,minor) } )
 
@@ -17,12 +17,12 @@
  * internal equality comparisons and for things
  * like NFS filehandle conversion.
  */
-static inline unsigned long long kdev_val(kdev_t dev)
+static inline __u64 kdev_val(kdev_t dev)
 {
 	return dev.value;
 }
 
-static inline kdev_t val_to_kdev(unsigned long long val)
+static inline kdev_t val_to_kdev(__u64 val)
 {
 	kdev_t dev;
 	dev.value = val;
@@ -39,8 +39,8 @@
 
 #define kdev_none(d1)	(!kdev_val(d1))
 
-#define minor(dev)	(unsigned int)((dev).value & 0xffffffff)
-#define major(dev)	(unsigned int)((dev).value >> 32)
+#define minor(dev)	(__u32) ((dev).value & 0xffffffff)
+#define major(dev)	(__u32) ((dev).value >> 32)
 
 /* These are for user-level "dev_t" */
 /* Going back and forth between dev and (ma,mi) is one-to-one
@@ -69,17 +69,17 @@
 }
 #else
 /* ugly macro versions */
-#define MAJOR(dev) ((unsigned int)({ dev_t __dev = dev; \
+#define MAJOR(dev) ((__u32)({ dev_t __dev = dev; \
    (__dev & ~0xffffffffULL) ? (__dev >> 32) : \
    (__dev & ~0xffff) ? (__dev >> 16) : (__dev >> 8); }))
-#define MINOR(dev) ((unsigned int)({ dev_t __dev = dev; \
+#define MINOR(dev) ((__u32)({ dev_t __dev = dev; \
    (__dev & ~0xffffffffULL) ? (__dev & 0xffffffff) : \
    (__dev & ~0xffff) ? (__dev & 0xffff) : (__dev & 0xff); }))
 #define constant_MKDEV(ma, mi) \
    ((((ma)|(mi)) & ~0xffff) ? ((ma) << 32) | (mi) : \
     (((ma)|(mi)) & ~0xff) ? ((ma) << 16) | (mi) : ((ma) << 8) | (mi))
 #define MKDEV(major, minor) ({ \
-   unsigned int __ma = major, __mi = minor, __both = (__ma | __mi); \
+   __u32 __ma = major, __mi = minor, __both = (__ma | __mi); \
    ((sizeof(dev_t) > 4 && (__both & ~0xffff)) ? (((dev_t) __ma) << 32) : \
     (__both & ~0xff) ? (((dev_t) __ma) << 16) : (((dev_t) __ma) << 8) \
    ) | __mi; })
@@ -91,15 +91,15 @@
 
 static inline dev_t kdev_t_to_nr(kdev_t dev)
 {
-	unsigned int ma = major(dev);
-	unsigned int mi = minor(dev);
+	__u32 ma = major(dev);
+	__u32 mi = minor(dev);
 	return MKDEV(ma, mi);
 }
 
 static inline kdev_t to_kdev_t(dev_t dev)
 {
-	unsigned int ma = MAJOR(dev);
-	unsigned int mi = MINOR(dev);
+	__u32 ma = MAJOR(dev);
+	__u32 mi = MINOR(dev);
 	return mk_kdev(ma, mi);
 }
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-06-01  9:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-01 10:05 [PATCH] 2.5.70-mm3: 64bit kdev_t explicitly-sized types Andres Salomon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).