image.h

来自「uboot详细解读可用启动引导LINUX2.6内核」· C头文件 代码 · 共 613 行 · 第 1/2 页

H
613
字号
image_get_hdr_b (os);image_get_hdr_b (arch);image_get_hdr_b (type);image_get_hdr_b (comp);static inline char *image_get_name (image_header_t *hdr){	return (char *)hdr->ih_name;}static inline uint32_t image_get_data_size (image_header_t *hdr){	return image_get_size (hdr);}/** * image_get_data - get image payload start address * @hdr: image header * * image_get_data() returns address of the image payload. For single * component images it is image data start. For multi component * images it points to the null terminated table of sub-images sizes. * * returns: *     image payload data start address */static inline ulong image_get_data (image_header_t *hdr){	return ((ulong)hdr + image_get_header_size ());}static inline uint32_t image_get_image_size (image_header_t *hdr){	return (image_get_size (hdr) + image_get_header_size ());}static inline ulong image_get_image_end (image_header_t *hdr){	return ((ulong)hdr + image_get_image_size (hdr));}#define image_set_hdr_l(f) \	static inline void image_set_##f(image_header_t *hdr, uint32_t val) \	{ \		hdr->ih_##f = cpu_to_uimage (val); \	}image_set_hdr_l (magic);image_set_hdr_l (hcrc);image_set_hdr_l (time);image_set_hdr_l (size);image_set_hdr_l (load);image_set_hdr_l (ep);image_set_hdr_l (dcrc);#define image_set_hdr_b(f) \	static inline void image_set_##f(image_header_t *hdr, uint8_t val) \	{ \		hdr->ih_##f = val; \	}image_set_hdr_b (os);image_set_hdr_b (arch);image_set_hdr_b (type);image_set_hdr_b (comp);static inline void image_set_name (image_header_t *hdr, const char *name){	strncpy (image_get_name (hdr), name, IH_NMLEN);}int image_check_hcrc (image_header_t *hdr);int image_check_dcrc (image_header_t *hdr);#ifndef USE_HOSTCCint getenv_yesno (char *var);ulong getenv_bootm_low(void);phys_size_t getenv_bootm_size(void);void memmove_wd (void *to, void *from, size_t len, ulong chunksz);#endifstatic inline int image_check_magic (image_header_t *hdr){	return (image_get_magic (hdr) == IH_MAGIC);}static inline int image_check_type (image_header_t *hdr, uint8_t type){	return (image_get_type (hdr) == type);}static inline int image_check_arch (image_header_t *hdr, uint8_t arch){	return (image_get_arch (hdr) == arch);}static inline int image_check_os (image_header_t *hdr, uint8_t os){	return (image_get_os (hdr) == os);}ulong image_multi_count (image_header_t *hdr);void image_multi_getimg (image_header_t *hdr, ulong idx,			ulong *data, ulong *len);void image_print_contents (image_header_t *hdr);#ifndef USE_HOSTCCstatic inline int image_check_target_arch (image_header_t *hdr){#if defined(__ARM__)	if (!image_check_arch (hdr, IH_ARCH_ARM))#elif defined(__avr32__)	if (!image_check_arch (hdr, IH_ARCH_AVR32))#elif defined(__bfin__)	if (!image_check_arch (hdr, IH_ARCH_BLACKFIN))#elif defined(__I386__)	if (!image_check_arch (hdr, IH_ARCH_I386))#elif defined(__M68K__)	if (!image_check_arch (hdr, IH_ARCH_M68K))#elif defined(__microblaze__)	if (!image_check_arch (hdr, IH_ARCH_MICROBLAZE))#elif defined(__mips__)	if (!image_check_arch (hdr, IH_ARCH_MIPS))#elif defined(__nios__)	if (!image_check_arch (hdr, IH_ARCH_NIOS))#elif defined(__nios2__)	if (!image_check_arch (hdr, IH_ARCH_NIOS2))#elif defined(__PPC__)	if (!image_check_arch (hdr, IH_ARCH_PPC))#elif defined(__sh__)	if (!image_check_arch (hdr, IH_ARCH_SH))#elif defined(__sparc__)	if (!image_check_arch (hdr, IH_ARCH_SPARC))#else# error Unknown CPU type#endif		return 0;	return 1;}#endif /* USE_HOSTCC *//*******************************************************************//* New uImage format specific code (prefixed with fit_) *//*******************************************************************/#if defined(CONFIG_FIT)#define FIT_IMAGES_PATH		"/images"#define FIT_CONFS_PATH		"/configurations"/* hash node */#define FIT_HASH_NODENAME	"hash"#define FIT_ALGO_PROP		"algo"#define FIT_VALUE_PROP		"value"/* image node */#define FIT_DATA_PROP		"data"#define FIT_TIMESTAMP_PROP	"timestamp"#define FIT_DESC_PROP		"description"#define FIT_ARCH_PROP		"arch"#define FIT_TYPE_PROP		"type"#define FIT_OS_PROP		"os"#define FIT_COMP_PROP		"compression"#define FIT_ENTRY_PROP		"entry"#define FIT_LOAD_PROP		"load"/* configuration node */#define FIT_KERNEL_PROP		"kernel"#define FIT_RAMDISK_PROP	"ramdisk"#define FIT_FDT_PROP		"fdt"#define FIT_DEFAULT_PROP	"default"#define FIT_MAX_HASH_LEN	20	/* max(crc32_len(4), sha1_len(20)) *//* cmdline argument format parsing */inline int fit_parse_conf (const char *spec, ulong addr_curr,		ulong *addr, const char **conf_name);inline int fit_parse_subimage (const char *spec, ulong addr_curr,		ulong *addr, const char **image_name);void fit_print_contents (const void *fit);void fit_image_print (const void *fit, int noffset, const char *p);void fit_image_print_hash (const void *fit, int noffset, const char *p);/** * fit_get_end - get FIT image size * @fit: pointer to the FIT format image header * * returns: *     size of the FIT image (blob) in memory */static inline ulong fit_get_size (const void *fit){	return fdt_totalsize (fit);}/** * fit_get_end - get FIT image end * @fit: pointer to the FIT format image header * * returns: *     end address of the FIT image (blob) in memory */static inline ulong fit_get_end (const void *fit){	return (ulong)fit + fdt_totalsize (fit);}/** * fit_get_name - get FIT node name * @fit: pointer to the FIT format image header * * returns: *     NULL, on error *     pointer to node name, on success */static inline const char *fit_get_name (const void *fit_hdr,		int noffset, int *len){	return fdt_get_name (fit_hdr, noffset, len);}int fit_get_desc (const void *fit, int noffset, char **desc);int fit_get_timestamp (const void *fit, int noffset, time_t *timestamp);int fit_image_get_node (const void *fit, const char *image_uname);int fit_image_get_os (const void *fit, int noffset, uint8_t *os);int fit_image_get_arch (const void *fit, int noffset, uint8_t *arch);int fit_image_get_type (const void *fit, int noffset, uint8_t *type);int fit_image_get_comp (const void *fit, int noffset, uint8_t *comp);int fit_image_get_load (const void *fit, int noffset, ulong *load);int fit_image_get_entry (const void *fit, int noffset, ulong *entry);int fit_image_get_data (const void *fit, int noffset,				const void **data, size_t *size);int fit_image_hash_get_algo (const void *fit, int noffset, char **algo);int fit_image_hash_get_value (const void *fit, int noffset, uint8_t **value,				int *value_len);int fit_set_timestamp (void *fit, int noffset, time_t timestamp);int fit_set_hashes (void *fit);int fit_image_set_hashes (void *fit, int image_noffset);int fit_image_hash_set_value (void *fit, int noffset, uint8_t *value,				int value_len);int fit_image_check_hashes (const void *fit, int noffset);int fit_image_check_os (const void *fit, int noffset, uint8_t os);int fit_image_check_arch (const void *fit, int noffset, uint8_t arch);int fit_image_check_type (const void *fit, int noffset, uint8_t type);int fit_image_check_comp (const void *fit, int noffset, uint8_t comp);int fit_check_format (const void *fit);int fit_conf_get_node (const void *fit, const char *conf_uname);int fit_conf_get_kernel_node (const void *fit, int noffset);int fit_conf_get_ramdisk_node (const void *fit, int noffset);int fit_conf_get_fdt_node (const void *fit, int noffset);void fit_conf_print (const void *fit, int noffset, const char *p);#ifndef USE_HOSTCCstatic inline int fit_image_check_target_arch (const void *fdt, int node){#if defined(__ARM__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_ARM))#elif defined(__avr32__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_AVR32))#elif defined(__bfin__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_BLACKFIN))#elif defined(__I386__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_I386))#elif defined(__M68K__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_M68K))#elif defined(__microblaze__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_MICROBLAZE))#elif defined(__mips__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_MIPS))#elif defined(__nios__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_NIOS))#elif defined(__nios2__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_NIOS2))#elif defined(__PPC__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_PPC))#elif defined(__sh__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_SH))#elif defined(__sparc__)	if (!fit_image_check_arch (fdt, node, IH_ARCH_SPARC))#else# error Unknown CPU type#endif		return 0;	return 1;}#endif /* USE_HOSTCC */#ifdef CONFIG_FIT_VERBOSE#define fit_unsupported(msg)	printf ("! %s:%d " \				"FIT images not supported for '%s'\n", \				__FILE__, __LINE__, (msg))#define fit_unsupported_reset(msg)	printf ("! %s:%d " \				"FIT images not supported for '%s' " \				"- must reset board to recover!\n", \				__FILE__, __LINE__, (msg))#else#define fit_unsupported(msg)#define fit_unsupported_reset(msg)#endif /* CONFIG_FIT_VERBOSE */#endif /* CONFIG_FIT */#endif	/* __IMAGE_H__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?