Continue work on DST framework

This commit is contained in:
2025-10-29 21:46:17 +01:00
parent 24c0134c03
commit 174f37c6c0
17 changed files with 1407 additions and 710 deletions
+68 -32
View File
@@ -1,36 +1,72 @@
#ifndef SYSTEM_INCLUDED
#define SYSTEM_INCLUDED
void *sys_malloc_ (size_t len, char *file, int line);
void *sys_realloc_(void *ptr, size_t len, char *file, int line);
void sys_free_ (void *ptr, char *file, int line);
#define sys_malloc(len) sys_malloc_ ((len), __FILE__, __LINE__)
#define sys_realloc(ptr, len) sys_realloc_((ptr), (len), __FILE__, __LINE__)
#define sys_free(ptr) sys_free_ ((ptr), __FILE__, __LINE__)
#ifdef _WIN32
#include <winsock2.h>
#include <ws2tcpip.h>
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
} DUMMYSTRUCTNAME;
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
#define BOOL int
#define WCHAR wchar_t
#define SOCKET void*
#define HANDLE void*
SOCKET sys_socket (int domain, int type, int protocol);
int sys_bind (SOCKET fd, void *addr, size_t addr_len);
int sys_listen (SOCKET fd, int backlog);
int sys_closesocket (SOCKET fd);
SOCKET sys_accept (SOCKET fd, void *addr, int *addr_len);
int sys_getsockopt (SOCKET fd, int level, int optname, void *optval, int *optlen);
int sys_setsockopt (SOCKET fd, int level, int optname, void *optval, int optlen);
int sys_recv (SOCKET fd, void *dst, int len, int flags);
int sys_send (SOCKET fd, void *src, int len, int flags);
int sys_connect (SOCKET fd, void *addr, size_t addr_len);
BOOL sys_QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);
BOOL sys_QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
HANDLE sys_CreateFileW (WCHAR *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
BOOL sys_CloseHandle (HANDLE handle);
BOOL sys_LockFile (HANDLE handle);
BOOL sys_UnlockFile (HANDLE handle);
BOOL sys_FlushFileBuffers (HANDLE handle);
BOOL sys_ReadFile (HANDLE handle, char *dst, DWORD len, DWORD *num, OVERLAPPED *ov);
BOOL sys_WriteFile (HANDLE handle, char *src, DWORD len, DWORD *num, OVERLAPPED *ov);
BOOL sys_GetFileSizeEx (HANDLE handle, LARGE_INTEGER *buf);
char* sys__fullpath (char *path, char *dst, int cap);
#else
#include <poll.h>
#include <errno.h>
#include <unistd.h>
#include <arpa/inet.h>
#define SOCKET int
#define INVALID_SOCKET -1
int sys_socket (int domain, int type, int protocol);
int sys_bind (int fd, void *addr, size_t addr_len);
int sys_listen (int fd, int backlog);
int sys_accept (int fd, void *addr, int *addr_len);
int sys_getsockopt (int fd, int level, int optname, void *optval, socklen_t *optlen);
int sys_setsockopt (int fd, int level, int optname, void *optval, socklen_t optlen);
int sys_recv (int fd, void *dst, int len, int flags);
int sys_send (int fd, void *src, int len, int flags);
int sys_connect (int fd, void *addr, size_t addr_len);
int sys_clock_gettime (clockid_t clockid, struct timespec *tp);
int sys_open (char *path, int flags, int mode);
int sys_close (int fd);
int sys_flock (int fd, int op);
int sys_fsync (int fd);
int sys_read (int fd, char *dst, int len);
int sys_stat (int fd, struct stat *buf);
int sys_mkstemp (char *path);
char* sys_realpath (char *path, char *dst);
#endif
#if !defined(_WIN32) || defined(BUILD_TEST)
typedef int Socket;
#define BAD_SOCKET ((Socket) -1)
#else
typedef SOCKET Socket;
#define BAD_SOCKET INVALID_SOCKET
#endif
Socket sys_socket (int domain, int type, int protocol);
int sys_bind (Socket fd, void *addr, size_t addr_len);
int sys_listen (Socket fd, int backlog);
int sys_closesocket (Socket fd);
int sys_poll (struct pollfd *polled, int num_polled, int timeout);
Socket sys_accept (Socket fd, void *addr, int *addr_len);
int sys_getsockopt (Socket fd, int level, int optname, void *optval, socklen_t *optlen);
int sys_setsockopt (Socket fd, int level, int optname, void *optval, socklen_t optlen);
int sys_recv (Socket fd, void *dst, int len, int flags);
int sys_send (Socket fd, void *src, int len, int flags);
int sys_connect (Socket fd, void *addr, size_t addr_len);
#endif // SYSTEM_INCLUDED