|
@@ -79,18 +79,30 @@ struct image_type {
|
79
|
79
|
int ( * exec ) ( struct image *image );
|
80
|
80
|
};
|
81
|
81
|
|
82
|
|
-/** An executable or loadable image type */
|
83
|
|
-#define __image_type __table ( struct image_type, image_types, 01 )
|
|
82
|
+/**
|
|
83
|
+ * Multiboot image probe priority
|
|
84
|
+ *
|
|
85
|
+ * Multiboot images are also valid executables in another format
|
|
86
|
+ * (e.g. ELF), so we must perform the multiboot probe first.
|
|
87
|
+ */
|
|
88
|
+#define PROBE_MULTIBOOT 01
|
84
|
89
|
|
85
|
90
|
/**
|
86
|
|
- * An unverifiable executable or loadable image type
|
|
91
|
+ * Normal image probe priority
|
|
92
|
+ */
|
|
93
|
+#define PROBE_NORMAL 02
|
|
94
|
+
|
|
95
|
+/**
|
|
96
|
+ * PXE image probe priority
|
87
|
97
|
*
|
88
|
|
- * This should be used to mark image types for which there are no
|
89
|
|
- * signature or other checks that can be used to verify the validity
|
90
|
|
- * of the image (such as PXE images). These will then be tried last
|
91
|
|
- * in the list of image types.
|
|
98
|
+ * PXE images have no signature checks, so will claim all image files.
|
|
99
|
+ * They must therefore be tried last in the probe order list.
|
92
|
100
|
*/
|
93
|
|
-#define __default_image_type __table ( struct image_type, image_types, 02 )
|
|
101
|
+#define PROBE_PXE 03
|
|
102
|
+
|
|
103
|
+/** An executable or loadable image type */
|
|
104
|
+#define __image_type( probe_order ) \
|
|
105
|
+ __table ( struct image_type, image_types, probe_order )
|
94
|
106
|
|
95
|
107
|
extern struct list_head images;
|
96
|
108
|
|