OpenSS7
SS7 for the
Common Man

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified:

Home Overview Status News Documentation Resources About
   
 Overview
 Status
 News
 Documentation
 Resources
 About

   
Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> usr/include/linux/kdev_t.h


File /code/usr/include/linux/kdev_t.h

#ifndef _LINUX_KDEV_T_H
#define _LINUX_KDEV_T_H
#if defined(__KERNEL__) || defined(_LVM_H_INCLUDE)


/* Since MINOR(dev) is used as index in static arrays,
   the kernel is not quite ready yet for larger minors.
   However, everything runs fine with an arbitrary kdev_t type. */

#define MINORBITS	8
#define MINORMASK	((1U << MINORBITS) - 1)

typedef unsigned short kdev_t;

#define MAJOR(dev)	((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev)	((unsigned int) ((dev) & MINORMASK))
#define HASHDEV(dev)	((unsigned int) (dev))
#define NODEV		0
#define MKDEV(ma,mi)	(((ma) << MINORBITS) | (mi))
#define B_FREE		0xffff		/* yuk */

extern const char * kdevname(kdev_t);	/* note: returns pointer to static data! */

/*
As long as device numbers in the outside world have 16 bits only,
we use these conversions.
*/

static inline unsigned int kdev_t_to_nr(kdev_t dev) {
	return (MAJOR(dev)<<8) | MINOR(dev);
}

static inline kdev_t to_kdev_t(int dev)
{
	int major, minor;
#if 0
	major = (dev >> 16);
	if (!major) {
		major = (dev >> 8);
		minor = (dev & 0xff);
	} else
		minor = (dev & 0xffff);
#else
	major = (dev >> 8);
	minor = (dev & 0xff);
#endif
	return MKDEV(major, minor);
}

#else /* __KERNEL__ || _LVM_H_INCLUDE */

/*
Some programs want their definitions of MAJOR and MINOR and MKDEV
from the kernel sources. These must be the externally visible ones.
*/
#define MAJOR(dev)	((dev)>>8)
#define MINOR(dev)	((dev) & 0xff)
#define MKDEV(ma,mi)	((ma)<<8 | (mi))
#endif /* __KERNEL__ || _LVM_H_INCLUDE */
#endif


Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> usr/include/linux/kdev_t.h

OpenSS7
SS7 for the
Common Man
Home Overview Status News Documentation Resources About

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: