summaryrefslogtreecommitdiff
path: root/gpxe/src/image/embedded.c
diff options
context:
space:
mode:
Diffstat (limited to 'gpxe/src/image/embedded.c')
-rw-r--r--gpxe/src/image/embedded.c101
1 files changed, 0 insertions, 101 deletions
diff --git a/gpxe/src/image/embedded.c b/gpxe/src/image/embedded.c
deleted file mode 100644
index 58a14ea4..00000000
--- a/gpxe/src/image/embedded.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/** @file
- *
- * Embedded image support
- *
- * Embedded images are images built into the gPXE binary and do not require
- * fetching over the network.
- */
-
-FILE_LICENCE ( GPL2_OR_LATER );
-
-#include <string.h>
-#include <gpxe/image.h>
-#include <gpxe/uaccess.h>
-#include <gpxe/init.h>
-
-/**
- * Free embedded image
- *
- * @v refcnt Reference counter
- */
-static void __attribute__ (( unused ))
-embedded_image_free ( struct refcnt *refcnt __unused ) {
- /* Do nothing */
-}
-
-/* Raw image data for all embedded images */
-#undef EMBED
-#define EMBED( _index, _path, _name ) \
- extern char embedded_image_ ## _index ## _data[]; \
- extern char embedded_image_ ## _index ## _len[]; \
- __asm__ ( ".section \".rodata\", \"a\", @progbits\n\t" \
- "\nembedded_image_" #_index "_data:\n\t" \
- ".incbin \"" _path "\"\n\t" \
- "\nembedded_image_" #_index "_end:\n\t" \
- ".equ embedded_image_" #_index "_len, " \
- "( embedded_image_" #_index "_end - " \
- " embedded_image_" #_index "_data )\n\t" \
- ".previous\n\t" );
-EMBED_ALL
-
-/* Image structures for all embedded images */
-#undef EMBED
-#define EMBED( _index, _path, _name ) { \
- .refcnt = { .free = embedded_image_free, }, \
- .name = _name, \
- .data = ( userptr_t ) ( embedded_image_ ## _index ## _data ), \
- .len = ( size_t ) embedded_image_ ## _index ## _len, \
-},
-static struct image embedded_images[] = {
- EMBED_ALL
-};
-
-/**
- * Register all embedded images
- */
-static void embedded_init ( void ) {
- int i;
- struct image *image;
- void *data;
- int rc;
-
- /* Skip if we have no embedded images */
- if ( ! sizeof ( embedded_images ) )
- return;
-
- /* Fix up data pointers and register images */
- for ( i = 0 ; i < ( int ) ( sizeof ( embedded_images ) /
- sizeof ( embedded_images[0] ) ) ; i++ ) {
- image = &embedded_images[i];
-
- /* virt_to_user() cannot be used in a static
- * initialiser, so we cast the pointer to a userptr_t
- * in the initialiser and fix it up here. (This will
- * actually be a no-op on most platforms.)
- */
- data = ( ( void * ) image->data );
- image->data = virt_to_user ( data );
-
- DBG ( "Embedded image \"%s\": %zd bytes at %p\n",
- image->name, image->len, data );
-
- if ( ( rc = register_image ( image ) ) != 0 ) {
- DBG ( "Could not register embedded image \"%s\": "
- "%s\n", image->name, strerror ( rc ) );
- return;
- }
- }
-
- /* Load the first image */
- image = &embedded_images[0];
- if ( ( rc = image_autoload ( image ) ) != 0 ) {
- DBG ( "Could not load embedded image \"%s\": %s\n",
- image->name, strerror ( rc ) );
- return;
- }
-}
-
-/** Embedded image initialisation function */
-struct init_fn embedded_init_fn __init_fn ( INIT_NORMAL ) = {
- .initialise = embedded_init,
-};