[comboot] Allow for tail recursion of COMBOOT images
[people/lynusvaz/gpxe.git] / src / include / gpxe / image.h
index 76dc3b8..0163b08 100644 (file)
@@ -46,6 +46,16 @@ struct image {
                userptr_t user;
                unsigned long ul;
        } priv;
+
+       /** Replacement image
+        *
+        * An image wishing to replace itself with another image (in a
+        * style similar to a Unix exec() call) should return from its
+        * exec() method with the replacement image set to point to
+        * the new image.  The new image must already be in a suitable
+        * state for execution.
+        */
+       struct image *replacement;
 };
 
 /** Image is loaded */
@@ -79,6 +89,10 @@ struct image_type {
         *
         * @v image             Loaded image
         * @ret rc              Return status code
+        *
+        * Note that the image may be invalidated by the act of
+        * execution, i.e. an image is allowed to choose to unregister
+        * (and so potentially free) itself.
         */
        int ( * exec ) ( struct image *image );
 };