1*59812b22Szrj /* 2*59812b22Szrj * Copyright (c) 2015 Rimvydas Jasinskas 3*59812b22Szrj * All rights reserved. 4*59812b22Szrj * 5*59812b22Szrj * Redistribution and use in source and binary forms, with or without 6*59812b22Szrj * modification, are permitted provided that the following conditions 7*59812b22Szrj * are met: 8*59812b22Szrj * 1. Redistributions of source code must retain the above copyright 9*59812b22Szrj * notice unmodified, this list of conditions, and the following 10*59812b22Szrj * disclaimer. 11*59812b22Szrj * 2. Redistributions in binary form must reproduce the above copyright 12*59812b22Szrj * notice, this list of conditions and the following disclaimer in the 13*59812b22Szrj * documentation and/or other materials provided with the distribution. 14*59812b22Szrj * 15*59812b22Szrj * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16*59812b22Szrj * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17*59812b22Szrj * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18*59812b22Szrj * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19*59812b22Szrj * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20*59812b22Szrj * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21*59812b22Szrj * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22*59812b22Szrj * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23*59812b22Szrj * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24*59812b22Szrj * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*59812b22Szrj */ 26*59812b22Szrj 27*59812b22Szrj /* 28*59812b22Szrj * linux/capability.h 29*59812b22Szrj * 30*59812b22Szrj * Simple capable() priv_check helper 31*59812b22Szrj * 32*59812b22Szrj * Note enforced "const int" safety check 33*59812b22Szrj */ 34*59812b22Szrj 35*59812b22Szrj #ifndef _LINUX_CAPABILITY_H 36*59812b22Szrj #define _LINUX_CAPABILITY_H 37*59812b22Szrj 38*59812b22Szrj #include <sys/thread.h> 39*59812b22Szrj #include <sys/priv.h> 40*59812b22Szrj 41*59812b22Szrj #define CAP_SYS_ADMIN PRIV_DRIVER 42*59812b22Szrj 43*59812b22Szrj static inline bool 44*59812b22Szrj capable(const int tryme) 45*59812b22Szrj { 46*59812b22Szrj return (priv_check(curthread, tryme) == 0); 47*59812b22Szrj } 48*59812b22Szrj 49*59812b22Szrj #endif /* _LINUX_CAPABILITY_H */ 50