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