xref: /netbsd-src/include/rmt.h (revision ff993d476d308dda0ea43ba9458e773699f62a60)
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
29 int	isrmt(int);
30 int	rmtaccess(const char *, int);
31 int	rmtclose(int);
32 int	rmtcreat(const char *, mode_t);
33 int	rmtdup(int);
34 int	rmtfcntl(int, int, ...);
35 int	rmtfstat(int, struct stat *);
36 int	rmtioctl(int, unsigned long, ...);
37 int	rmtisatty(int);
38 off_t	rmtlseek(int, off_t, int);
39 int	rmtlstat(const char *, struct stat *);
40 int	rmtopen(const char *, int, ...);
41 ssize_t	rmtread(int, void *, size_t);
42 int	rmtstat(const char *, struct stat *);
43 ssize_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_ */
66