diff options
| author | Freya Murphy <freya@freyacat.org> | 2024-10-09 12:07:59 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2024-10-09 12:07:59 -0400 |
| commit | b663f827057fc9fb199293bc1920cf27315d1846 (patch) | |
| tree | 477b481694ad50f28bac538bb9b301861b3af4d6 /masm/strtab.c | |
| parent | update generator to support multipe isas, expand grammer syntax (diff) | |
| download | mips-b663f827057fc9fb199293bc1920cf27315d1846.tar.gz mips-b663f827057fc9fb199293bc1920cf27315d1846.tar.bz2 mips-b663f827057fc9fb199293bc1920cf27315d1846.zip | |
refactor elf32 assembler, add support for multiple isa's in cmdline
Diffstat (limited to 'masm/strtab.c')
| -rw-r--r-- | masm/strtab.c | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/masm/strtab.c b/masm/strtab.c deleted file mode 100644 index bd914b0..0000000 --- a/masm/strtab.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <merror.h> -#include <string.h> -#include <stdlib.h> - -#include "asm.h" - -int strtab_get_str(struct elf_str_table *strtab, const char *str, size_t *res) -{ - for (size_t i = 0; i < strtab->size; i ++) { - if (strcmp(strtab->ptr + i, str) == 0) { - if (res != NULL) - *res = i; - return M_SUCCESS; - } - } - - return M_ERROR; -} - -int strtab_write_str(struct elf_str_table *strtab, const char *str, size_t *res) -{ - if (strtab_get_str(strtab, str, res) == M_SUCCESS) - return M_SUCCESS; - - size_t len = strlen(str); - char *new = realloc(strtab->ptr, strtab->size + len + 1); - if (new == NULL) - return M_ERROR; - strtab->ptr = new; - memcpy(strtab->ptr + strtab->size, str, len + 1); - - if (res != NULL) - *res = strtab->size; - - strtab->size += len + 1; - return M_SUCCESS; -} - -int strtab_init(struct elf_str_table *strtab) -{ - strtab->size = 1; - strtab->ptr = malloc(1); - if (strtab->ptr == NULL) { - PERROR("cannot alloc"); - return M_ERROR; - } - *strtab->ptr = '\0'; - return M_SUCCESS; -} - -void strtab_free(struct elf_str_table *strtab) -{ - free(strtab->ptr); -} |