SameBoy | Accurate GB/GBC emulator |
| download: https://git.y1.nz/archives/sameboy.tar.gz | |
| README | Files | Log | Refs | LICENSE |
Core/symbol_hash.h
1 #pragma once
2
3 #ifndef GB_DISABLE_DEBUGGER
4 #include <stdlib.h>
5 #include <string.h>
6 #include <stdint.h>
7
8 typedef struct {
9 char *name;
10 uint16_t addr;
11 bool is_local;
12 } GB_bank_symbol_t;
13
14 typedef struct GB_symbol_s {
15 struct GB_symbol_s *next;
16 const char *name;
17 uint16_t bank;
18 uint16_t addr;
19 } GB_symbol_t;
20
21 typedef struct {
22 GB_bank_symbol_t *symbols;
23 size_t n_symbols;
24 } GB_symbol_map_t;
25
26 typedef struct {
27 GB_symbol_t *buckets[0x2000];
28 } GB_reversed_symbol_map_t;
29
30 #ifdef GB_INTERNAL
31 internal void GB_reversed_map_add_symbol(GB_reversed_symbol_map_t *map, uint16_t bank, GB_bank_symbol_t *symbol);
32 internal const GB_symbol_t *GB_reversed_map_find_symbol(GB_reversed_symbol_map_t *map, const char *name);
33 internal GB_bank_symbol_t *GB_map_add_symbol(GB_symbol_map_t *map, uint16_t addr, const char *name);
34 internal const GB_bank_symbol_t *GB_map_find_symbol(GB_symbol_map_t *map, uint16_t addr, bool prefer_local);
35 internal GB_symbol_map_t *GB_map_alloc(void);
36 internal void GB_map_free(GB_symbol_map_t *map);
37 #endif
38 #endif
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.