moved platform depended code from OS layer to linkers IO

This commit is contained in:
Nikita Smith
2025-02-25 14:41:34 -08:00
parent d5ab121183
commit 6c5d2a05cb
5 changed files with 146 additions and 121 deletions
-10
View File
@@ -151,16 +151,6 @@ os_string_from_file_range(Arena *arena, OS_Handle file, Rng1U64 range)
return result;
}
internal B32
os_rename_file(String8 orig_name, String8 new_name)
{
Temp scratch = scratch_begin(0,0);
OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareWrite|OS_AccessFlag_ShareDelete, orig_name);
B32 is_renamed = os_rename_file_by_handle(file, new_name);
os_file_close(file);
return is_renamed;
}
////////////////////////////////
//~ rjf: Process Launcher Helpers
+1 -3
View File
@@ -44,8 +44,7 @@ enum
OS_AccessFlag_Append = (1<<3),
OS_AccessFlag_ShareRead = (1<<4),
OS_AccessFlag_ShareWrite = (1<<5),
OS_AccessFlag_ShareDelete = (1<<6),
OS_AccessFlag_Inherited = (1<<7),
OS_AccessFlag_Inherited = (1<<6),
};
////////////////////////////////
@@ -207,7 +206,6 @@ internal U64 os_file_write(OS_Handle file, Rng1U64 rng, void *data);
internal B32 os_file_set_times(OS_Handle file, DateTime time);
internal FileProperties os_properties_from_file(OS_Handle file);
internal OS_FileID os_id_from_file(OS_Handle file);
internal B32 os_rename_file_by_handle(OS_Handle file, String8 new_name);
internal B32 os_rename_file(String8 orig_name, String8 new_name);
internal B32 os_file_reserve_size(OS_Handle file, U64 size);
internal B32 os_delete_file_at_path(String8 path);
-25
View File
@@ -326,7 +326,6 @@ os_file_open(OS_AccessFlags flags, String8 path)
if(flags & OS_AccessFlag_Execute) {access_flags |= GENERIC_EXECUTE;}
if(flags & OS_AccessFlag_ShareRead) {share_mode |= FILE_SHARE_READ;}
if(flags & OS_AccessFlag_ShareWrite) {share_mode |= FILE_SHARE_WRITE|FILE_SHARE_DELETE;}
if(flags & OS_AccessFlag_ShareDelete) {share_mode |= FILE_SHARE_DELETE; access_flags |= DELETE;}
if(flags & OS_AccessFlag_Write) {creation_disposition = CREATE_ALWAYS;}
if(flags & OS_AccessFlag_Append) {creation_disposition = OPEN_ALWAYS; access_flags |= FILE_APPEND_DATA; }
if(flags & OS_AccessFlag_Inherited)
@@ -470,30 +469,6 @@ os_id_from_file(OS_Handle file)
return result;
}
internal B32
os_rename_file_by_handle(OS_Handle file, String8 new_name)
{
Temp scratch = scratch_begin(0,0);
HANDLE handle = (HANDLE)file.u64[0];
String16 new_name16 = str16_from_8(scratch.arena, new_name);
U64 file_rename_info_size = sizeof(FILE_RENAME_INFO);
U64 buffer_size = file_rename_info_size + sizeof(WCHAR)*new_name16.size;
U8 *buffer = push_array(scratch.arena, U8, buffer_size);
FILE_RENAME_INFO *rename_info = (FILE_RENAME_INFO *)buffer;
rename_info->ReplaceIfExists = 1;
rename_info->FileNameLength = new_name16.size * sizeof(new_name16.str[0]);
MemoryCopy(rename_info->FileName, new_name16.str, new_name16.size * sizeof(new_name16.str[0]));
BOOL is_renamed = SetFileInformationByHandle(handle, FileRenameInfo, buffer, buffer_size);
scratch_end(scratch);
return is_renamed;
}
internal B32
os_file_reserve_size(OS_Handle file, U64 size)
{