move string_chunk to base
This commit is contained in:
@@ -632,5 +632,34 @@ fn void tctxLaneBarrierWait(void *broadcast_ptr, u64 broadcast_size, u64 broadca
|
||||
#define LaneSyncu64(pointer, src_lane_idx) tctxLaneBarrierWait((pointer), sizeof(*(pointer)), (src_lane_idx))
|
||||
#define LaneRange(count) mRangeFromNIdxMCount(LaneIdx(), LaneCount(), (count))
|
||||
|
||||
///// StringChunk stuff
|
||||
#ifndef STRING_CHUNK_PAYLOAD_SIZE
|
||||
#define STRING_CHUNK_PAYLOAD_SIZE (64 - sizeof(StringChunk*))
|
||||
#endif
|
||||
|
||||
typedef struct StringChunk {
|
||||
struct StringChunk *next; // essentially a header, followed by a fixed maximum str bytes
|
||||
} StringChunk;
|
||||
|
||||
typedef struct StringChunkList {
|
||||
StringChunk* first;
|
||||
StringChunk* last;
|
||||
u64 count;
|
||||
u64 total_size;
|
||||
} StringChunkList;
|
||||
|
||||
typedef struct StringArena {
|
||||
Arena a;
|
||||
StringChunk* first_free_str_chunk;
|
||||
Mutex mutex;
|
||||
} StringArena;
|
||||
|
||||
fn StringChunkList allocStringChunkList(StringArena* a, String string);
|
||||
fn void releaseStringChunkList(StringArena* a, StringChunkList* list);
|
||||
fn String stringChunkToString(Arena* a, StringChunkList list);
|
||||
fn void stringChunkListAppend(StringArena* a, StringChunkList* list, String string);
|
||||
fn void stringChunkListDeleteLast(StringArena* a, StringChunkList* list);
|
||||
fn StringChunkList stringChunkListInit(StringArena* a);
|
||||
fn void stringChunkCopyToBuffer(StringChunkList* list, u8* buffer, u32 len);
|
||||
|
||||
#endif// BASE_ALL_H
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
#include "string.c"
|
||||
#include "tctx.c"
|
||||
#include "thread.c"
|
||||
#include "string_chunk.c"
|
||||
|
||||
#endif // BASE_IMPL_C
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "string_chunk.h"
|
||||
#include "all.h"
|
||||
|
||||
fn StringChunkList allocStringChunkList(StringArena* a, String string) {
|
||||
StringChunkList result = {0};
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "base/impl.c"
|
||||
#include "lib/network.c"
|
||||
#include "render.c"
|
||||
#include "string_chunk.c"
|
||||
//#include "assets/asset1.h"
|
||||
//#include "assets/asset2.h"
|
||||
//#include "assets/asset3.h"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#include "../base/all.h"
|
||||
#include "../string_chunk.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#define NET_OUTGOING_MESSAGE_QUEUE_LEN 64
|
||||
#include "lib/network.c"
|
||||
#include "render.c"
|
||||
#include "string_chunk.c"
|
||||
|
||||
///// CONSTANTS
|
||||
#define MAX_THINGS (2<<18)
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#ifndef STRING_CHUNK_H
|
||||
#define STRING_CHUNK_H
|
||||
|
||||
#include "base/all.h"
|
||||
|
||||
#define STRING_CHUNK_PAYLOAD_SIZE (64 - sizeof(StringChunk*))
|
||||
|
||||
typedef struct StringChunk {
|
||||
struct StringChunk *next; // essentially a header, followed by a fixed maximum str bytes
|
||||
} StringChunk;
|
||||
|
||||
typedef struct StringChunkList {
|
||||
StringChunk* first;
|
||||
StringChunk* last;
|
||||
u64 count;
|
||||
u64 total_size;
|
||||
} StringChunkList;
|
||||
|
||||
typedef struct StringArena {
|
||||
Arena a;
|
||||
StringChunk* first_free_str_chunk;
|
||||
Mutex mutex;
|
||||
} StringArena;
|
||||
|
||||
fn StringChunkList allocStringChunkList(StringArena* a, String string);
|
||||
fn void releaseStringChunkList(StringArena* a, StringChunkList* list);
|
||||
fn String stringChunkToString(Arena* a, StringChunkList list);
|
||||
fn void stringChunkListAppend(StringArena* a, StringChunkList* list, String string);
|
||||
fn void stringChunkListDeleteLast(StringArena* a, StringChunkList* list);
|
||||
fn StringChunkList stringChunkListInit(StringArena* a);
|
||||
fn void stringChunkCopyToBuffer(StringChunkList* list, u8* buffer, u32 len);
|
||||
|
||||
#endif //STRING_CHUNK_H
|
||||
Reference in New Issue
Block a user