Lines Matching +full:fixed +full:- +full:length

22 #include "hw/acpi/bios-linker-loader.h"
30 * - allocate memory chunks and initialize them from QEMU FW CFG files
31 * - link allocated chunks by storing pointer to one chunk into another
32 * - calculate ACPI checksum of part of the chunk and store into same chunk
40 * COMMAND_ALLOCATE - allocate a table from @alloc.file
54 * COMMAND_ADD_POINTER - patch the table (originating from
67 * COMMAND_ADD_CHECKSUM - calculate checksum of the range specified by
70 * Checksum simply sums -X for each byte X in the range
71 * using 8-bit math.
77 uint32_t length; member
81 * COMMAND_WRITE_POINTER - write the fw_cfg file (originating from
116 * An internal type used for book-keeping file entries
133 linker->cmd_blob = g_array_new(false, true /* clear */, 1); in bios_linker_loader_init()
134 linker->file_list = g_array_new(false, true /* clear */, in bios_linker_loader_init()
145 g_array_free(linker->cmd_blob, true); in bios_linker_loader_cleanup()
147 for (i = 0; i < linker->file_list->len; i++) { in bios_linker_loader_cleanup()
148 entry = &g_array_index(linker->file_list, BiosLinkerFileEntry, i); in bios_linker_loader_cleanup()
149 g_free(entry->name); in bios_linker_loader_cleanup()
151 g_array_free(linker->file_list, true); in bios_linker_loader_cleanup()
161 for (i = 0; i < linker->file_list->len; i++) { in bios_linker_find_file()
162 entry = &g_array_index(linker->file_list, BiosLinkerFileEntry, i); in bios_linker_find_file()
163 if (!strcmp(entry->name, name)) { in bios_linker_find_file()
171 * board code must realize fw_cfg first, as a fixed device, before
200 assert(!(alloc_align & (alloc_align - 1))); in bios_linker_loader_alloc()
203 g_array_append_val(linker->file_list, file); in bios_linker_loader_alloc()
206 strncpy(entry.alloc.file, file_name, sizeof entry.alloc.file - 1); in bios_linker_loader_alloc()
213 g_array_prepend_vals(linker->cmd_blob, &entry, sizeof entry); in bios_linker_loader_alloc()
220 * Checksum calculation simply sums -X for each byte X in the range
221 * using 8-bit math (i.e. ACPI checksum).
239 assert(start_offset < file->blob->len); in bios_linker_loader_add_checksum()
240 assert(start_offset + size <= file->blob->len); in bios_linker_loader_add_checksum()
244 *(file->blob->data + checksum_offset) = 0; in bios_linker_loader_add_checksum()
246 strncpy(entry.cksum.file, file_name, sizeof entry.cksum.file - 1); in bios_linker_loader_add_checksum()
250 entry.cksum.length = cpu_to_le32(size); in bios_linker_loader_add_checksum()
252 g_array_append_vals(linker->cmd_blob, &entry, sizeof entry); in bios_linker_loader_add_checksum()
287 assert(dst_patched_offset < dst_file->blob->len); in bios_linker_loader_add_pointer()
288 assert(dst_patched_offset + dst_patched_size <= dst_file->blob->len); in bios_linker_loader_add_pointer()
289 assert(src_offset < source_file->blob->len); in bios_linker_loader_add_pointer()
293 sizeof entry.pointer.dest_file - 1); in bios_linker_loader_add_pointer()
295 sizeof entry.pointer.src_file - 1); in bios_linker_loader_add_pointer()
303 memcpy(dst_file->blob->data + dst_patched_offset, in bios_linker_loader_add_pointer()
306 g_array_append_vals(linker->cmd_blob, &entry, sizeof entry); in bios_linker_loader_add_pointer()
337 assert(src_offset < source_file->blob->len); in bios_linker_loader_write_pointer()
340 sizeof entry.wr_pointer.dest_file - 1); in bios_linker_loader_write_pointer()
342 sizeof entry.wr_pointer.src_file - 1); in bios_linker_loader_write_pointer()
350 g_array_append_vals(linker->cmd_blob, &entry, sizeof entry); in bios_linker_loader_write_pointer()