ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
system.h File Reference

Go to the source code of this file.

Data Structures

struct  platform_signal_handler_t
 Signal handler descriptor for bulk registration. More...
struct  platform_stderr_redirect_handle_t
 Handle for temporary stderr redirection. More...
struct  platform_binary_match_t
 Find which binary(ies) contain a given address. More...

Macros

#define SAFE_IGNORE_PRINTF_RESULT(expr)

Typedefs

typedef void(* signal_handler_t) (int)

Functions

void platform_install_crash_handler (void)
 Install crash handlers for the application.
asciichat_error_t platform_init (void)
 Initialize platform-specific subsystems.
void platform_destroy (void)
 Cleanup platform-specific subsystems.
void platform_force_exit (int exit_code)
 Forcefully terminate the process immediately without cleanup.
void platform_sleep_ms (unsigned int ms)
 Sleep for a specified number of milliseconds.
uint64_t platform_get_monotonic_time_us (void)
 Get monotonic time in microseconds.
asciichat_error_t platform_request_timer_precision (int precision)
 Request coarse (reduced resolution) timer precision.
asciichat_error_t platform_restore_timer_resolution (void)
 Restore default timer precision.
asciichat_error_t platform_enable_keepawake (void)
 Enable system sleep prevention (keepawake mode).
void platform_disable_keepawake (void)
 Disable system sleep prevention (allow OS to sleep).
asciichat_error_t platform_localtime (const time_t *timer, struct tm *result)
 Platform-safe localtime wrapper.
asciichat_error_t platform_gtime (const time_t *timer, struct tm *result)
 Platform-safe gmtime wrapper.
const char * platform_get_username (void)
 Get the current username.
signal_handler_t platform_signal (int sig, signal_handler_t handler)
 Set a signal handler.
asciichat_error_t platform_register_signal_handlers (const platform_signal_handler_t *handlers, int count)
 Register multiple signal handlers at once.
const char * platform_getenv (const char *name)
 Get an environment variable value.
int platform_setenv (const char *name, const char *value)
 Set an environment variable.
int platform_unsetenv (const char *name)
 Remove an environment variable.
void platform_raise_fd_limit (unsigned int limit)
 Raise the file descriptor limit for the current process.
platform_stderr_redirect_handle_t platform_stderr_redirect_to_null (void)
 Redirect stderr to /dev/null temporarily.
void platform_stderr_restore (platform_stderr_redirect_handle_t handle)
 Restore stderr from a redirect handle.
platform_stderr_redirect_handle_t platform_stdout_stderr_redirect_to_null (void)
 Redirect both stdout and stderr to /dev/null (restorable).
void platform_stdout_stderr_restore (platform_stderr_redirect_handle_t handle)
 Restore stdout and stderr after platform_stdout_stderr_redirect_to_null().
void platform_stdio_redirect_to_null_permanent (void)
 Permanently redirect stderr and stdout to /dev/null.
int safe_snprintf (char *buffer, size_t buffer_size, const char *format,...)
 Platform-safe snprintf wrapper.
int safe_fprintf (FILE *stream, const char *format,...)
 Platform-safe fprintf wrapper.
int safe_vsnprintf (char *buffer, size_t buffer_size, const char *format, va_list ap)
 Platform-safe vsnprintf wrapper.
asciichat_error_t platform_memcpy (void *dest, size_t dest_size, const void *src, size_t count)
 Platform-safe memcpy wrapper.
asciichat_error_t platform_memset (void *dest, size_t dest_size, int ch, size_t count)
 Platform-safe memset wrapper.
asciichat_error_t platform_memmove (void *dest, size_t dest_size, const void *src, size_t count)
 Platform-safe memmove wrapper.
asciichat_error_t platform_strcpy (char *dest, size_t dest_size, const char *src)
 Platform-safe strcpy wrapper.
int platform_get_last_error (void)
 Get the last system error code.
const char * platform_strerror (int errnum)
 Get human-readable error message for a system error code.
asciichat_error_t platform_resolve_hostname_to_ipv4 (const char *hostname, char *ipv4_out, size_t ipv4_out_size)
 Resolve hostname to IPv4 address.
asciichat_error_t platform_load_system_ca_certs (char **pem_data_out, size_t *pem_size_out)
 Load system CA certificates for TLS/HTTPS.
int platform_execute_subprocess (const char *executable, const char **argv, char *output_buffer, size_t output_size, bool(*cancel)(void *), void *data)
 Execute a subprocess and optionally capture its output.
size_t platform_write_all (int fd, const void *buf, size_t count)
 Write all bytes to a file descriptor, handling partial writes.
ssize_t platform_write (int fd, const void *buf, size_t count)
 Platform-safe write function.
int platform_dup (int fd)
int platform_fileno (FILE *stream)
asciichat_error_t platform_dup2 (int source_fd, int target_fd)
int get_binary_file_address_offsets (const void *addr, platform_binary_match_t *matches, int max_matches)