xref: /linux/tools/include/nolibc/sys/sysmacros.h (revision 70091eada34c9ebc650dc88dd0e8c9246c5df8f8)
1 /* SPDX-License-Identifier: LGPL-2.1 OR MIT */
2 /*
3  * Sysmacro definitions for NOLIBC
4  * Copyright (C) 2017-2021 Willy Tarreau <w@1wt.eu>
5  */
6 
7 /* make sure to include all global symbols */
8 #include "../nolibc.h"
9 
10 #ifndef _NOLIBC_SYS_SYSMACROS_H
11 #define _NOLIBC_SYS_SYSMACROS_H
12 
13 #include "../std.h"
14 
15 /* WARNING, it only deals with the 4096 first majors and 256 first minors */
16 static __inline__ dev_t __nolibc_makedev(unsigned int maj, unsigned int min)
17 {
18 	return ((maj & 0xfff) << 8) | (min & 0xff);
19 }
20 
21 #define makedev(maj, min) __nolibc_makedev(maj, min)
22 
23 static __inline__ unsigned int __nolibc_major(dev_t dev)
24 {
25 	return (dev >> 8) & 0xfff;
26 }
27 
28 #define major(dev) __nolibc_major(dev)
29 
30 static __inline__ unsigned int __nolibc_minor(dev_t dev)
31 {
32 	return dev & 0xff;
33 }
34 
35 #define minor(dev) __nolibc_minor(dev)
36 
37 #endif /* _NOLIBC_SYS_SYSMACROS_H */
38