xref: /freebsd/sys/contrib/libfdt/libfdt_env.h (revision 21d30ec18d673020b701750a4d498a4e75cde516)
121fdc27aSRafal Jaworowski #ifndef _LIBFDT_ENV_H
221fdc27aSRafal Jaworowski #define _LIBFDT_ENV_H
321fdc27aSRafal Jaworowski 
4*21d30ec1SRafal Jaworowski #ifdef _KERNEL
5*21d30ec1SRafal Jaworowski #include <sys/cdefs.h>
6*21d30ec1SRafal Jaworowski #include <sys/param.h>
7*21d30ec1SRafal Jaworowski #include <sys/types.h>
8*21d30ec1SRafal Jaworowski #include <sys/systm.h>
9*21d30ec1SRafal Jaworowski #include <sys/stdint.h>
10*21d30ec1SRafal Jaworowski #else
1121fdc27aSRafal Jaworowski #include <stddef.h>
1221fdc27aSRafal Jaworowski #include <stdint.h>
1321fdc27aSRafal Jaworowski #include <string.h>
14*21d30ec1SRafal Jaworowski #endif
1521fdc27aSRafal Jaworowski 
1621fdc27aSRafal Jaworowski #define _B(n)	((unsigned long long)((uint8_t *)&x)[n])
1721fdc27aSRafal Jaworowski static inline uint32_t fdt32_to_cpu(uint32_t x)
1821fdc27aSRafal Jaworowski {
1921fdc27aSRafal Jaworowski 	return (_B(0) << 24) | (_B(1) << 16) | (_B(2) << 8) | _B(3);
2021fdc27aSRafal Jaworowski }
2121fdc27aSRafal Jaworowski #define cpu_to_fdt32(x) fdt32_to_cpu(x)
2221fdc27aSRafal Jaworowski 
2321fdc27aSRafal Jaworowski static inline uint64_t fdt64_to_cpu(uint64_t x)
2421fdc27aSRafal Jaworowski {
2521fdc27aSRafal Jaworowski 	return (_B(0) << 56) | (_B(1) << 48) | (_B(2) << 40) | (_B(3) << 32)
2621fdc27aSRafal Jaworowski 		| (_B(4) << 24) | (_B(5) << 16) | (_B(6) << 8) | _B(7);
2721fdc27aSRafal Jaworowski }
2821fdc27aSRafal Jaworowski #define cpu_to_fdt64(x) fdt64_to_cpu(x)
2921fdc27aSRafal Jaworowski #undef _B
3021fdc27aSRafal Jaworowski 
3121fdc27aSRafal Jaworowski #endif /* _LIBFDT_ENV_H */
32