This adds a dynamic bios linker/loader.
This will be used by acpi table generation
code to:
    - load each table in the appropriate memory segment
    - link tables to each other
    - fix up checksums after said linking
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
		
	
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			952 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			952 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef BIOS_LINKER_LOADER_H
 | 
						|
#define BIOS_LINKER_LOADER_H
 | 
						|
 | 
						|
#include <glib.h>
 | 
						|
#include <stdbool.h>
 | 
						|
#include <inttypes.h>
 | 
						|
 | 
						|
GArray *bios_linker_loader_init(void);
 | 
						|
 | 
						|
void bios_linker_loader_alloc(GArray *linker,
 | 
						|
                              const char *file,
 | 
						|
                              uint32_t alloc_align,
 | 
						|
                              bool alloc_fseg);
 | 
						|
 | 
						|
void bios_linker_loader_add_checksum(GArray *linker, const char *file,
 | 
						|
                                     void *table,
 | 
						|
                                     void *start, unsigned size,
 | 
						|
                                     uint8_t *checksum);
 | 
						|
 | 
						|
void bios_linker_loader_add_pointer(GArray *linker,
 | 
						|
                                    const char *dest_file,
 | 
						|
                                    const char *src_file,
 | 
						|
                                    GArray *table, void *pointer,
 | 
						|
                                    uint8_t pointer_size);
 | 
						|
 | 
						|
void *bios_linker_loader_cleanup(GArray *linker);
 | 
						|
#endif
 |