/*** Copyright (C) 2023 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuProcAddresses.Linux.hpp Date: 2023-8-11 Author: Reece ***/ #pragma once #include #include struct robust_list_head; namespace Aurora { void InitLinuxAddresses(); int pidfd_getfd(int pidfd, int targetfd, unsigned int flags); int pidfd_open(pid_t pid, unsigned int flags); long get_robust_list(int pid, struct robust_list_head **head_ptr, size_t *len_ptr); long set_robust_list(struct robust_list_head *head, size_t len); int futex_wake(uint32_t *addr, uint32_t nthreads); int futex_wait(uint32_t *addr, uint32_t expected, const struct timespec *timeout); int futex_wait(uint32_t *addr, uint32_t expected); int futex_wake_shared(uint32_t *addr, uint32_t nthreads); int futex_wait_shared(uint32_t *addr, uint32_t expected, const struct timespec *timeout); int futex_wake(volatile uint32_t *addr, uint32_t nthreads); int futex_wait(volatile uint32_t *addr, uint32_t expected, const struct timespec *timeout); int futex_wait(volatile uint32_t *addr, uint32_t expected); int io_submit(aio_context_t ctx, long nr, struct iocb **iocbpp); int io_cancel(aio_context_t ctx_id, struct iocb *iocb, struct io_event *result); int io_destroy(aio_context_t ctx); int io_setup(unsigned nr, aio_context_t *ctxp); int io_getevents(aio_context_t ctx, long min_nr, long max_nr, struct io_event *events, struct timespec *timeout); ssize_t sys_getrandom(void *pBuffer, size_t uLength); int close_range(unsigned int first, unsigned int last, unsigned int flags); inline int (*pgetsockname)(int sockfd, struct sockaddr *addr, socklen_t *addrlen); inline void (AU_NORETURN *p__cxa_throw)(void *pException, std::type_info *typeInfo, void (*fDtor)(void *pThis)); inline AuUInt32 (*p_Unwind_RaiseException)(void *pException); }