git.y1.nz

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.