blob: 0115686609969749663309f226279fec1222af30 [file] [log] [blame]
/*
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "pico/bootrom.h"
/// \tag::table_lookup[]
void *rom_func_lookup(uint32_t code) {
return rom_func_lookup_inline(code);
}
void *rom_data_lookup(uint32_t code) {
rom_table_lookup_fn rom_table_lookup = (rom_table_lookup_fn) rom_hword_as_ptr(0x18);
uint16_t *data_table = (uint16_t *) rom_hword_as_ptr(0x16);
return rom_table_lookup(data_table, code);
}
/// \end::table_lookup[]
bool rom_funcs_lookup(uint32_t *table, unsigned int count) {
bool ok = true;
for (unsigned int i = 0; i < count; i++) {
table[i] = (uintptr_t) rom_func_lookup(table[i]);
if (!table[i]) ok = false;
}
return ok;
}