25 lines
501 B
C
25 lines
501 B
C
#pragma once
|
|
|
|
#include "sym.h"
|
|
#include <stdint.h>
|
|
|
|
typedef struct {
|
|
const Sym* sym;
|
|
uint16_t offset;
|
|
} Ref;
|
|
|
|
typedef struct RefQueueChunk RefQueueChunk;
|
|
|
|
typedef struct {
|
|
Ref* data;
|
|
size_t capacity;
|
|
size_t back;
|
|
size_t front;
|
|
} RefQueue;
|
|
|
|
void ref_queue_construct(RefQueue* queue);
|
|
void ref_queue_destroy(RefQueue* queue);
|
|
void ref_queue_push(RefQueue* queue, const Sym* sym, uint16_t offset);
|
|
Ref ref_queue_pop(RefQueue* queue);
|
|
size_t ref_queue_size(const RefQueue* queue);
|