diff --git a/include/image.h b/include/image.h
index 294eba5..366b622 100644
--- a/include/image.h
+++ b/include/image.h
@@ -362,23 +362,23 @@
 	{ \
 		return uimage_to_cpu (hdr->ih_##f); \
 	}
-image_get_hdr_l (magic);	/* image_get_magic */
-image_get_hdr_l (hcrc);		/* image_get_hcrc */
-image_get_hdr_l (time);		/* image_get_time */
-image_get_hdr_l (size);		/* image_get_size */
-image_get_hdr_l (load);		/* image_get_load */
-image_get_hdr_l (ep);		/* image_get_ep */
-image_get_hdr_l (dcrc);		/* image_get_dcrc */
+image_get_hdr_l (magic)		/* image_get_magic */
+image_get_hdr_l (hcrc)		/* image_get_hcrc */
+image_get_hdr_l (time)		/* image_get_time */
+image_get_hdr_l (size)		/* image_get_size */
+image_get_hdr_l (load)		/* image_get_load */
+image_get_hdr_l (ep)		/* image_get_ep */
+image_get_hdr_l (dcrc)		/* image_get_dcrc */
 
 #define image_get_hdr_b(f) \
 	static inline uint8_t image_get_##f(const image_header_t *hdr) \
 	{ \
 		return hdr->ih_##f; \
 	}
-image_get_hdr_b (os);		/* image_get_os */
-image_get_hdr_b (arch);		/* image_get_arch */
-image_get_hdr_b (type);		/* image_get_type */
-image_get_hdr_b (comp);		/* image_get_comp */
+image_get_hdr_b (os)		/* image_get_os */
+image_get_hdr_b (arch)		/* image_get_arch */
+image_get_hdr_b (type)		/* image_get_type */
+image_get_hdr_b (comp)		/* image_get_comp */
 
 static inline char *image_get_name (const image_header_t *hdr)
 {
@@ -420,23 +420,23 @@
 	{ \
 		hdr->ih_##f = cpu_to_uimage (val); \
 	}
-image_set_hdr_l (magic);	/* image_set_magic */
-image_set_hdr_l (hcrc);		/* image_set_hcrc */
-image_set_hdr_l (time);		/* image_set_time */
-image_set_hdr_l (size);		/* image_set_size */
-image_set_hdr_l (load);		/* image_set_load */
-image_set_hdr_l (ep);		/* image_set_ep */
-image_set_hdr_l (dcrc);		/* image_set_dcrc */
+image_set_hdr_l (magic)		/* image_set_magic */
+image_set_hdr_l (hcrc)		/* image_set_hcrc */
+image_set_hdr_l (time)		/* image_set_time */
+image_set_hdr_l (size)		/* image_set_size */
+image_set_hdr_l (load)		/* image_set_load */
+image_set_hdr_l (ep)		/* image_set_ep */
+image_set_hdr_l (dcrc)		/* image_set_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_os */
-image_set_hdr_b (arch);		/* image_set_arch */
-image_set_hdr_b (type);		/* image_set_type */
-image_set_hdr_b (comp);		/* image_set_comp */
+image_set_hdr_b (os)		/* image_set_os */
+image_set_hdr_b (arch)		/* image_set_arch */
+image_set_hdr_b (type)		/* image_set_type */
+image_set_hdr_b (comp)		/* image_set_comp */
 
 static inline void image_set_name (image_header_t *hdr, const char *name)
 {
