master
1/* $NetBSD: rmt.h,v 1.8 2016/01/22 23:15:58 dholland Exp $ */
2
3/*
4 * rmt.h
5 *
6 * Added routines to replace open(), close(), lseek(), ioctl(), etc.
7 * The preprocessor can be used to remap these the rmtopen(), etc
8 * thus minimizing source changes.
9 *
10 * This file must be included before <sys/stat.h>, since it redefines
11 * stat to be rmtstat, so that struct stat xyzzy; declarations work
12 * properly.
13 *
14 * -- Fred Fish (w/some changes by Arnold Robbins)
15 */
16
17#ifndef _RMT_H_
18#define _RMT_H_
19
20#include <sys/cdefs.h>
21#include <sys/types.h>
22
23#if _FORTIFY_SOURCE > 0
24#define __ssp_weak_name(x) rmt ## x
25#include <ssp/unistd.h>
26#endif
27
28__BEGIN_DECLS
29int isrmt(int);
30int rmtaccess(const char *, int);
31int rmtclose(int);
32int rmtcreat(const char *, mode_t);
33int rmtdup(int);
34int rmtfcntl(int, int, ...);
35int rmtfstat(int, struct stat *);
36int rmtioctl(int, unsigned long, ...);
37int rmtisatty(int);
38off_t rmtlseek(int, off_t, int);
39int rmtlstat(const char *, struct stat *);
40int rmtopen(const char *, int, ...);
41ssize_t rmtread(int, void *, size_t);
42int rmtstat(const char *, struct stat *);
43ssize_t rmtwrite(int, const void *, size_t);
44__END_DECLS
45
46#ifndef __RMTLIB_PRIVATE /* don't remap if building librmt */
47#define access rmtaccess
48#define close rmtclose
49#define creat rmtcreat
50#define dup rmtdup
51#define fcntl rmtfcntl
52#define fstat rmtfstat
53#define ioctl rmtioctl
54#define isatty rmtisatty
55#define lseek rmtlseek
56#define lstat rmtlstat
57#define open rmtopen
58#if __SSP_FORTIFY_LEVEL == 0
59#define read rmtread
60#endif
61#define stat rmtstat
62#define write rmtwrite
63#endif /* __RMTLIB_PRIVATE */
64
65#endif /* _RMT_H_ */