Had this file lying around for ages; may as well check it in.
[people/xl0/gpxe.git] / src / include / image.h
1 #ifndef IMAGE_H
2 #define IMAGE_H
3
4 #include "stdint.h"
5 #include "io.h"
6 #include <gpxe/tables.h>
7 #include "dev.h"
8
9 struct image {
10         char *name;
11         int ( * probe ) ( physaddr_t data, off_t len, void **context );
12         int ( * load ) ( physaddr_t data, off_t len, void *context );
13         int ( * boot ) ( void *context );
14 };
15
16 #define __image_start           __table_start ( struct image, image )
17 #define __image                 __table ( struct image, image, 01 )
18 #define __default_image         __table ( struct image, image, 02 )
19 #define __image_end             __table_end ( struct image, image )
20
21 /* Functions in image.c */
22
23 extern void print_images ( void );
24 extern int autoload ( struct dev *dev, struct image **image, void **context );
25
26 #endif /* IMAGE_H */