1204431Sraj#ifndef _LIBFDT_ENV_H 2204431Sraj#define _LIBFDT_ENV_H 3204431Sraj 4208750Sraj#ifdef _KERNEL 5208750Sraj#include <sys/cdefs.h> 6208750Sraj#include <sys/param.h> 7208750Sraj#include <sys/types.h> 8208750Sraj#include <sys/systm.h> 9208750Sraj#include <sys/stdint.h> 10208750Sraj#else 11204431Sraj#include <stddef.h> 12204431Sraj#include <stdint.h> 13204431Sraj#include <string.h> 14208750Sraj#endif 15204431Sraj 16238742Simp#define EXTRACT_BYTE(n) ((unsigned long long)((uint8_t *)&x)[n]) 17238742Simpstatic inline uint16_t fdt16_to_cpu(uint16_t x) 18238742Simp{ 19238742Simp return (EXTRACT_BYTE(0) << 8) | EXTRACT_BYTE(1); 20238742Simp} 21238742Simp#define cpu_to_fdt16(x) fdt16_to_cpu(x) 22238742Simp 23204431Srajstatic inline uint32_t fdt32_to_cpu(uint32_t x) 24204431Sraj{ 25238742Simp return (EXTRACT_BYTE(0) << 24) | (EXTRACT_BYTE(1) << 16) | (EXTRACT_BYTE(2) << 8) | EXTRACT_BYTE(3); 26204431Sraj} 27204431Sraj#define cpu_to_fdt32(x) fdt32_to_cpu(x) 28204431Sraj 29204431Srajstatic inline uint64_t fdt64_to_cpu(uint64_t x) 30204431Sraj{ 31238742Simp return (EXTRACT_BYTE(0) << 56) | (EXTRACT_BYTE(1) << 48) | (EXTRACT_BYTE(2) << 40) | (EXTRACT_BYTE(3) << 32) 32238742Simp | (EXTRACT_BYTE(4) << 24) | (EXTRACT_BYTE(5) << 16) | (EXTRACT_BYTE(6) << 8) | EXTRACT_BYTE(7); 33204431Sraj} 34204431Sraj#define cpu_to_fdt64(x) fdt64_to_cpu(x) 35238742Simp#undef EXTRACT_BYTE 36204431Sraj 37204431Sraj#endif /* _LIBFDT_ENV_H */ 38