121fdc27aSRafal Jaworowski #ifndef _LIBFDT_ENV_H 221fdc27aSRafal Jaworowski #define _LIBFDT_ENV_H 321fdc27aSRafal Jaworowski 421d30ec1SRafal Jaworowski #ifdef _KERNEL 521d30ec1SRafal Jaworowski #include <sys/cdefs.h> 621d30ec1SRafal Jaworowski #include <sys/param.h> 721d30ec1SRafal Jaworowski #include <sys/types.h> 821d30ec1SRafal Jaworowski #include <sys/systm.h> 921d30ec1SRafal Jaworowski #include <sys/stdint.h> 1021d30ec1SRafal Jaworowski #else 1121fdc27aSRafal Jaworowski #include <stddef.h> 1221fdc27aSRafal Jaworowski #include <stdint.h> 1321fdc27aSRafal Jaworowski #include <string.h> 1421d30ec1SRafal Jaworowski #endif 1521fdc27aSRafal Jaworowski 16*52baf267SWarner Losh #define EXTRACT_BYTE(n) ((unsigned long long)((uint8_t *)&x)[n]) 17*52baf267SWarner Losh static inline uint16_t fdt16_to_cpu(uint16_t x) 18*52baf267SWarner Losh { 19*52baf267SWarner Losh return (EXTRACT_BYTE(0) << 8) | EXTRACT_BYTE(1); 20*52baf267SWarner Losh } 21*52baf267SWarner Losh #define cpu_to_fdt16(x) fdt16_to_cpu(x) 22*52baf267SWarner Losh 2321fdc27aSRafal Jaworowski static inline uint32_t fdt32_to_cpu(uint32_t x) 2421fdc27aSRafal Jaworowski { 25*52baf267SWarner Losh return (EXTRACT_BYTE(0) << 24) | (EXTRACT_BYTE(1) << 16) | (EXTRACT_BYTE(2) << 8) | EXTRACT_BYTE(3); 2621fdc27aSRafal Jaworowski } 2721fdc27aSRafal Jaworowski #define cpu_to_fdt32(x) fdt32_to_cpu(x) 2821fdc27aSRafal Jaworowski 2921fdc27aSRafal Jaworowski static inline uint64_t fdt64_to_cpu(uint64_t x) 3021fdc27aSRafal Jaworowski { 31*52baf267SWarner Losh return (EXTRACT_BYTE(0) << 56) | (EXTRACT_BYTE(1) << 48) | (EXTRACT_BYTE(2) << 40) | (EXTRACT_BYTE(3) << 32) 32*52baf267SWarner Losh | (EXTRACT_BYTE(4) << 24) | (EXTRACT_BYTE(5) << 16) | (EXTRACT_BYTE(6) << 8) | EXTRACT_BYTE(7); 3321fdc27aSRafal Jaworowski } 3421fdc27aSRafal Jaworowski #define cpu_to_fdt64(x) fdt64_to_cpu(x) 35*52baf267SWarner Losh #undef EXTRACT_BYTE 3621fdc27aSRafal Jaworowski 3721fdc27aSRafal Jaworowski #endif /* _LIBFDT_ENV_H */ 38