Loading...
/* SPDX-License-Identifier: GPL-2.0 */ /* * Device number macros for U-Boot * * Based on Linux kdev_t.h */ #ifndef _LINUX_KDEV_T_H #define _LINUX_KDEV_T_H #include <linux/types.h> /* Number of minor bits */ #ifndef MINORBITS #define MINORBITS 20 #endif /* Minor number mask */ #ifndef MINORMASK #define MINORMASK ((1U << MINORBITS) - 1) #endif /** * MAJOR - extract major number from dev_t * @dev: device number */ #ifndef MAJOR #define MAJOR(dev) ((unsigned int)((dev) >> MINORBITS)) #endif /** * MINOR - extract minor number from dev_t * @dev: device number */ #ifndef MINOR #define MINOR(dev) ((unsigned int)((dev) & MINORMASK)) #endif /** * MKDEV - create dev_t from major and minor numbers * @ma: major number * @mi: minor number */ #ifndef MKDEV #define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi)) #endif /* Old-style device number encoding (8:8) */ #define old_valid_dev(dev) (MAJOR(dev) < 256 && MINOR(dev) < 256) #define old_encode_dev(dev) ((MAJOR(dev) << 8) | MINOR(dev)) #define old_decode_dev(dev) MKDEV((dev) >> 8, (dev) & 0xff) /* New-style device number encoding (pass-through) */ #define new_encode_dev(dev) ((unsigned int)(dev)) #define new_decode_dev(dev) ((dev_t)(dev)) #endif /* _LINUX_KDEV_T_H */ |