|
OpenSS7 SS7 for the Common Man |
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
||||||||||||||||||||||||||
| Home | Overview | Status | News | Documentation | Resources | About | |||||||||||||||||||||
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
|
|||||||||||||||||||||||||||
|
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
|
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
|||||||||||||||||||||||||||