X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Fwrappers.h;h=9165b1a7bb655aab91ae3a8af4a8f48b73176ac2;hb=0c6670212de50a385264dcc4bd32c31236ffbdca;hp=319b7c89a6b7774e5fcc07fa7bf8c88667f39a9e;hpb=0692b508de44595db941a2b98b5a73228a65e8fc;p=util-vserver.git diff --git a/util-vserver/src/wrappers.h b/util-vserver/src/wrappers.h index 319b7c8..9165b1a 100644 --- a/util-vserver/src/wrappers.h +++ b/util-vserver/src/wrappers.h @@ -39,10 +39,11 @@ static UNUSED void FatalErrnoError(bool condition, char const msg[]) /*@*/ { + extern int wrapper_exit_code; + if (!condition) return; perror(msg); - extern int wrapper_exit_code; exit(wrapper_exit_code); } @@ -169,6 +170,37 @@ Ewrite(int fd, void const *ptr, size_t len) return res; } +inline static WRAPPER_DECL void +Ereadlink(const char *path, char *buf, size_t bufsiz) +{ + FatalErrnoError(readlink(path, buf, bufsiz)==-1, "readlink()"); +} + +inline static WRAPPER_DECL void +Esymlink(const char *oldpath, const char *newpath) +{ + FatalErrnoError(symlink(oldpath, newpath)==-1, "symlink()"); +} + +inline static WRAPPER_DECL void +Eunlink(char const *pathname) +{ + FatalErrnoError(unlink(pathname)==-1, "unlink()"); +} + +inline static WRAPPER_DECL void +Egetrlimit(int resource, struct rlimit *rlim) +{ + FatalErrnoError(getrlimit(resource, rlim)==-1, "getrlimit()"); +} + +inline static WRAPPER_DECL void +Esetrlimit(int resource, struct rlimit const *rlim) +{ + FatalErrnoError(setrlimit(resource, rlim)==-1, "setrlimit()"); +} + + #undef WRAPPER_DECL #endif // H_UTIL_VSERVER_SRC_WRAPPERS_H