mirror of
https://github.com/JannisHeydemann/BoredOS.git
synced 2026-05-30 02:16:58 +00:00
FEAT: VFS overhaul
This commit is contained in:
@@ -149,26 +149,12 @@ char *strrchr(const char *s, int c) {
|
||||
if (c == 0) last = s;
|
||||
return (char*)last;
|
||||
}
|
||||
char *strchr(const char *s, int c) {
|
||||
while (*s) { if (*s == c) return (char*)s; s++; }
|
||||
if (c == 0) return (char*)s;
|
||||
return NULL;
|
||||
}
|
||||
char *strdup(const char *s) {
|
||||
size_t len = strlen(s) + 1;
|
||||
char *dup = malloc(len);
|
||||
if (dup) memcpy(dup, s, len);
|
||||
return dup;
|
||||
}
|
||||
char *strstr(const char *haystack, const char *needle) {
|
||||
size_t n = strlen(needle);
|
||||
if (!n) return (char *)haystack;
|
||||
while (*haystack) {
|
||||
if (!strncmp(haystack, needle, n)) return (char *)haystack;
|
||||
haystack++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int toupper(int c) { return (c >= 'a' && c <= 'z') ? c - 32 : c; }
|
||||
int tolower(int c) { return (c >= 'A' && c <= 'Z') ? c + 32 : c; }
|
||||
|
||||
@@ -39,8 +39,19 @@ void DG_SleepMs(uint32_t ms) {
|
||||
}
|
||||
|
||||
uint32_t DG_GetTicksMs(void) {
|
||||
uint64_t ticks = sys_system(16, 0, 0, 0, 0); // SYSTEM_CMD_UPTIME = 16 (100Hz)
|
||||
return (uint32_t)(ticks * 10);
|
||||
int fd = sys_open("/proc/uptime", "r");
|
||||
if (fd < 0) return 0;
|
||||
char buf[128];
|
||||
int bytes = sys_read(fd, buf, 127);
|
||||
sys_close(fd);
|
||||
if (bytes <= 0) return 0;
|
||||
buf[bytes] = 0;
|
||||
|
||||
char *p = strstr(buf, "Raw_Ticks:");
|
||||
if (!p) return 0;
|
||||
uint32_t ticks = atoi(p + 10);
|
||||
// 60Hz to ms: ticks * 1000 / 60 = ticks * 50 / 3
|
||||
return (ticks * 50) / 3;
|
||||
}
|
||||
|
||||
void DG_SetWindowTitle(const char * title) {
|
||||
@@ -108,7 +119,7 @@ int DG_GetKey(int* pressed, unsigned char* key) {
|
||||
int main(int argc, char** argv) {
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
char* fake_argv[] = {"doom", "-iwad", "A:/Library/DOOM/doom1.wad"};
|
||||
char* fake_argv[] = {"doom", "-iwad", "/Library/DOOM/doom1.wad"};
|
||||
doomgeneric_Create(3, fake_argv);
|
||||
|
||||
while (1) {
|
||||
|
||||
Reference in New Issue
Block a user