AuroraRuntime/Source/AuProcAddresses.Linux.hpp

60 lines
1.7 KiB
C++

/***
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 <linux/aio_abi.h>
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);
}