Loading...
Searching...
No Matches
syscalls.h
1/*
2 * SPDX-FileCopyrightText: 2013 Ludwig Knüpfer <ludwig.knuepfer@fu-berlin.de>
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
8#include <sys/time.h>
9#include <stdint.h>
10#include <ifaddrs.h>
11#include <stdio.h>
12
17
18#ifndef DOXYGEN
19# if NATIVE_SYSCALLS_DEFINITION
20# define __SPECIFIER
21# else
22# define __SPECIFIER extern
23# endif
24#endif
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30/* MARK: - System call wrappers */
39__SPECIFIER ssize_t (*real_read)(int fd, void *buf, size_t count);
40__SPECIFIER ssize_t (*real_write)(int fd, const void *buf, size_t count);
41__SPECIFIER size_t (*real_fread)(void *ptr, size_t size, size_t nmemb, FILE *stream);
42__SPECIFIER ssize_t (*real_recv)(int sockfd, void *buf, size_t len, int flags);
43__SPECIFIER void (*real_clearerr)(FILE *stream);
44__SPECIFIER __attribute__((noreturn)) void (*real_exit)(int status);
45__SPECIFIER void (*real_free)(void *ptr);
46__SPECIFIER void* (*real_malloc)(size_t size);
47__SPECIFIER void* (*real_calloc)(size_t nmemb, size_t size);
48__SPECIFIER void* (*real_realloc)(void *ptr, size_t size);
49__SPECIFIER void (*real_freeaddrinfo)(struct addrinfo *res);
50__SPECIFIER void (*real_freeifaddrs)(struct ifaddrs *ifa);
51__SPECIFIER void (*real_srandom)(unsigned int seed);
52__SPECIFIER int (*real_accept)(int socket, ...);
53__SPECIFIER int (*real_bind)(int socket, ...);
54__SPECIFIER int (*real_connect)(int socket, ...);
55__SPECIFIER int (*real_printf)(const char *format, ...);
56__SPECIFIER int (*real_getaddrinfo)(const char *node, ...);
57__SPECIFIER int (*real_getifaddrs)(struct ifaddrs **ifap);
58__SPECIFIER int (*real_gettimeofday)(struct timeval *t, ...);
59__SPECIFIER int (*real_getpid)(void);
60__SPECIFIER int (*real_chdir)(const char *path);
61__SPECIFIER int (*real_close)(int);
62__SPECIFIER int (*real_fcntl)(int, int, ...);
63__SPECIFIER int (*real_creat)(const char *path, ...);
64__SPECIFIER int (*real_dup2)(int, int);
65__SPECIFIER int (*real_execve)(const char *, char *const[], char *const[]);
66__SPECIFIER int (*real_fork)(void);
67__SPECIFIER int (*real_feof)(FILE *stream);
68__SPECIFIER int (*real_ferror)(FILE *stream);
69__SPECIFIER int (*real_listen)(int socket, int backlog);
70__SPECIFIER int (*real_ioctl)(int fildes, unsigned long request, ...);
71__SPECIFIER int (*real_open)(const char *path, int oflag, ...);
72__SPECIFIER int (*real_pause)(void);
73__SPECIFIER int (*real_pipe)(int[2]);
74__SPECIFIER int (*real_select)(int nfds, ...);
75__SPECIFIER int (*real_poll)(struct pollfd *fds, ...);
76__SPECIFIER int (*real_setsid)(void);
77__SPECIFIER int (*real_setsockopt)(int socket, ...);
78__SPECIFIER int (*real_socket)(int domain, int type, int protocol);
79__SPECIFIER int (*real_unlink)(const char *);
80__SPECIFIER long int (*real_random)(void);
81__SPECIFIER const char* (*real_gai_strerror)(int errcode);
82__SPECIFIER FILE* (*real_fopen)(const char *path, const char *mode);
83__SPECIFIER int (*real_fclose)(FILE *stream);
84__SPECIFIER int (*real_fseek)(FILE *stream, long offset, int whence);
85__SPECIFIER long (*real_ftell)(FILE *stream);
86__SPECIFIER int (*real_fputc)(int c, FILE *stream);
87__SPECIFIER int (*real_fgetc)(FILE *stream);
88__SPECIFIER mode_t (*real_umask)(mode_t cmask);
89__SPECIFIER ssize_t (*real_writev)(int fildes, const struct iovec *iov, int iovcnt);
90__SPECIFIER ssize_t (*real_send)(int sockfd, const void *buf, size_t len, int flags);
91__SPECIFIER off_t (*real_lseek)(int fd, off_t offset, int whence);
92__SPECIFIER off_t (*real_fstat)(int fd, struct stat *statbuf);
93__SPECIFIER int (*real_fsync)(int fd);
94__SPECIFIER int (*real_mkdir)(const char *pathname, mode_t mode);
95__SPECIFIER int (*real_rmdir)(const char *pathname);
96__SPECIFIER DIR *(*real_opendir)(const char *name);
97__SPECIFIER struct dirent *(*real_readdir)(DIR *dirp);
98__SPECIFIER int (*real_closedir)(DIR *dirp);
99__SPECIFIER int (*real_rename)(const char *, const char *);
100__SPECIFIER int (*real_statvfs)(const char *restrict path, struct statvfs *restrict buf);
103
104#ifdef __cplusplus
105}
106#endif
107
108#if !defined(DOXYGEN)
109# undef __SPECIFIER
110#endif
111
int socket(int domain, int type, int protocol)
Create an endpoint for communication.
Structure for scatter/gather I/O.
Definition uio.h:33
File system information.
Definition statvfs.h:46
Definition of struct timeval for the atmega.
Definition time.h:19