1217309Snwhitehorn/*	$NetBSD: rmt.h,v 1.8 2016/01/22 23:15:58 dholland Exp $	*/
2251843Sbapt
3217309Snwhitehorn/*
4220749Snwhitehorn *	rmt.h
5217309Snwhitehorn *
6251843Sbapt *	Added routines to replace open(), close(), lseek(), ioctl(), etc.
7217309Snwhitehorn *	The preprocessor can be used to remap these the rmtopen(), etc
8217309Snwhitehorn *	thus minimizing source changes.
9217309Snwhitehorn *
10217309Snwhitehorn *	This file must be included before <sys/stat.h>, since it redefines
11217309Snwhitehorn *	stat to be rmtstat, so that struct stat xyzzy; declarations work
12217309Snwhitehorn *	properly.
13217309Snwhitehorn *
14217309Snwhitehorn *	-- Fred Fish (w/some changes by Arnold Robbins)
15217309Snwhitehorn */
16217309Snwhitehorn
17217309Snwhitehorn#ifndef _RMT_H_
18217309Snwhitehorn#define _RMT_H_
19217309Snwhitehorn
20217309Snwhitehorn#include <sys/cdefs.h>
21217309Snwhitehorn#include <sys/types.h>
22217309Snwhitehorn
23217309Snwhitehorn#if _FORTIFY_SOURCE > 0
24217309Snwhitehorn#define __ssp_weak_name(x)	rmt ## x
25217309Snwhitehorn#include <ssp/unistd.h>
26217309Snwhitehorn#endif
27217309Snwhitehorn
28217309Snwhitehorn__BEGIN_DECLS
29217309Snwhitehornint	isrmt(int);
30217309Snwhitehornint	rmtaccess(const char *, int);
31217309Snwhitehornint	rmtclose(int);
32217309Snwhitehornint	rmtcreat(const char *, mode_t);
33217309Snwhitehornint	rmtdup(int);
34217309Snwhitehornint	rmtfcntl(int, int, ...);
35217309Snwhitehornint	rmtfstat(int, struct stat *);
36217309Snwhitehornint	rmtioctl(int, unsigned long, ...);
37217309Snwhitehornint	rmtisatty(int);
38217309Snwhitehornoff_t	rmtlseek(int, off_t, int);
39217309Snwhitehornint	rmtlstat(const char *, struct stat *);
40217309Snwhitehornint	rmtopen(const char *, int, ...);
41217309Snwhitehornssize_t	rmtread(int, void *, size_t);
42217309Snwhitehornint	rmtstat(const char *, struct stat *);
43217309Snwhitehornssize_t	rmtwrite(int, const void *, size_t);
44217309Snwhitehorn__END_DECLS
45217309Snwhitehorn
46217309Snwhitehorn#ifndef __RMTLIB_PRIVATE	/* don't remap if building librmt */
47217309Snwhitehorn#define access rmtaccess
48217309Snwhitehorn#define close rmtclose
49217309Snwhitehorn#define creat rmtcreat
50217309Snwhitehorn#define dup rmtdup
51217309Snwhitehorn#define fcntl rmtfcntl
52217309Snwhitehorn#define fstat rmtfstat
53217309Snwhitehorn#define ioctl rmtioctl
54217309Snwhitehorn#define isatty rmtisatty
55217309Snwhitehorn#define lseek rmtlseek
56217309Snwhitehorn#define lstat rmtlstat
57217309Snwhitehorn#define open rmtopen
58251843Sbapt#if __SSP_FORTIFY_LEVEL == 0
59217309Snwhitehorn#define read rmtread
60217309Snwhitehorn#endif
61217309Snwhitehorn#define stat rmtstat
62217309Snwhitehorn#define write rmtwrite
63217309Snwhitehorn#endif /* __RMTLIB_PRIVATE */
64217309Snwhitehorn
65217309Snwhitehorn#endif /* _RMT_H_ */
66217309Snwhitehorn