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