diff -urpN -X /home/fletch/.diff.exclude 551-akpm_bear_pit/drivers/video/pm3fb.c 600-32bit_dev_t/drivers/video/pm3fb.c --- 551-akpm_bear_pit/drivers/video/pm3fb.c Wed Mar 26 22:54:34 2003 +++ 600-32bit_dev_t/drivers/video/pm3fb.c Sun Apr 20 22:23:16 2003 @@ -1602,7 +1602,7 @@ static void pm3fb_common_init(struct pm3 disp[l_fb_info->board_num].scrollmode = 0; /* SCROLL_YNOMOVE; *//* 0 means "let fbcon choose" */ l_fb_info->gen.parsize = sizeof(struct pm3fb_par); l_fb_info->gen.info.changevar = NULL; - l_fb_info->gen.info.node = B_FREE; + l_fb_info->gen.info.node = NODEV; l_fb_info->gen.info.fbops = &pm3fb_ops; l_fb_info->gen.info.disp = &(disp[l_fb_info->board_num]); if (fontn[l_fb_info->board_num][0]) diff -urpN -X /home/fletch/.diff.exclude 551-akpm_bear_pit/include/asm-i386/posix_types.h 600-32bit_dev_t/include/asm-i386/posix_types.h --- 551-akpm_bear_pit/include/asm-i386/posix_types.h Sun Apr 20 19:35:05 2003 +++ 600-32bit_dev_t/include/asm-i386/posix_types.h Sun Apr 20 22:23:16 2003 @@ -7,7 +7,7 @@ * assume GCC is being used. */ -typedef unsigned short __kernel_dev_t; +typedef unsigned long __kernel_dev_t; typedef unsigned long __kernel_ino_t; typedef unsigned short __kernel_mode_t; typedef unsigned short __kernel_nlink_t; diff -urpN -X /home/fletch/.diff.exclude 551-akpm_bear_pit/include/linux/kdev_t.h 600-32bit_dev_t/include/linux/kdev_t.h --- 551-akpm_bear_pit/include/linux/kdev_t.h Tue Apr 8 14:38:21 2003 +++ 600-32bit_dev_t/include/linux/kdev_t.h Sun Apr 20 22:23:16 2003 @@ -70,13 +70,13 @@ aeb - 950811 * static arrays, and they are sized for a 8-bit index. */ typedef struct { - unsigned short value; + unsigned int value; } kdev_t; -#define KDEV_MINOR_BITS 8 -#define KDEV_MAJOR_BITS 8 +#define KDEV_MINOR_BITS 16 +#define KDEV_MAJOR_BITS 16 -#define __mkdev(major,minor) (((major) << KDEV_MINOR_BITS) + (minor)) +#define __mkdev(major, minor) (((major) << KDEV_MINOR_BITS) + (minor)) #define mk_kdev(major, minor) ((kdev_t) { __mkdev(major,minor) } ) @@ -99,7 +99,6 @@ static inline kdev_t val_to_kdev(unsigne #define HASHDEV(dev) (kdev_val(dev)) #define NODEV (mk_kdev(0,0)) -#define B_FREE (mk_kdev(0xff,0xff)) static inline int kdev_same(kdev_t dev1, kdev_t dev2) { @@ -108,17 +107,55 @@ static inline int kdev_same(kdev_t dev1, #define kdev_none(d1) (!kdev_val(d1)) -/* Mask off the high bits for now.. */ -#define minor(dev) ((dev).value & 0xff) -#define major(dev) (((dev).value >> KDEV_MINOR_BITS) & 0xff) +#define minor(dev) ((dev).value & 0xffff) +#define major(dev) (((dev).value >> KDEV_MINOR_BITS) & 0xffff) /* These are for user-level "dev_t" */ +/* Since glibc uses 8+8 in , we'll get + incompatibilities with a simple scheme like 12+20. + Use 8+8 for 16-bit values, some other division, say 16+16, + for 32-bit values. */ #define MINORBITS 8 #define MINORMASK ((1U << MINORBITS) - 1) -#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS)) -#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK)) -#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi)) +#include /* dev_t */ +#if 1 +/* macro versions */ + +#define MAJOR(dev) ((unsigned int)(((dev) & 0xffff0000) ? ((dev) >> 16) & 0xffff : ((dev) >> 8) & 0xff)) +#define MINOR(dev) ((unsigned int)(((dev) & 0xffff0000) ? ((dev) & 0xffff) : ((dev) & 0xff))) +#define MKDEV(ma,mi) ((dev_t)((((ma) & ~0xff) == 0 && ((mi) & ~0xff) == 0) ? (((ma) << 8) | (mi)) : (((ma) << 16) | (mi)))) + +#else +/* inline function versions */ + +static inline unsigned int +MAJOR(dev_t dev) { + unsigned int ma; + + ma = ((dev >> 16) & 0xffff); + if (ma == 0) + ma = ((dev >> 8) & 0xff); + return ma; +} + +static inline unsigned int +MINOR(dev_t dev) { + unsigned int mi; + + mi = (dev & 0xffff); + if (mi == dev) + mi = (dev & 0xff); + return mi; +} + +static inline dev_t +MKDEV(unsigned int ma, unsigned int mi) { + if ((ma & ~0xff) == 0 && (mi & ~0xff) == 0) + return ((ma << 8) | mi); + return ((ma << 16) | mi); +} +#endif /* * Conversion functions @@ -126,12 +163,16 @@ static inline int kdev_same(kdev_t dev1, static inline int kdev_t_to_nr(kdev_t dev) { - return MKDEV(major(dev), minor(dev)); + unsigned int ma = major(dev); + unsigned int mi = minor(dev); + return MKDEV(ma, mi); } -static inline kdev_t to_kdev_t(int dev) +static inline kdev_t to_kdev_t(dev_t dev) { - return mk_kdev(MAJOR(dev),MINOR(dev)); + unsigned int ma = MAJOR(dev); + unsigned int mi = MINOR(dev); + return mk_kdev(ma, mi); } #else /* __KERNEL__ */ diff -urpN -X /home/fletch/.diff.exclude 551-akpm_bear_pit/include/linux/nfsd/syscall.h 600-32bit_dev_t/include/linux/nfsd/syscall.h --- 551-akpm_bear_pit/include/linux/nfsd/syscall.h Sun Apr 20 19:35:07 2003 +++ 600-32bit_dev_t/include/linux/nfsd/syscall.h Sun Apr 20 22:23:16 2003 @@ -59,7 +59,7 @@ struct nfsctl_client { struct nfsctl_export { char ex_client[NFSCLNT_IDMAX+1]; char ex_path[NFS_MAXPATHLEN+1]; - __kernel_dev_t ex_dev; + u16 ex_dev; __kernel_ino_t ex_ino; int ex_flags; __kernel_uid_t ex_anon_uid; diff -urpN -X /home/fletch/.diff.exclude 551-akpm_bear_pit/include/video/pm3fb.h 600-32bit_dev_t/include/video/pm3fb.h --- 551-akpm_bear_pit/include/video/pm3fb.h Wed Mar 26 22:54:38 2003 +++ 600-32bit_dev_t/include/video/pm3fb.h Sun Apr 20 22:23:16 2003 @@ -1147,11 +1147,6 @@ #define MUST_BYTESWAP #endif -/* for compatibility between 2.5, 2.4 and 2.2 */ -#ifndef B_FREE -#define B_FREE -1 -#endif - /* permedia3 -specific definitions */ #define PM3_SCALE_TO_CLOCK(pr, fe, po) ((2 * PM3_REF_CLOCK * fe) / (pr * (1 << (po))))