progress on sanity_tests.c, adding back md_str8_styllize

Eventually a heavy reduction of base & OS should be provided via libgen or done here to reduce the overall surface area of the library for the user.
Base and os were dragged from raddbg and the original metadesk didn't need as many definitions.
This commit is contained in:
ed
2025-02-13 09:53:46 -05:00
parent 28d0c85771
commit 3e064f6443
15 changed files with 390 additions and 252 deletions
+5 -2
View File
@@ -1,3 +1,6 @@
#ifdef INTELLISENSE_DIRECTIVES
# include "os_win32.h"
#endif
// Copyright (c) 2024 Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)
@@ -786,7 +789,7 @@ md_os_process_launch(MD_OS_ProcessLaunchParams* params)
MD_String8List all_opts = params->env;
if (params->inherit_env != 0)
{
if (all_opts.md_node_count != 0)
if (all_opts.node_count != 0)
{
md_memory_zero_struct(&all_opts);
for (MD_String8Node *n = params->env.first; n != 0; n = n->next) {
@@ -1486,7 +1489,7 @@ w32_entry_point_caller(int argc, WCHAR** wargv)
//- rjf: extract arguments
MD_Arena* args_arena = md_arena_alloc(.backing = md_varena_alloc(.reserve_size = MD_MB(1), .commit_size = MD_KB(32)));
char** argv = md_push_array_(args_arena, char*, argc);
char** argv = md_push_array(args_arena, char*, argc);
for (int i = 0; i < argc; i += 1)
{
MD_String16 arg16 = md_str16_cstring((MD_U16 *)wargv[i]);
+22 -22
View File
@@ -17,9 +17,9 @@ struct MD_OS_W32_FileIter
{
HANDLE handle;
WIN32_FIND_DATAW find_data;
MD_B32 is_volume_iter;
MD_String8Array drive_strings;
MD_U64 drive_strings_iter_idx;
MD_B32 is_volume_iter;
MD_String8Array drive_strings;
MD_U64 drive_strings_iter_idx;
};
md_static_assert(sizeof(md_member(MD_OS_FileIter, memory)) >= sizeof(MD_OS_W32_FileIter), file_iter_memory_size);
@@ -40,9 +40,9 @@ typedef struct MD_OS_W32_EntityThread MD_OS_W32_EntityThread;
struct MD_OS_W32_EntityThread
{
MD_OS_ThreadFunctionType* func;
void* ptr;
HANDLE handle;
DWORD tid;
void* ptr;
HANDLE handle;
DWORD tid;
};
typedef struct MD_OS_W32_Entity MD_OS_W32_Entity;
@@ -53,9 +53,9 @@ struct MD_OS_W32_Entity
union
{
MD_OS_W32_EntityThread thread;
CRITICAL_SECTION mutex;
SRWLOCK rw_mutex;
CONDITION_VARIABLE cv;
CRITICAL_SECTION mutex;
SRWLOCK rw_mutex;
CONDITION_VARIABLE cv;
};
};
@@ -73,9 +73,9 @@ struct MD_OS_W32_State
MD_U64 microsecond_resolution;
// rjf: entity storage
CRITICAL_SECTION entity_mutex;
MD_Arena* entity_arena;
MD_OS_W32_Entity* entity_free;
CRITICAL_SECTION entity_mutex;
MD_Arena* entity_arena;
MD_OS_W32_Entity* entity_free;
};
////////////////////////////////
@@ -87,10 +87,10 @@ MD_API extern MD_OS_W32_State md_os_w32_state;
////////////////////////////////
//~ rjf: Time Conversion Helpers
void md_os_w32_date_time_from_system_time(MD_DateTime* out, SYSTEMTIME* in);
void md_os_w32_system_time_from_date_time(SYSTEMTIME* out, MD_DateTime* in);
void md_os_w32_dense_time_from_file_time (MD_DenseTime* out, FILETIME* in);
MD_API MD_U32 md_os_w32_sleep_ms_from_endt_us(MD_U64 endt_us);
void md_os_w32_date_time_from_system_time(MD_DateTime* out, SYSTEMTIME* in);
void md_os_w32_system_time_from_date_time(SYSTEMTIME* out, MD_DateTime* in);
void md_os_w32_dense_time_from_file_time (MD_DenseTime* out, FILETIME* in);
MD_API MD_U32 md_os_w32_sleep_ms_from_endt_us(MD_U64 endt_us);
inline void
md_os_w32_date_time_from_system_time(MD_DateTime* out, SYSTEMTIME* in)
@@ -101,7 +101,7 @@ md_os_w32_date_time_from_system_time(MD_DateTime* out, SYSTEMTIME* in)
out->day = in->wDay;
out->hour = in->wHour;
out->md_min = in->wMinute;
out->min = in->wMinute;
out->sec = in->wSecond;
out->msec = in->wMilliseconds;
}
@@ -114,7 +114,7 @@ md_os_w32_system_time_from_date_time(SYSTEMTIME* out, MD_DateTime* in)
out->wDay = in->day;
out->wHour = in->hour;
out->wMinute = in->md_min;
out->wMinute = in->min;
out->wSecond = in->sec;
out->wMilliseconds = in->msec;
}
@@ -169,7 +169,7 @@ md_os_get_current_path__ainfo(MD_AllocatorInfo ainfo) {
MD_TempArena scratch = md_scratch_begin(ainfo);
{
DWORD length = GetCurrentDirectoryW(0, 0);
MD_U16* memory = md_push_array__no_zero(scratch.arena, MD_U16, length + 1);
MD_U16* memory = md_push_array__no_zero(scratch.arena, MD_U16, length + 1);
length = GetCurrentDirectoryW(length + 1, (WCHAR*)memory);
name = md_str8_from(ainfo, md_str16(memory, length));
}
@@ -182,9 +182,9 @@ md_os_get_current_path__ainfo(MD_AllocatorInfo ainfo) {
//- rjf: basic
inline void* md_os_reserve ( MD_U64 size) { void* result = VirtualAlloc( 0, size, MEM_RESERVE, PAGE_READWRITE); return result; }
inline MD_B32 md_os_commit (void* ptr, MD_U64 size) { MD_B32 result = (VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE) != 0); return result; }
inline void md_os_decommit(void* ptr, MD_U64 size) { VirtualFree (ptr, size, MEM_DECOMMIT); }
inline void* md_os_reserve ( MD_U64 size) { void* result = VirtualAlloc( 0, size, MEM_RESERVE, PAGE_READWRITE); return result; }
inline MD_B32 md_os_commit (void* ptr, MD_U64 size) { MD_B32 result = (VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE) != 0); return result; }
inline void md_os_decommit(void* ptr, MD_U64 size) { VirtualFree (ptr, size, MEM_DECOMMIT); }
inline void
md_os_release(void* ptr, MD_U64 size) {