Lines Matching full:tab
33 static void *get_entry_start(struct table_info *tab) in get_entry_start() argument
35 if (tab->count == SFI_TABLE_MAX_ENTRIES) in get_entry_start()
37 tab->entry_start = tab->base + tab->ptr; in get_entry_start()
38 tab->table[tab->count] = tab->entry_start; in get_entry_start()
39 tab->entry_start += sizeof(struct sfi_table_header); in get_entry_start()
41 return (void *)(uintptr_t)tab->entry_start; in get_entry_start()
44 static void finish_table(struct table_info *tab, const char *sig, void *entry) in finish_table() argument
48 hdr = (struct sfi_table_header *)(uintptr_t)(tab->base + tab->ptr); in finish_table()
50 hdr->len = sizeof(*hdr) + ((ulong)entry - tab->entry_start); in finish_table()
56 tab->ptr += hdr->len; in finish_table()
57 tab->ptr = ALIGN(tab->ptr, 16); in finish_table()
58 tab->count++; in finish_table()
61 static int sfi_write_system_header(struct table_info *tab) in sfi_write_system_header() argument
63 u64 *entry = get_entry_start(tab); in sfi_write_system_header()
69 for (i = 0; i < tab->count; i++) in sfi_write_system_header()
70 *entry++ = tab->table[i]; in sfi_write_system_header()
71 finish_table(tab, SFI_SIG_SYST, entry); in sfi_write_system_header()
76 static int sfi_write_cpus(struct table_info *tab) in sfi_write_cpus() argument
78 struct sfi_cpu_table_entry *entry = get_entry_start(tab); in sfi_write_cpus()
99 finish_table(tab, SFI_SIG_CPUS, entry); in sfi_write_cpus()
104 static int sfi_write_apic(struct table_info *tab) in sfi_write_apic() argument
106 struct sfi_apic_table_entry *entry = get_entry_start(tab); in sfi_write_apic()
113 finish_table(tab, SFI_SIG_APIC, entry); in sfi_write_apic()
118 static int sfi_write_xsdt(struct table_info *tab) in sfi_write_xsdt() argument
120 struct sfi_xsdt_header *entry = get_entry_start(tab); in sfi_write_xsdt()
129 finish_table(tab, SFI_SIG_XSDT, entry); in sfi_write_xsdt()