1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#pragma once
#include <al/types.h>
#include <al/lib.h>
struct nn_buffer {
size_t size;
size_t alloc;
u8 *data;
};
// A pun+dereference breaks on 32bit Android but isn't warned about by -Wstrict-aliasing=3.
#define NNWT_BUFFER_READ_TYPE(buffer, index, type, r) \
al_memcpy((void *)&(r), (void *)nn_buffer_get_ptr(buffer, index), sizeof(type))
void nn_buffer_init(struct nn_buffer *buffer);
void nn_buffer_ensure_space(struct nn_buffer *buffer, size_t size);
void nn_buffer_shrink_to_size(struct nn_buffer *buffer);
void nn_buffer_write(struct nn_buffer *buffer, void *data, size_t index, size_t size);
void nn_buffer_append(struct nn_buffer *buffer, void *data, size_t size);
u8 *nn_buffer_get_ptr(struct nn_buffer *buffer, size_t index);
void nn_buffer_read(struct nn_buffer *buffer, void *ptr, size_t index, size_t size);
void nn_buffer_free(struct nn_buffer *buffer);
|