| 
				
			 | 
			
			
				
				@@ -16,6 +16,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); 
			 | 
		
		
	
		
			
			| 
				16
			 | 
			
				16
			 | 
			
			
				
				 #include <ipxe/refcnt.h> 
			 | 
		
		
	
		
			
			| 
				17
			 | 
			
				17
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				18
			 | 
			
				18
			 | 
			
			
				
				 struct uri; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				19
			 | 
			
			
				
				+struct pixel_buffer; 
			 | 
		
		
	
		
			
			| 
				19
			 | 
			
				20
			 | 
			
			
				
				 struct image_type; 
			 | 
		
		
	
		
			
			| 
				20
			 | 
			
				21
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				21
			 | 
			
				22
			 | 
			
			
				
				 /** An executable image */ 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -74,9 +75,10 @@ struct image { 
			 | 
		
		
	
		
			
			| 
				74
			 | 
			
				75
			 | 
			
			
				
				 struct image_type { 
			 | 
		
		
	
		
			
			| 
				75
			 | 
			
				76
			 | 
			
			
				
				 	/** Name of this image type */ 
			 | 
		
		
	
		
			
			| 
				76
			 | 
			
				77
			 | 
			
			
				
				 	char *name; 
			 | 
		
		
	
		
			
			| 
				77
			 | 
			
				
			 | 
			
			
				
				-	/** Probe image 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				78
			 | 
			
			
				
				+	/** 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				
				+	 * Probe image 
			 | 
		
		
	
		
			
			| 
				78
			 | 
			
				80
			 | 
			
			
				
				 	 * 
			 | 
		
		
	
		
			
			| 
				79
			 | 
			
				
			 | 
			
			
				
				-	 * @v image		Executable image 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				81
			 | 
			
			
				
				+	 * @v image		Image 
			 | 
		
		
	
		
			
			| 
				80
			 | 
			
				82
			 | 
			
			
				
				 	 * @ret rc		Return status code 
			 | 
		
		
	
		
			
			| 
				81
			 | 
			
				83
			 | 
			
			
				
				 	 * 
			 | 
		
		
	
		
			
			| 
				82
			 | 
			
				84
			 | 
			
			
				
				 	 * Return success if the image is of this image type. 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -85,10 +87,18 @@ struct image_type { 
			 | 
		
		
	
		
			
			| 
				85
			 | 
			
				87
			 | 
			
			
				
				 	/** 
			 | 
		
		
	
		
			
			| 
				86
			 | 
			
				88
			 | 
			
			
				
				 	 * Execute image 
			 | 
		
		
	
		
			
			| 
				87
			 | 
			
				89
			 | 
			
			
				
				 	 * 
			 | 
		
		
	
		
			
			| 
				88
			 | 
			
				
			 | 
			
			
				
				-	 * @v image		Executable image 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				
				+	 * @v image		Image 
			 | 
		
		
	
		
			
			| 
				89
			 | 
			
				91
			 | 
			
			
				
				 	 * @ret rc		Return status code 
			 | 
		
		
	
		
			
			| 
				90
			 | 
			
				92
			 | 
			
			
				
				 	 */ 
			 | 
		
		
	
		
			
			| 
				91
			 | 
			
				93
			 | 
			
			
				
				 	int ( * exec ) ( struct image *image ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				
				+	/** 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				95
			 | 
			
			
				
				+	 * Create pixel buffer from image 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				96
			 | 
			
			
				
				+	 * 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				97
			 | 
			
			
				
				+	 * @v image		Image 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				98
			 | 
			
			
				
				+	 * @v pixbuf		Pixel buffer to fill in 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				99
			 | 
			
			
				
				+	 * @ret rc		Return status code 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				100
			 | 
			
			
				
				+	 */ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				101
			 | 
			
			
				
				+	int ( * pixbuf ) ( struct image *image, struct pixel_buffer **pixbuf ); 
			 | 
		
		
	
		
			
			| 
				92
			 | 
			
				102
			 | 
			
			
				
				 }; 
			 | 
		
		
	
		
			
			| 
				93
			 | 
			
				103
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				94
			 | 
			
				104
			 | 
			
			
				
				 /** 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -159,6 +169,7 @@ extern int image_replace ( struct image *replacement ); 
			 | 
		
		
	
		
			
			| 
				159
			 | 
			
				169
			 | 
			
			
				
				 extern int image_select ( struct image *image ); 
			 | 
		
		
	
		
			
			| 
				160
			 | 
			
				170
			 | 
			
			
				
				 extern struct image * image_find_selected ( void ); 
			 | 
		
		
	
		
			
			| 
				161
			 | 
			
				171
			 | 
			
			
				
				 extern int image_set_trust ( int require_trusted, int permanent ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				172
			 | 
			
			
				
				+extern int image_pixbuf ( struct image *image, struct pixel_buffer **pixbuf ); 
			 | 
		
		
	
		
			
			| 
				162
			 | 
			
				173
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				163
			 | 
			
				174
			 | 
			
			
				
				 /** 
			 | 
		
		
	
		
			
			| 
				164
			 | 
			
				175
			 | 
			
			
				
				  * Increment reference count on an image 
			 |