Add some FEATURE macros for various features (AUDIT/CAM/IPC/KTR/MAC/NFS/NTP/
PMC/SYSV/...). No FreeBSD version bump, the userland application to query the features will be committed last and can serve as an indication of the availablility if needed. Sponsored by: Google Summer of Code 2010 Submitted by: kibab Reviewed by: arch@ (parts by rwatson, trasz, jhb) X-MFC after: to be determined in last commit with code from this project
This commit is contained in:
parent
fb4f617201
commit
de5b19526b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219028
@ -51,6 +51,9 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/libkern.h>
|
#include <sys/libkern.h>
|
||||||
#include <cam/cam_queue.h>
|
#include <cam/cam_queue.h>
|
||||||
#include <cam/cam_xpt.h>
|
#include <cam/cam_xpt.h>
|
||||||
|
|
||||||
|
FEATURE(scbus, "SCSI devices support");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int camstatusentrycomp(const void *key, const void *member);
|
static int camstatusentrycomp(const void *key, const void *member);
|
||||||
|
@ -73,6 +73,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <fs/nfsclient/nfs.h>
|
#include <fs/nfsclient/nfs.h>
|
||||||
#include <fs/nfsclient/nfsdiskless.h>
|
#include <fs/nfsclient/nfsdiskless.h>
|
||||||
|
|
||||||
|
FEATURE(nfscl, "NFSv4 client");
|
||||||
|
|
||||||
extern int nfscl_ticks;
|
extern int nfscl_ticks;
|
||||||
extern struct timeval nfsboottime;
|
extern struct timeval nfsboottime;
|
||||||
extern struct nfsstats newnfsstats;
|
extern struct nfsstats newnfsstats;
|
||||||
|
@ -46,6 +46,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <nlm/nlm_prot.h>
|
#include <nlm/nlm_prot.h>
|
||||||
#include <nlm/nlm.h>
|
#include <nlm/nlm.h>
|
||||||
|
|
||||||
|
FEATURE(nfsd, "NFSv4 server");
|
||||||
|
|
||||||
extern u_int32_t newnfs_true, newnfs_false, newnfs_xdrneg1;
|
extern u_int32_t newnfs_true, newnfs_false, newnfs_xdrneg1;
|
||||||
extern int nfsrv_useacl;
|
extern int nfsrv_useacl;
|
||||||
extern int newnfs_numnfsd;
|
extern int newnfs_numnfsd;
|
||||||
|
@ -37,10 +37,14 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
#include <sys/proc.h>
|
#include <sys/proc.h>
|
||||||
#include <sys/dtrace_bsd.h>
|
#include <sys/dtrace_bsd.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
#define KDTRACE_PROC_SIZE 64
|
#define KDTRACE_PROC_SIZE 64
|
||||||
#define KDTRACE_THREAD_SIZE 256
|
#define KDTRACE_THREAD_SIZE 256
|
||||||
|
|
||||||
|
FEATURE(kdtrace_hooks,
|
||||||
|
"Kernel DTrace hooks which are required to load DTrace kernel modules");
|
||||||
|
|
||||||
MALLOC_DEFINE(M_KDTRACE, "kdtrace", "DTrace hooks");
|
MALLOC_DEFINE(M_KDTRACE, "kdtrace", "DTrace hooks");
|
||||||
|
|
||||||
/* Return the DTrace process data size compiled in the kernel hooks. */
|
/* Return the DTrace process data size compiled in the kernel hooks. */
|
||||||
|
@ -80,6 +80,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#define KTR_CPU PCPU_GET(cpuid)
|
#define KTR_CPU PCPU_GET(cpuid)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
FEATURE(ktr, "Kernel support for KTR kernel tracing facility");
|
||||||
|
|
||||||
SYSCTL_NODE(_debug, OID_AUTO, ktr, CTLFLAG_RD, 0, "KTR options");
|
SYSCTL_NODE(_debug, OID_AUTO, ktr, CTLFLAG_RD, 0, "KTR options");
|
||||||
|
|
||||||
int ktr_cpumask = KTR_CPUMASK;
|
int ktr_cpumask = KTR_CPUMASK;
|
||||||
|
@ -83,6 +83,8 @@ static MALLOC_DEFINE(M_KTRACE, "KTRACE", "KTRACE");
|
|||||||
|
|
||||||
#ifdef KTRACE
|
#ifdef KTRACE
|
||||||
|
|
||||||
|
FEATURE(ktrace, "Kernel support for system-call tracing");
|
||||||
|
|
||||||
#ifndef KTRACE_REQUEST_POOL
|
#ifndef KTRACE_REQUEST_POOL
|
||||||
#define KTRACE_REQUEST_POOL 100
|
#define KTRACE_REQUEST_POOL 100
|
||||||
#endif
|
#endif
|
||||||
|
@ -1299,6 +1299,10 @@ lockstatus(struct lock *lk)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef INVARIANT_SUPPORT
|
#ifdef INVARIANT_SUPPORT
|
||||||
|
|
||||||
|
FEATURE(invariant_support,
|
||||||
|
"Support for modules compiled with INVARIANTS option");
|
||||||
|
|
||||||
#ifndef INVARIANTS
|
#ifndef INVARIANTS
|
||||||
#undef _lockmgr_assert
|
#undef _lockmgr_assert
|
||||||
#endif
|
#endif
|
||||||
|
@ -51,6 +51,10 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/syscallsubr.h>
|
#include <sys/syscallsubr.h>
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
|
#ifdef PPS_SYNC
|
||||||
|
FEATURE(pps_sync, "Support usage of external PPS signal by kernel PLL");
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Single-precision macros for 64-bit machines
|
* Single-precision macros for 64-bit machines
|
||||||
*/
|
*/
|
||||||
|
@ -37,8 +37,10 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/pmc.h>
|
#include <sys/pmc.h>
|
||||||
#include <sys/pmckern.h>
|
#include <sys/pmckern.h>
|
||||||
#include <sys/smp.h>
|
#include <sys/smp.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
#ifdef HWPMC_HOOKS
|
#ifdef HWPMC_HOOKS
|
||||||
|
FEATURE(hwpmc_hooks, "Kernel support for HW PMC");
|
||||||
#define PMC_KERNEL_VERSION PMC_VERSION
|
#define PMC_KERNEL_VERSION PMC_VERSION
|
||||||
#else
|
#else
|
||||||
#define PMC_KERNEL_VERSION 0
|
#define PMC_KERNEL_VERSION 0
|
||||||
|
@ -69,6 +69,11 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/syscallsubr.h>
|
#include <sys/syscallsubr.h>
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
|
#ifdef REGRESSION
|
||||||
|
FEATURE(regression,
|
||||||
|
"Kernel support for interfaces nessesary for regression testing (SECURITY RISK!)");
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(INET) || defined(INET6)
|
#if defined(INET) || defined(INET6)
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netinet/in_pcb.h>
|
#include <netinet/in_pcb.h>
|
||||||
|
@ -41,12 +41,16 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
#include <sys/lock.h>
|
#include <sys/lock.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
#include <sys/kernel.h>
|
||||||
#include <sys/mutex.h>
|
#include <sys/mutex.h>
|
||||||
#include <sys/proc.h>
|
#include <sys/proc.h>
|
||||||
#include <sys/posix4.h>
|
#include <sys/posix4.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <sys/sched.h>
|
#include <sys/sched.h>
|
||||||
|
|
||||||
|
FEATURE(kposix_priority_scheduling, "POSIX P1003.1B realtime extensions");
|
||||||
|
|
||||||
/* ksched: Real-time extension to support POSIX priority scheduling.
|
/* ksched: Real-time extension to support POSIX priority scheduling.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
#include <sys/endian.h>
|
#include <sys/endian.h>
|
||||||
#include <sys/errno.h>
|
#include <sys/errno.h>
|
||||||
#include <sys/mbuf.h>
|
#include <sys/mbuf.h>
|
||||||
@ -40,6 +41,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <sys/mchain.h>
|
#include <sys/mchain.h>
|
||||||
|
|
||||||
|
FEATURE(libmchain, "mchain library");
|
||||||
|
|
||||||
MODULE_VERSION(libmchain, 1);
|
MODULE_VERSION(libmchain, 1);
|
||||||
|
|
||||||
#define MBERROR(format, ...) printf("%s(%d): "format, __func__ , \
|
#define MBERROR(format, ...) printf("%s(%d): "format, __func__ , \
|
||||||
|
@ -39,6 +39,9 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/sbuf.h>
|
#include <sys/sbuf.h>
|
||||||
#include <sys/stack.h>
|
#include <sys/stack.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
|
FEATURE(stack, "Support for capturing kernel stack");
|
||||||
|
|
||||||
static MALLOC_DEFINE(M_STACK, "stack", "Stack Traces");
|
static MALLOC_DEFINE(M_STACK, "stack", "Stack Traces");
|
||||||
|
|
||||||
|
@ -72,6 +72,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <security/mac/mac_framework.h>
|
#include <security/mac/mac_framework.h>
|
||||||
|
|
||||||
|
FEATURE(sysv_msg, "System V message queues support");
|
||||||
|
|
||||||
static MALLOC_DEFINE(M_MSG, "msg", "SVID compatible message queues");
|
static MALLOC_DEFINE(M_MSG, "msg", "SVID compatible message queues");
|
||||||
|
|
||||||
static int msginit(void);
|
static int msginit(void);
|
||||||
|
@ -62,6 +62,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <security/mac/mac_framework.h>
|
#include <security/mac/mac_framework.h>
|
||||||
|
|
||||||
|
FEATURE(sysv_sem, "System V semaphores support");
|
||||||
|
|
||||||
static MALLOC_DEFINE(M_SEM, "sem", "SVID compatible semaphores");
|
static MALLOC_DEFINE(M_SEM, "sem", "SVID compatible semaphores");
|
||||||
|
|
||||||
#ifdef SEM_DEBUG
|
#ifdef SEM_DEBUG
|
||||||
|
@ -95,6 +95,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <vm/vm_page.h>
|
#include <vm/vm_page.h>
|
||||||
#include <vm/vm_pager.h>
|
#include <vm/vm_pager.h>
|
||||||
|
|
||||||
|
FEATURE(sysv_shm, "System V shared memory segments support");
|
||||||
|
|
||||||
static MALLOC_DEFINE(M_SHM, "shm", "SVID compatible shared memory segments");
|
static MALLOC_DEFINE(M_SHM, "shm", "SVID compatible shared memory segments");
|
||||||
|
|
||||||
static int shmget_allocate_segment(struct thread *td,
|
static int shmget_allocate_segment(struct thread *td,
|
||||||
|
@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
#include <sys/kernel.h>
|
#include <sys/kernel.h>
|
||||||
#include <sys/proc.h>
|
#include <sys/proc.h>
|
||||||
#include <sys/lock.h>
|
#include <sys/lock.h>
|
||||||
@ -57,6 +58,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <vm/vm_page.h>
|
#include <vm/vm_page.h>
|
||||||
#include <vm/vm_object.h>
|
#include <vm/vm_object.h>
|
||||||
|
|
||||||
|
FEATURE(zero_copy_sockets, "Zero copy sockets support");
|
||||||
|
|
||||||
struct netsend_cow_stats {
|
struct netsend_cow_stats {
|
||||||
int attempted;
|
int attempted;
|
||||||
|
@ -82,6 +82,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/vnode.h>
|
#include <sys/vnode.h>
|
||||||
#include <machine/atomic.h>
|
#include <machine/atomic.h>
|
||||||
|
|
||||||
|
FEATURE(p1003_1b_mqueue, "POSIX P1003.1B message queues support");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Limits and constants
|
* Limits and constants
|
||||||
*/
|
*/
|
||||||
|
@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <security/mac/mac_framework.h>
|
#include <security/mac/mac_framework.h>
|
||||||
|
|
||||||
|
FEATURE(p1003_1b_semaphores, "POSIX1003.1B semaphores support");
|
||||||
/*
|
/*
|
||||||
* TODO
|
* TODO
|
||||||
*
|
*
|
||||||
|
@ -78,6 +78,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <nfsclient/nfsm_subs.h>
|
#include <nfsclient/nfsm_subs.h>
|
||||||
#include <nfsclient/nfsdiskless.h>
|
#include <nfsclient/nfsdiskless.h>
|
||||||
|
|
||||||
|
FEATURE(nfsclient, "NFS client");
|
||||||
|
|
||||||
MALLOC_DEFINE(M_NFSREQ, "nfsclient_req", "NFS request header");
|
MALLOC_DEFINE(M_NFSREQ, "nfsclient_req", "NFS request header");
|
||||||
MALLOC_DEFINE(M_NFSBIGFH, "nfsclient_bigfh", "NFS version 3 file handle");
|
MALLOC_DEFINE(M_NFSBIGFH, "nfsclient_bigfh", "NFS version 3 file handle");
|
||||||
MALLOC_DEFINE(M_NFSDIROFF, "nfsclient_diroff", "NFS directory offset data");
|
MALLOC_DEFINE(M_NFSDIROFF, "nfsclient_diroff", "NFS directory offset data");
|
||||||
|
@ -97,6 +97,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <nfs/xdr_subs.h>
|
#include <nfs/xdr_subs.h>
|
||||||
#include <nfsserver/nfsm_subs.h>
|
#include <nfsserver/nfsm_subs.h>
|
||||||
|
|
||||||
|
FEATURE(nfsserver, "NFS server");
|
||||||
|
|
||||||
#ifdef NFSRV_DEBUG
|
#ifdef NFSRV_DEBUG
|
||||||
#define nfsdbprintf(info) printf info
|
#define nfsdbprintf(info) printf info
|
||||||
#else
|
#else
|
||||||
|
@ -72,6 +72,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include <vm/uma.h>
|
#include <vm/uma.h>
|
||||||
|
|
||||||
|
FEATURE(audit, "BSM audit support");
|
||||||
|
|
||||||
static uma_zone_t audit_record_zone;
|
static uma_zone_t audit_record_zone;
|
||||||
static MALLOC_DEFINE(M_AUDITCRED, "audit_cred", "Audit cred storage");
|
static MALLOC_DEFINE(M_AUDITCRED, "audit_cred", "Audit cred storage");
|
||||||
MALLOC_DEFINE(M_AUDITDATA, "audit_data", "Audit data storage");
|
MALLOC_DEFINE(M_AUDITDATA, "audit_data", "Audit data storage");
|
||||||
|
@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/mac.h>
|
#include <sys/mac.h>
|
||||||
#include <sys/proc.h>
|
#include <sys/proc.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
#include <sys/sysctl.h>
|
||||||
#include <sys/sysproto.h>
|
#include <sys/sysproto.h>
|
||||||
#include <sys/sysent.h>
|
#include <sys/sysent.h>
|
||||||
#include <sys/vnode.h>
|
#include <sys/vnode.h>
|
||||||
@ -72,6 +73,8 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#ifdef MAC
|
#ifdef MAC
|
||||||
|
|
||||||
|
FEATURE(mac, "Mandatory Access Control Framework support");
|
||||||
|
|
||||||
int
|
int
|
||||||
__mac_get_pid(struct thread *td, struct __mac_get_pid_args *uap)
|
__mac_get_pid(struct thread *td, struct __mac_get_pid_args *uap)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user