diff options
author | Vijay Kumar Banerjee <vijay@rtems.org> | 2021-02-24 19:06:38 -0700 |
---|---|---|
committer | Vijay Kumar Banerjee <vijay@rtems.org> | 2021-04-07 16:15:38 -0600 |
commit | 2a13ad389af61429a184e1cfac53c69eb673ad76 (patch) | |
tree | 035aca3f29ec996074a55d22b028f29c1d0cc4ea /cpukit/libnetworking/sys | |
parent | cpukit: Move ftpfs from libnetworking to libfs (diff) | |
download | rtems-2a13ad389af61429a184e1cfac53c69eb673ad76.tar.bz2 |
cpukit: Remove libnetworking
Update #3850
Diffstat (limited to 'cpukit/libnetworking/sys')
-rw-r--r-- | cpukit/libnetworking/sys/callout.h | 53 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/conf.h | 57 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/domain.h | 70 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/kernel.h | 188 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/libkern.h | 93 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/linker_set.h | 109 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/malloc.h | 354 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/mbuf.h | 438 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/mount.h | 120 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/proc.h | 6 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/protosw.h | 300 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/reboot.h | 105 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/resourcevar.h | 1 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/selinfo.h | 55 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/signalvar.h | 176 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/socketvar.h | 271 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/sysctl.h | 642 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/systm.h | 108 | ||||
-rw-r--r-- | cpukit/libnetworking/sys/ucred.h | 60 |
19 files changed, 0 insertions, 3206 deletions
diff --git a/cpukit/libnetworking/sys/callout.h b/cpukit/libnetworking/sys/callout.h deleted file mode 100644 index 150609eef6..0000000000 --- a/cpukit/libnetworking/sys/callout.h +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)callout.h 8.2 (Berkeley) 1/21/94 - * $FreeBSD: src/sys/sys/callout.h,v 1.27 2004/04/20 15:49:31 cperciva Exp $ - */ - -#ifndef _SYS_CALLOUT_H_ -#define _SYS_CALLOUT_H_ - -struct callout { - struct callout *c_next; /* next callout in queue */ - void *c_arg; /* function argument */ - void (*c_func)(void *); /* function to call */ - int c_time; /* ticks to the event */ -}; - -#ifdef _KERNEL -extern struct callout *callfree, *callout, calltodo; -extern int ncallout; -#endif - -#endif diff --git a/cpukit/libnetworking/sys/conf.h b/cpukit/libnetworking/sys/conf.h deleted file mode 100644 index 45abb1c4d6..0000000000 --- a/cpukit/libnetworking/sys/conf.h +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * Copyright (c) 2000 - * Poul-Henning Kamp. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)conf.h 8.5 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/sys/conf.h,v 1.231 2007/02/02 22:27:45 bms Exp $ - */ - - -#ifndef _SYS_CONF_H_ -#define _SYS_CONF_H_ - -#ifdef _KERNEL - -/* - * Definitions of device driver entry switches - */ - -struct buf; -struct proc; -struct tty; -struct uio; -struct vnode; -#endif /* _KERNEL */ - -#endif /* !_SYS_CONF_H_ */ diff --git a/cpukit/libnetworking/sys/domain.h b/cpukit/libnetworking/sys/domain.h deleted file mode 100644 index 0112f574be..0000000000 --- a/cpukit/libnetworking/sys/domain.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)domain.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _SYS_DOMAIN_H_ -#define _SYS_DOMAIN_H_ - -/* - * Structure per communications domain. - */ - -/* - * Forward structure declarations for function prototypes [sic]. - */ -struct mbuf; - -struct domain { - int dom_family; /* AF_xxx */ - char *dom_name; - void (*dom_init) /* initialize domain data structures */ - (void); - int (*dom_externalize) /* externalize access rights */ - (struct mbuf *); - void (*dom_dispose) /* dispose of internalized rights */ - (struct mbuf *); - struct protosw *dom_protosw, *dom_protoswNPROTOSW; - struct domain *dom_next; - int (*dom_rtattach) /* initialize routing table */ - (void **, int); - int dom_rtoffset; /* an arg to rtattach, in bits */ - int dom_maxrtkey; /* for routing layer */ -}; - -#ifdef _KERNEL -extern struct domain *domains; -extern struct domain localdomain; - -#define DOMAIN_SET(name) \ - DATA_SET(domain_set, name ## domain); - -#endif - -#endif diff --git a/cpukit/libnetworking/sys/kernel.h b/cpukit/libnetworking/sys/kernel.h deleted file mode 100644 index 045bf19baf..0000000000 --- a/cpukit/libnetworking/sys/kernel.h +++ /dev/null @@ -1,188 +0,0 @@ -/*- - * Copyright (c) 1995 Terrence R. Lambert - * All rights reserved. - * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)kernel.h 8.3 (Berkeley) 1/21/94 - */ - -#ifndef _SYS_KERNEL_H_ -#define _SYS_KERNEL_H_ - -#include <sys/linker_set.h> - -#ifdef _KERNEL - -/* Global variables for the kernel. */ - -/* 1.1 */ -extern long hostid; -extern char hostname[MAXHOSTNAMELEN]; -extern char domainname[MAXHOSTNAMELEN]; -extern char kernelname[MAXPATHLEN]; - -/* 1.2 */ -extern volatile struct timeval mono_time; -extern struct timeval boottime; -extern struct timeval runtime; -/* extern volatile struct timeval time; */ -extern struct timezone tz; /* XXX */ - -extern int tick; /* usec per tick (1000000 / hz) */ -extern int hz; /* system clock's frequency */ -extern int psratio; /* ratio: prof / stat */ -extern int stathz; /* statistics clock's frequency */ -extern int profhz; /* profiling clock's frequency */ -extern int ticks; - -#endif /* _KERNEL */ - -/* - * Enumerated types for known system startup interfaces. - * - * Startup occurs in ascending numeric order; the list entries are - * sorted prior to attempting startup to guarantee order. Items - * of the same level are arbitrated for order based on the 'order' - * element. - * - * These numbers are arbitrary and are chosen ONLY for ordering; the - * enumeration values are explicit rather than implicit to provide - * for binary compatibility with inserted elements. - * - * The SI_SUB_RUN_SCHEDULER value must have the highest lexical value. - * - * The SI_SUB_CONSOLE and SI_SUB_SWAP values represent values used by - * the BSD 4.4Lite but not by FreeBSD; they are maintained in dependent - * order to support porting. - * - * The SI_SUB_PROTO_BEGIN and SI_SUB_PROTO_END bracket a range of - * initializations to take place at splimp(). This is a historical - * wart that should be removed -- probably running everything at - * splimp() until the first init that doesn't want it is the correct - * fix. They are currently present to ensure historical behavior. - */ -enum sysinit_sub_id { - SI_SUB_DUMMY = 0x00000000, /* not executed; for linker*/ - SI_SUB_CONSOLE = 0x08000000, /* console*/ - SI_SUB_COPYRIGHT = 0x08000001, /* first use of console*/ - SI_SUB_VM = 0x10000000, /* virtual memory system init*/ - SI_SUB_KMEM = 0x18000000, /* kernel memory*/ - SI_SUB_CPU = 0x20000000, /* CPU resource(s)*/ - SI_SUB_DEVFS = 0x22000000, /* get DEVFS ready */ - SI_SUB_DRIVERS = 0x23000000, /* Let Drivers initialize */ - SI_SUB_CONFIGURE = 0x24000000, /* Configure devices */ - SI_SUB_INTRINSIC = 0x28000000, /* proc 0*/ - SI_SUB_RUN_QUEUE = 0x30000000, /* the run queue*/ - SI_SUB_VM_CONF = 0x38000000, /* config VM, set limits*/ - SI_SUB_VFS = 0x40000000, /* virtual file system*/ - SI_SUB_CLOCKS = 0x48000000, /* real time and stat clocks*/ - SI_SUB_MBUF = 0x50000000, /* mbufs*/ - SI_SUB_CLIST = 0x58000000, /* clists*/ - SI_SUB_SYSV_SHM = 0x64000000, /* System V shared memory*/ - SI_SUB_SYSV_SEM = 0x68000000, /* System V semaphores*/ - SI_SUB_SYSV_MSG = 0x6C000000, /* System V message queues*/ - SI_SUB_PSEUDO = 0x70000000, /* pseudo devices*/ - SI_SUB_PROTO_BEGIN = 0x80000000, /* XXX: set splimp (kludge)*/ - SI_SUB_PROTO_IF = 0x84000000, /* interfaces*/ - SI_SUB_PROTO_DOMAIN = 0x88000000, /* domains (address families?)*/ - SI_SUB_PROTO_END = 0x8fffffff, /* XXX: set splx (kludge)*/ - SI_SUB_KPROF = 0x90000000, /* kernel profiling*/ - SI_SUB_KICK_SCHEDULER = 0xa0000000, /* start the timeout events*/ - SI_SUB_ROOT = 0xb0000000, /* root mount*/ - SI_SUB_ROOT_FDTAB = 0xb8000000, /* root vnode in fd table...*/ - SI_SUB_SWAP = 0xc0000000, /* swap*/ - SI_SUB_INTRINSIC_POST = 0xd0000000, /* proc 0 cleanup*/ - SI_SUB_KTHREAD_INIT = 0xe0000000, /* init process*/ - SI_SUB_KTHREAD_PAGE = 0xe4000000, /* pageout daemon*/ - SI_SUB_KTHREAD_VM = 0xe8000000, /* vm daemon*/ - SI_SUB_KTHREAD_UPDATE = 0xec000000, /* update daemon*/ - SI_SUB_RUN_SCHEDULER = 0xffffffff /* scheduler: no return*/ -}; - - -/* - * Some enumerated orders; "ANY" sorts last. - */ -enum sysinit_elem_order { - SI_ORDER_FIRST = 0x00000000, /* first*/ - SI_ORDER_SECOND = 0x00000001, /* second*/ - SI_ORDER_THIRD = 0x00000002, /* third*/ - SI_ORDER_MIDDLE = 0x10000000, /* somewhere in the middle */ - SI_ORDER_ANY = 0xffffffff /* last*/ -}; - - -/* - * A system initialization call instance - * - * The subsystem - */ -struct sysinit { - unsigned int subsystem; /* subsystem identifier*/ - unsigned int order; /* init order within subsystem*/ - void (*func)(void *); /* init function*/ - void *udata; /* multiplexer/argument */ -}; - - -/* - * Default: no special processing - */ -#define SYSINIT(uniquifier, subsystem, order, func, ident) - -/* - * Call 'fork()' before calling '(*func)(ident)'; - * for making a kernel 'thread' (or builtin process.) - */ -#define SYSINIT_KT(uniquifier, subsystem, order, func, ident) - - -/* - * A kernel process descriptor; used to start "internal" daemons - * - * Note: global_procpp may be NULL for no global save area - */ -struct kproc_desc { - char *arg0; /* arg 0 (for 'ps' listing)*/ - void (*func)(void); /* "main" for kernel process*/ - struct proc **global_procpp; /* ptr to proc ptr save area*/ -}; - -void kproc_start(void *udata); - -#endif /* !_SYS_KERNEL_H_*/ diff --git a/cpukit/libnetworking/sys/libkern.h b/cpukit/libnetworking/sys/libkern.h deleted file mode 100644 index 7aa6e8b7c9..0000000000 --- a/cpukit/libnetworking/sys/libkern.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)libkern.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/sys/libkern.h,v 1.48 2005/02/10 20:39:39 glebius Exp $ - */ - - -#ifndef _SYS_LIBKERN_H_ -#define _SYS_LIBKERN_H_ - -#include <sys/cdefs.h> -#include <sys/types.h> - -/* BCD conversions. */ -extern u_char const bcd2bin_data[]; -extern u_char const bin2bcd_data[]; -extern char const hex2ascii_data[]; - -#define bcd2bin(bcd) (bcd2bin_data[bcd]) -#define bin2bcd(bin) (bin2bcd_data[bin]) -#define hex2ascii(hex) (hex2ascii_data[hex]) - -static __inline int imax(int a, int b) { return (a > b ? a : b); } -static __inline int imin(int a, int b) { return (a < b ? a : b); } -static __inline long lmax(long a, long b) { return (a > b ? a : b); } -static __inline long lmin(long a, long b) { return (a < b ? a : b); } -static __inline u_int max(u_int a, u_int b) { return (a > b ? a : b); } -static __inline u_int min(u_int a, u_int b) { return (a < b ? a : b); } -static __inline quad_t qmax(quad_t a, quad_t b) { return (a > b ? a : b); } -static __inline quad_t qmin(quad_t a, quad_t b) { return (a < b ? a : b); } -static __inline u_long ulmax(u_long a, u_long b) { return (a > b ? a : b); } -static __inline u_long ulmin(u_long a, u_long b) { return (a < b ? a : b); } - -/* Prototypes for non-quad routines. */ -int bcmp(const void *, const void *, size_t); -#ifndef HAVE_INLINE_FFS -int ffs(int); -#endif -#ifndef HAVE_INLINE_FLS -int fls(int); -#endif -int locc(int, char *, u_int); -void qsort(void *base, size_t nmemb, size_t size, - int (*compar)(const void *, const void *)); -#if defined(__rtems__) -u_long rtems_bsdnet_random(void); -#define random() rtems_bsdnet_random() -#else -u_long random(void); -#endif -char *index(const char *, int); -char *rindex(const char *, int); -int scanc(u_int, const u_char *, const u_char *, int); -int skpc(int, int, char *); -#if !defined(__rtems__) -void srandom(u_long); -#endif -char *strcat(char * __restrict, const char * __restrict); -int strcmp(const char *, const char *); -char *strdup(const char *s); -char *strcpy(char * __restrict, const char * __restrict); -size_t strlen(const char *); -int strncmp(const char *, const char *, size_t); -char *strncpy(char * __restrict, const char * __restrict, size_t); -char *strerror(int errnum); - -#endif /* !_SYS_LIBKERN_H_ */ diff --git a/cpukit/libnetworking/sys/linker_set.h b/cpukit/libnetworking/sys/linker_set.h deleted file mode 100644 index c83d7c845a..0000000000 --- a/cpukit/libnetworking/sys/linker_set.h +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * Copyright (c) 1999 John D. Polstra - * Copyright (c) 1999,2001 Peter Wemm <peter@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD: src/sys/sys/linker_set.h,v 1.13 2002/09/23 06:11:29 peter Exp $ - */ - -#ifndef _SYS_LINKER_SET_H_ -#define _SYS_LINKER_SET_H_ - -/* FIXME: These macros should not be here - * BSD has them macros in sys/cdefs.h - * older rtems had them in rtems/bsd/sys/cdefs.h - * newlib has some of them in sys/cdefs.h - */ - -#if defined(__rtems__) -#ifndef __used -#define __used __attribute__((__used__)) -#endif -#ifndef __CONCAT -#define __CONCAT1(x,y) x ## y -#define __CONCAT(x,y) __CONCAT1(x,y) -#endif -#endif - -/* - * The following macros are used to declare global sets of objects, which - * are collected by the linker into a `linker_set' as defined below. - * For ELF, this is done by constructing a separate segment for each set. - */ - -/* - * Private macros, not to be used outside this header file. - */ -#ifdef __GNUC__ -#define __MAKE_SET(set, sym) \ - static void const * const __set_##set##_sym_##sym \ - __attribute((section("set_" #set))) __used = &sym -#else /* !__GNUC__ */ -#ifndef lint -#error "This file needs to be compiled by GCC or lint" -#endif /* lint */ -#define __MAKE_SET(set, sym) extern void const * const (__set_##set##_sym_##sym) -#endif /* __GNUC__ */ - -/* - * Public macros. - */ -#define TEXT_SET(set, sym) __MAKE_SET(set, sym) -#define DATA_SET(set, sym) __MAKE_SET(set, sym) -#define BSS_SET(set, sym) __MAKE_SET(set, sym) -#define ABS_SET(set, sym) __MAKE_SET(set, sym) -#define SET_ENTRY(set, sym) __MAKE_SET(set, sym) - -/* - * Initialize before referring to a give linker set - */ -#define SET_DECLARE(set, ptype) \ - extern ptype *__CONCAT(__start_set_,set)[]; \ - extern ptype *__CONCAT(__stop_set_,set)[] - -#define SET_BEGIN(set) \ - (__CONCAT(__start_set_,set)) -#define SET_LIMIT(set) \ - (__CONCAT(__stop_set_,set)) - -/* - * Iterate over all the elements of a set. - * - * Sets always contain addresses of things, and "pvar" points to words - * containing those addresses. Thus is must be declared as "type **pvar", - * and the address of each set item is obtained inside the loop by "*pvar". - */ -#define SET_FOREACH(pvar, set) \ - for (pvar = SET_BEGIN(set); pvar < SET_LIMIT(set); pvar++) - -#define SET_ITEM(set, i) \ - ((SET_BEGIN(set))[i]) - -/* - * Provide a count of the items in a set. - */ -#define SET_COUNT(set) \ - (SET_LIMIT(set) - SET_BEGIN(set)) - -#endif /* _SYS_LINKER_SET_H_ */ diff --git a/cpukit/libnetworking/sys/malloc.h b/cpukit/libnetworking/sys/malloc.h deleted file mode 100644 index 2341053166..0000000000 --- a/cpukit/libnetworking/sys/malloc.h +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 1987, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)malloc.h 8.5 (Berkeley) 5/3/95 - */ - -#ifndef _SYS_MALLOC_H_ -#define _SYS_MALLOC_H_ - -#include <rtems/rtems_bsdnet_internal.h> /* Ensure we get RTEMS malloc hooks */ -#define KMEMSTATS - -/* - * flags to malloc - */ -#define M_WAITOK 0x0000 -#define M_NOWAIT 0x0001 -#define M_KERNEL 0x0002 - -/* - * Types of memory to be allocated - */ -#define M_FREE 0 /* should be on free list */ -#define M_MBUF 1 /* mbuf */ -#define M_DEVBUF 2 /* device driver memory */ -#define M_SOCKET 3 /* socket structure */ -#define M_PCB 4 /* protocol control block */ -#define M_RTABLE 5 /* routing tables */ -#define M_HTABLE 6 /* IMP host tables */ -#define M_FTABLE 7 /* fragment reassembly header */ -#define M_ZOMBIE 8 /* zombie proc status */ -#define M_IFADDR 9 /* interface address */ -#define M_SOOPTS 10 /* socket options */ -#define M_SONAME 11 /* socket name */ -#define M_NAMEI 12 /* namei path name buffer */ -#define M_GPROF 13 /* kernel profiling buffer */ -#define M_IOCTLOPS 14 /* ioctl data buffer */ -#define M_MAPMEM 15 /* mapped memory descriptors */ -#define M_CRED 16 /* credentials */ -#define M_PGRP 17 /* process group header */ -#define M_SESSION 18 /* session header */ -#define M_IOV 19 /* large iov's */ -#define M_MOUNT 20 /* vfs mount struct */ -#define M_FHANDLE 21 /* network file handle */ -#define M_NFSREQ 22 /* NFS request header */ -#define M_NFSMNT 23 /* NFS mount structure */ -#define M_NFSNODE 24 /* NFS vnode private part */ -#define M_VNODE 25 /* Dynamically allocated vnodes */ -#define M_CACHE 26 /* Dynamically allocated cache entries */ -#define M_DQUOT 27 /* UFS quota entries */ -#define M_UFSMNT 28 /* UFS mount structure */ -#define M_SHM 29 /* SVID compatible shared memory segments */ -#define M_VMMAP 30 /* VM map structures */ -#define M_VMMAPENT 31 /* VM map entry structures */ -#define M_VMOBJ 32 /* VM object structure */ -#define M_VMOBJHASH 33 /* VM object hash structure */ -#define M_VMPMAP 34 /* VM pmap */ -#define M_VMPVENT 35 /* VM phys-virt mapping entry */ -#define M_VMPAGER 36 /* XXX: VM pager struct */ -#define M_VMPGDATA 37 /* XXX: VM pager private data */ -#define M_FILE 38 /* Open file structure */ -#define M_FILEDESC 39 /* Open file descriptor table */ -#define M_LOCKF 40 /* Byte-range locking structures */ -#define M_PROC 41 /* Proc structures */ -#define M_SUBPROC 42 /* Proc sub-structures */ -#define M_SEGMENT 43 /* Segment for LFS */ -#define M_LFSNODE 44 /* LFS vnode private part */ -#define M_FFSNODE 45 /* FFS vnode private part */ -#define M_MFSNODE 46 /* MFS vnode private part */ -#define M_NQLEASE 47 /* Nqnfs lease */ -#define M_NQMHOST 48 /* Nqnfs host address table */ -#define M_NETADDR 49 /* Export host address structure */ -#define M_NFSSVC 50 /* Nfs server structure */ -#define M_NFSUID 51 /* Nfs uid mapping structure */ -#define M_NFSD 52 /* Nfs server daemon structure */ -#define M_IPMOPTS 53 /* internet multicast options */ -#define M_IPMADDR 54 /* internet multicast address */ -#define M_IFMADDR 55 /* link-level multicast address */ -#define M_MRTABLE 56 /* multicast routing tables */ -#define M_ISOFSMNT 57 /* ISOFS mount structure */ -#define M_ISOFSNODE 58 /* ISOFS vnode private part */ -#define M_NFSRVDESC 59 /* NFS server socket descriptor */ -#define M_NFSDIROFF 60 /* NFS directory offset data */ -#define M_NFSBIGFH 61 /* NFS version 3 file handle */ -#define M_MSDOSFSMNT 67 /* MSDOSFS mount structure */ -#define M_MSDOSFSNODE 68 /* MSDOSFS vnode private part */ -#define M_MSDOSFSFAT 69 /* MSDOSFS file allocation table */ -#define M_DEVFSMNT 70 /* DEVFS mount structure */ -#define M_DEVFSBACK 71 /* DEVFS Back node */ -#define M_DEVFSFRONT 72 /* DEVFS Front node */ -#define M_DEVFSNODE 73 /* DEVFS node */ -#define M_TEMP 74 /* misc temporary data buffers */ -#define M_TTYS 75 /* tty data structures */ -#define M_GZIP 76 /* Gzip trees */ -#define M_IPFW 77 /* IpFw/IpAcct chain's */ -#define M_DEVL 78 /* isa_device lists in userconfig() */ -#define M_PKTCLASS 79 /* structures used in packet classifier */ -#define M_SYSCTL 80 /* sysctl internal magic */ -#define M_SECA 81 /* security associations, key management */ -#define M_BIOBUF 82 /* BIO buffer */ -#define M_KTRACE 83 /* KTRACE */ -#define M_SELECT 84 /* select() buffer */ -#define M_CFS 85 /* Coda */ -#define M_LAST 86 /* Must be last type + 1 */ - -#define INITKMEMNAMES { \ - "free", /* 0 M_FREE */ \ - "mbuf", /* 1 M_MBUF */ \ - "devbuf", /* 2 M_DEVBUF */ \ - "socket", /* 3 M_SOCKET */ \ - "pcb", /* 4 M_PCB */ \ - "routetbl", /* 5 M_RTABLE */ \ - "hosttbl", /* 6 M_HTABLE */ \ - "fragtbl", /* 7 M_FTABLE */ \ - "zombie", /* 8 M_ZOMBIE */ \ - "ifaddr", /* 9 M_IFADDR */ \ - "soopts", /* 10 M_SOOPTS */ \ - "soname", /* 11 M_SONAME */ \ - "namei", /* 12 M_NAMEI */ \ - "gprof", /* 13 M_GPROF */ \ - "ioctlops", /* 14 M_IOCTLOPS */ \ - "mapmem", /* 15 M_MAPMEM */ \ - "cred", /* 16 M_CRED */ \ - "pgrp", /* 17 M_PGRP */ \ - "session", /* 18 M_SESSION */ \ - "iov", /* 19 M_IOV */ \ - "mount", /* 20 M_MOUNT */ \ - "fhandle", /* 21 M_FHANDLE */ \ - "NFS req", /* 22 M_NFSREQ */ \ - "NFS mount", /* 23 M_NFSMNT */ \ - "NFS node", /* 24 M_NFSNODE */ \ - "vnodes", /* 25 M_VNODE */ \ - "namecache", /* 26 M_CACHE */ \ - "UFS quota", /* 27 M_DQUOT */ \ - "UFS mount", /* 28 M_UFSMNT */ \ - "shm", /* 29 M_SHM */ \ - "VM map", /* 30 M_VMMAP */ \ - "VM mapent", /* 31 M_VMMAPENT */ \ - "VM object", /* 32 M_VMOBJ */ \ - "VM objhash", /* 33 M_VMOBJHASH */ \ - "VM pmap", /* 34 M_VMPMAP */ \ - "VM pvmap", /* 35 M_VMPVENT */ \ - "VM pager", /* 36 M_VMPAGER */ \ - "VM pgdata", /* 37 M_VMPGDATA */ \ - "file", /* 38 M_FILE */ \ - "file desc", /* 39 M_FILEDESC */ \ - "lockf", /* 40 M_LOCKF */ \ - "proc", /* 41 M_PROC */ \ - "subproc", /* 42 M_SUBPROC */ \ - "LFS segment", /* 43 M_SEGMENT */ \ - "LFS node", /* 44 M_LFSNODE */ \ - "FFS node", /* 45 M_FFSNODE */ \ - "MFS node", /* 46 M_MFSNODE */ \ - "NQNFS Lease", /* 47 M_NQLEASE */ \ - "NQNFS Host", /* 48 M_NQMHOST */ \ - "Export Host", /* 49 M_NETADDR */ \ - "NFS srvsock", /* 50 M_NFSSVC */ \ - "NFS uid", /* 51 M_NFSUID */ \ - "NFS daemon", /* 52 M_NFSD */ \ - "ip_moptions", /* 53 M_IPMOPTS */ \ - "in_multi", /* 54 M_IPMADDR */ \ - "ether_multi", /* 55 M_IFMADDR */ \ - "mrt", /* 56 M_MRTABLE */ \ - "ISOFS mount", /* 57 M_ISOFSMNT */ \ - "ISOFS node", /* 58 M_ISOFSNODE */ \ - "NFSV3 srvdesc",/* 59 M_NFSRVDESC */ \ - "NFSV3 diroff", /* 60 M_NFSDIROFF */ \ - "NFSV3 bigfh", /* 61 M_NFSBIGFH */ \ - NULL, \ - NULL, NULL, NULL, NULL, \ - "MSDOSFS mount",/* 67 M_MSDOSFSMNT */ \ - "MSDOSFS node", /* 68 M_MSDOSFSNODE */ \ - "MSDOSFS FAT", /* 69 M_MSDOSFSFAR */ \ - "DEVFS mount", /* 70 M_DEVFSMNT */ \ - "DEVFS back", /* 71 M_DEVFSBACK */ \ - "DEVFS front", /* 72 M_DEVFSFRONT */ \ - "DEVFS node", /* 73 M_DEVFSNODE */ \ - "temp", /* 74 M_TEMP */ \ - "ttys", /* 75 M_TTYS */ \ - "Gzip trees", /* 76 M_GZIP */ \ - "IpFw/IpAcct", /* 77 M_IPFW */ \ - "isa_devlist", /* 78 M_DEVL */ \ - "PktClass", /* 79 M_PKTCLASS */ \ - "sysctl", /* 80 M_SYSCTL */ \ - "key mgmt", /* 81 M_SECA */ \ - "BIO buffer", /* 82 M_BIOBUF */ \ - "KTRACE", /* 83 M_KTRACE */ \ - "select", /* 84 M_SELECT */ \ - "Coda", /* 85 M_CFS */ \ -} - -struct kmemstats { - long ks_inuse; /* # of packets of this type currently in use */ - long ks_calls; /* total packets of this type ever allocated */ - long ks_memuse; /* total memory held in bytes */ - u_short ks_limblocks; /* number of times blocked for hitting limit */ - u_short ks_mapblocks; /* number of times blocked for kernel map */ - long ks_maxused; /* maximum number ever used */ - long ks_limit; /* most that are allowed to exist */ - long ks_size; /* sizes of this thing that are allocated */ - long ks_spare; -}; - -/* - * Array of descriptors that describe the contents of each page - */ -struct kmemusage { - short ku_indx; /* bucket index */ - union { - u_short freecnt;/* for small allocations, free pieces in page */ - u_short pagecnt;/* for large allocations, pages alloced */ - } ku_un; -}; -#define ku_freecnt ku_un.freecnt -#define ku_pagecnt ku_un.pagecnt - -/* - * Set of buckets for each size of memory block that is retained - */ -struct kmembuckets { - caddr_t kb_next; /* list of free blocks */ - caddr_t kb_last; /* last free block */ - long kb_calls; /* total calls to allocate this size */ - long kb_total; /* total number of blocks allocated */ - long kb_totalfree; /* # of free elements in this bucket */ - long kb_elmpercl; /* # of elements in this sized allocation */ - long kb_highwat; /* high water mark */ - long kb_couldfree; /* over high water mark and could free */ -}; - -#ifdef _KERNEL -#define MINALLOCSIZE (1 << MINBUCKET) -#define BUCKETINDX(size) \ - ((size) <= (MINALLOCSIZE * 128) \ - ? (size) <= (MINALLOCSIZE * 8) \ - ? (size) <= (MINALLOCSIZE * 2) \ - ? (size) <= (MINALLOCSIZE * 1) \ - ? (MINBUCKET + 0) \ - : (MINBUCKET + 1) \ - : (size) <= (MINALLOCSIZE * 4) \ - ? (MINBUCKET + 2) \ - : (MINBUCKET + 3) \ - : (size) <= (MINALLOCSIZE* 32) \ - ? (size) <= (MINALLOCSIZE * 16) \ - ? (MINBUCKET + 4) \ - : (MINBUCKET + 5) \ - : (size) <= (MINALLOCSIZE * 64) \ - ? (MINBUCKET + 6) \ - : (MINBUCKET + 7) \ - : (size) <= (MINALLOCSIZE * 2048) \ - ? (size) <= (MINALLOCSIZE * 512) \ - ? (size) <= (MINALLOCSIZE * 256) \ - ? (MINBUCKET + 8) \ - : (MINBUCKET + 9) \ - : (size) <= (MINALLOCSIZE * 1024) \ - ? (MINBUCKET + 10) \ - : (MINBUCKET + 11) \ - : (size) <= (MINALLOCSIZE * 8192) \ - ? (size) <= (MINALLOCSIZE * 4096) \ - ? (MINBUCKET + 12) \ - : (MINBUCKET + 13) \ - : (size) <= (MINALLOCSIZE * 16384) \ - ? (MINBUCKET + 14) \ - : (MINBUCKET + 15)) - -/* - * Turn virtual addresses into kmem map indices - */ -#define kmemxtob(alloc) (kmembase + (alloc) * PAGE_SIZE) -#define btokmemx(addr) (((caddr_t)(addr) - kmembase) / PAGE_SIZE) -#define btokup(addr) (&kmemusage[(caddr_t)(addr) - kmembase >> PAGE_SHIFT]) - -/* - * Macro versions for the usual cases of malloc/free - */ -#if defined(KMEMSTATS) || defined(DIAGNOSTIC) -#define MALLOC(space, cast, size, type, flags) \ - (space) = (cast)malloc((u_long)(size), type, flags) -#define FREE(addr, type) free((addr), type) - -#else /* do not collect statistics */ -#define MALLOC(space, cast, size, type, flags) { \ - register struct kmembuckets *kbp = &bucket[BUCKETINDX(size)]; \ - long s = splimp(); \ - if (kbp->kb_next == NULL) { \ - (space) = (cast)malloc((u_long)(size), type, flags); \ - } else { \ - (space) = (cast)kbp->kb_next; \ - kbp->kb_next = *(caddr_t *)(space); \ - } \ - splx(s); \ -} - -#define FREE(addr, type) { \ - register struct kmembuckets *kbp; \ - register struct kmemusage *kup = btokup(addr); \ - long s = splimp(); \ - if (1 << kup->ku_indx > MAXALLOCSAVE) { \ - free((addr), type); \ - } else { \ - kbp = &bucket[kup->ku_indx]; \ - if (kbp->kb_next == NULL) \ - kbp->kb_next = (caddr_t)(addr); \ - else \ - *(caddr_t *)(kbp->kb_last) = (caddr_t)(addr); \ - *(caddr_t *)(addr) = NULL; \ - kbp->kb_last = (caddr_t)(addr); \ - } \ - splx(s); \ -} -#endif /* do not collect statistics */ - -extern struct kmemstats kmemstats[]; -extern struct kmemusage *kmemusage; -extern char *kmembase; -extern struct kmembuckets bucket[]; - -void free (void *addr, int type); -void *malloc (size_t size, int type, int flags); -/* standard realloc but we cannot include stdlib.h */ -void *realloc(void * __r, size_t __size); - -#endif /* _KERNEL */ - -#endif /* !_SYS_MALLOC_H_ */ diff --git a/cpukit/libnetworking/sys/mbuf.h b/cpukit/libnetworking/sys/mbuf.h deleted file mode 100644 index c54b760b3e..0000000000 --- a/cpukit/libnetworking/sys/mbuf.h +++ /dev/null @@ -1,438 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)mbuf.h 8.5 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/mbuf.h,v 1.169 2005/03/17 19:34:57 jmg Exp $ - */ - - -#ifndef _SYS_MBUF_H_ -#define _SYS_MBUF_H_ - -#ifndef M_WAITOK -#include <sys/malloc.h> -#endif - -/* - * Mbufs are of a single size, _SYS_MBUF_LEGACY_MSIZE (machine/machparam.h), which - * includes overhead. An mbuf may add a single "mbuf cluster" of size - * MCLBYTES (also in machine/machparam.h), which has no additional overhead - * and is used instead of the internal data area; this is done when - * at least MINCLSIZE of data must be stored. - */ - -#define _SYS_MBUF_LEGACY_MSIZE 128 -#define MLEN (_SYS_MBUF_LEGACY_MSIZE - sizeof(struct m_hdr)) /* normal data len */ -#define MHLEN (MLEN - sizeof(struct pkthdr)) /* data len w/pkthdr */ -#define MINCLSIZE (MHLEN + MLEN) /* smallest amount to put in cluster */ -#define M_MAXCOMPRESS (MHLEN / 2) /* max amount to copy for compression */ - -/*- - * Macros for type conversion: - * mtod(m, t) -- Convert mbuf pointer to data pointer of correct type. - * dtom(x) -- Convert data pointer within mbuf to mbuf pointer (XXX). - * mtocl(x) -- Convert pointer within cluster to cluster index # - * cltom(x) -- Convert cluster # to ptr to beginning of cluster - */ -#define mtod(m, t) ((t)((m)->m_data)) -#define dtom(x) ((struct mbuf *)((intptr_t)(x) & ~(_SYS_MBUF_LEGACY_MSIZE-1))) -#define mtocl(x) (((uintptr_t)(x) - (uintptr_t)mbutl) >> MCLSHIFT) -#define cltom(x) ((caddr_t)((u_long)mbutl + ((u_long)(x) << MCLSHIFT))) - -/* - * Header present at the beginning of every mbuf. - */ -struct m_hdr { - struct mbuf *mh_next; /* next buffer in chain */ - struct mbuf *mh_nextpkt; /* next chain in queue/record */ - caddr_t mh_data; /* location of data */ - int mh_len; /* amount of data in this mbuf */ - int mh_flags; /* flags; see below */ - short mh_type; /* type of data in this mbuf */ -}; - -/* - * Record/packet header in first mbuf of chain; valid only if M_PKTHDR is set. - */ -struct pkthdr { - struct ifnet *rcvif; /* rcv interface */ - int32_t len; /* total packet length */ -}; - -/* - * Description of external storage mapped into mbuf; valid only if M_EXT is set. - */ -struct m_ext { - caddr_t ext_buf; /* start of buffer */ - void (*ext_free) /* free routine if not the usual */ - (caddr_t, u_int); - u_int ext_size; /* size of buffer, for ext_free */ - void (*ext_ref) /* add a reference to the ext object */ - (caddr_t, u_int); -}; - -/* - * The core of the mbuf object along with some shortcut defines for - * practical purposes. - */ -struct mbuf { - struct m_hdr m_hdr; - union { - struct { - struct pkthdr MH_pkthdr; /* M_PKTHDR set */ - union { - struct m_ext MH_ext; /* M_EXT set */ - char MH_databuf[MHLEN]; - } MH_dat; - } MH; - char M_databuf[MLEN]; /* !M_PKTHDR, !M_EXT */ - } M_dat; -}; -#define m_next m_hdr.mh_next -#define m_len m_hdr.mh_len -#define m_data m_hdr.mh_data -#define m_type m_hdr.mh_type -#define m_flags m_hdr.mh_flags -#define m_nextpkt m_hdr.mh_nextpkt -#define m_act m_nextpkt -#define m_pkthdr M_dat.MH.MH_pkthdr -#define m_ext M_dat.MH.MH_dat.MH_ext -#define m_pktdat M_dat.MH.MH_dat.MH_databuf -#define m_dat M_dat.M_databuf - -/* - * mbuf flags. - */ -#define M_EXT 0x0001 /* has associated external storage */ -#define M_PKTHDR 0x0002 /* start of record */ -#define M_EOR 0x0004 /* end of record */ -#define M_PROTO1 0x0008 /* protocol-specific */ - -/* - * mbuf pkthdr flags (also stored in m_flags). - */ -#define M_BCAST 0x0100 /* send/received as link-level broadcast */ -#define M_MCAST 0x0200 /* send/received as link-level multicast */ - -/* - * Flags copied when copying m_pkthdr. - */ -#define M_COPYFLAGS (M_PKTHDR|M_EOR|M_PROTO1|M_BCAST|M_MCAST) - -/* - * mbuf types. - */ -#define MT_FREE 0 /* should be on free list */ -#define MT_DATA 1 /* dynamic (data) allocation */ -#define MT_HEADER 2 /* packet header */ -#define MT_SOCKET 3 /* socket structure */ -#define MT_PCB 4 /* protocol control block */ -#define MT_RTABLE 5 /* routing tables */ -#define MT_HTABLE 6 /* IMP host tables */ -#define MT_ATABLE 7 /* address resolution tables */ -#define MT_SONAME 8 /* socket name */ -#define MT_SOOPTS 10 /* socket options */ -#define MT_FTABLE 11 /* fragment reassembly header */ -#define MT_RIGHTS 12 /* access rights */ -#define MT_IFADDR 13 /* interface address */ -#define MT_CONTROL 14 /* extra-data protocol message */ -#define MT_OOBDATA 15 /* expedited data */ - -/* - * General mbuf allocator statistics structure. - */ -struct mbstat { - u_long m_mbufs; /* mbufs obtained from page pool */ - u_long m_clusters; /* clusters obtained from page pool */ - u_long m_spare; /* spare field */ - u_long m_clfree; /* free clusters */ - u_long m_drops; /* times failed to find space */ - u_long m_wait; /* times waited for space */ - u_long m_drain; /* times drained protocols for space */ - u_short m_mtypes[256]; /* type specific mbuf allocations */ -}; - - -/* flags to m_get/MGET */ -#define M_DONTWAIT M_NOWAIT -#define M_WAIT M_WAITOK - -/* Freelists: - * - * Normal mbuf clusters are normally treated as character arrays - * after allocation, but use the first word of the buffer as a free list - * pointer while on the free list. - */ -union mcluster { - union mcluster *mcl_next; - char mcl_buf[MCLBYTES]; -}; - -/* - * mbuf utility macros: - * - * MBUFLOCK(code) - * prevents a section of code from from being interrupted by network - * drivers. - */ -#define MBUFLOCK(code) \ - { int ms = splimp(); \ - { code } \ - splx(ms); \ - } - -/* - * mbuf allocation/deallocation macros: - * - * MGET(struct mbuf *m, int how, int type) - * allocates an mbuf and initializes it to contain internal data. - * - * MGETHDR(struct mbuf *m, int how, int type) - * allocates an mbuf and initializes it to contain a packet header - * and internal data. - */ -#define MGET(m, how, type) { \ - int _ms = splimp(); \ - if (mmbfree == 0) \ - (void)m_mballoc(1, (how)); \ - if (((m) = mmbfree) != 0) { \ - mmbfree = (m)->m_next; \ - mbstat.m_mtypes[MT_FREE]--; \ - (m)->m_type = (type); \ - mbstat.m_mtypes[type]++; \ - (m)->m_next = (struct mbuf *)NULL; \ - (m)->m_nextpkt = (struct mbuf *)NULL; \ - (m)->m_data = (m)->m_dat; \ - (m)->m_flags = 0; \ - splx(_ms); \ - } else { \ - splx(_ms); \ - (m) = m_retry((how), (type)); \ - } \ -} - -#define MGETHDR(m, how, type) { \ - int _ms = splimp(); \ - if (mmbfree == 0) \ - (void)m_mballoc(1, (how)); \ - if (((m) = mmbfree) != 0) { \ - mmbfree = (m)->m_next; \ - mbstat.m_mtypes[MT_FREE]--; \ - (m)->m_type = (type); \ - mbstat.m_mtypes[type]++; \ - (m)->m_next = (struct mbuf *)NULL; \ - (m)->m_nextpkt = (struct mbuf *)NULL; \ - (m)->m_data = (m)->m_pktdat; \ - (m)->m_flags = M_PKTHDR; \ - splx(_ms); \ - } else { \ - splx(_ms); \ - (m) = m_retryhdr((how), (type)); \ - } \ -} - -/* - * Mbuf cluster macros. - * MCLALLOC(caddr_t p, int how) allocates an mbuf cluster. - * MCLGET adds such clusters to a normal mbuf; - * the flag M_EXT is set upon success. - * MCLFREE releases a reference to a cluster allocated by MCLALLOC, - * freeing the cluster if the reference count has reached 0. - */ -#define MCLALLOC(p, how) \ - MBUFLOCK( \ - if (mclfree == 0) \ - (void)m_clalloc(1, (how)); \ - if (((p) = (caddr_t)mclfree) != 0) { \ - ++mclrefcnt[mtocl(p)]; \ - mbstat.m_clfree--; \ - mclfree = ((union mcluster *)(p))->mcl_next; \ - } \ - ) - -#define MCLGET(m, how) \ - { MCLALLOC((m)->m_ext.ext_buf, (how)); \ - if ((m)->m_ext.ext_buf != NULL) { \ - (m)->m_data = (m)->m_ext.ext_buf; \ - (m)->m_flags |= M_EXT; \ - (m)->m_ext.ext_free = NULL; \ - (m)->m_ext.ext_ref = NULL; \ - (m)->m_ext.ext_size = MCLBYTES; \ - } \ - } - -#define MCLFREE(p) \ - MBUFLOCK ( \ - if (--mclrefcnt[mtocl(p)] == 0) { \ - ((union mcluster *)(p))->mcl_next = mclfree; \ - mclfree = (union mcluster *)(p); \ - mbstat.m_clfree++; \ - } \ - ) - -/* - * MFREE(struct mbuf *m, struct mbuf *n) - * Free a single mbuf and associated external storage. - * Place the successor, if any, in n. - */ -#define MFREE(m, n) \ - MBUFLOCK( \ - mbstat.m_mtypes[(m)->m_type]--; \ - if ((m)->m_flags & M_EXT) { \ - if ((m)->m_ext.ext_free) \ - (*((m)->m_ext.ext_free))((m)->m_ext.ext_buf, \ - (m)->m_ext.ext_size); \ - else { \ - char *p = (m)->m_ext.ext_buf; \ - if (--mclrefcnt[mtocl(p)] == 0) { \ - ((union mcluster *)(p))->mcl_next = mclfree; \ - mclfree = (union mcluster *)(p); \ - mbstat.m_clfree++; \ - } \ - } \ - } \ - (n) = (m)->m_next; \ - (m)->m_type = MT_FREE; \ - mbstat.m_mtypes[MT_FREE]++; \ - (m)->m_next = mmbfree; \ - mmbfree = (m); \ - ) - -/* - * Copy mbuf pkthdr from from to to. - * from must have M_PKTHDR set, and to must be empty. - */ -#define M_COPY_PKTHDR(to, from) { \ - (to)->m_pkthdr = (from)->m_pkthdr; \ - (to)->m_flags = (from)->m_flags & M_COPYFLAGS; \ - (to)->m_data = (to)->m_pktdat; \ -} - -/* - * Set the m_data pointer of a newly-allocated mbuf (m_get/MGET) to place - * an object of the specified size at the end of the mbuf, longword aligned. - */ -#define M_ALIGN(m, len) do { \ - (m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1); \ -} while (0) - -/* - * As above, for mbufs allocated with m_gethdr/MGETHDR - * or initialized by M_COPY_PKTHDR. - */ -#define MH_ALIGN(m, len) do { \ - (m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1); \ -} while (0) - -/* - * Compute the amount of space available - * before the current start of data in an mbuf. - */ -#define M_LEADINGSPACE(m) \ - ((m)->m_flags & M_EXT ? /* (m)->m_data - (m)->m_ext.ext_buf */ 0 : \ - (m)->m_flags & M_PKTHDR ? (m)->m_data - (m)->m_pktdat : \ - (m)->m_data - (m)->m_dat) - -/* - * Compute the amount of space available - * after the end of data in an mbuf. - */ -#define M_TRAILINGSPACE(m) \ - ((m)->m_flags & M_EXT ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size - \ - ((m)->m_data + (m)->m_len) : \ - &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len)) - -/* - * Arrange to prepend space of size plen to mbuf m. - * If a new mbuf must be allocated, how specifies whether to wait. - * If how is M_DONTWAIT and allocation fails, the original mbuf chain - * is freed and m is set to NULL. - */ -#define M_PREPEND(m, plen, how) { \ - if (M_LEADINGSPACE(m) >= (plen)) { \ - (m)->m_data -= (plen); \ - (m)->m_len += (plen); \ - } else \ - (m) = m_prepend((m), (plen), (how)); \ - if ((m) && (m)->m_flags & M_PKTHDR) \ - (m)->m_pkthdr.len += (plen); \ -} - -/* - * Change mbuf to new type. - * This is a relatively expensive operation and should be avoided. - */ -#define MCHTYPE(m, t) { \ - MBUFLOCK(mbstat.m_mtypes[(m)->m_type]--; mbstat.m_mtypes[t]++;) \ - (m)->m_type = t;\ -} - -/* Length to m_copy to copy all. */ -#define M_COPYALL (uint32_t)1000000000L - -/* Compatibility with 4.3. */ -#define m_copy(m, o, l) m_copym((m), (o), (l), M_DONTWAIT) - -#ifdef _KERNEL -extern struct mbuf *mbutl; /* virtual address of mclusters */ -extern char *mclrefcnt; /* cluster reference counts */ -extern struct mbstat mbstat; -extern uint32_t nmbclusters; -extern uint32_t nmbufs; -extern struct mbuf *mmbfree; -extern union mcluster *mclfree; -extern int max_linkhdr; /* largest link-level header */ -extern int max_protohdr; /* largest protocol header */ -extern int max_hdr; /* largest link+protocol header */ -extern int max_datalen; /* MHLEN - max_hdr */ - -struct mbuf *m_copym(struct mbuf *, int, uint32_t, int); -struct mbuf *m_copypacket(struct mbuf *, int); -struct mbuf *m_devget(char *, int, int, struct ifnet *, - void (*copy)(char *, caddr_t, u_int)); -struct mbuf *m_free(struct mbuf *); -struct mbuf *m_get(int, int); -struct mbuf *m_getclr(int, int); -struct mbuf *m_gethdr(int, int); -struct mbuf *m_prepend(struct mbuf *,int,int); -struct mbuf *m_pullup(struct mbuf *, int); -struct mbuf *m_retry(int, int); -struct mbuf *m_retryhdr(int, int); -struct mbuf *m_split(struct mbuf *,int,int); -void m_adj(struct mbuf *, int); -void m_cat(struct mbuf *,struct mbuf *); -int m_mballoc(int, int); -int m_clalloc(int, int); -int m_copyback(struct mbuf *, int, int, caddr_t); -int m_copydata(const struct mbuf *, int, int, caddr_t); -void m_freem(struct mbuf *); -void m_reclaim(void); - -#endif /* _KERNEL */ - -#endif /* !_SYS_MBUF_H_ */ diff --git a/cpukit/libnetworking/sys/mount.h b/cpukit/libnetworking/sys/mount.h deleted file mode 100644 index c422c7f8c4..0000000000 --- a/cpukit/libnetworking/sys/mount.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 1989, 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)mount.h 8.21 (Berkeley) 5/20/95 - * $FreeBSD: src/sys/sys/mount.h,v 1.198 2005/08/06 01:42:04 ssouhlal Exp $ - */ - - -#ifndef _SYS_MOUNT_H_ -#define _SYS_MOUNT_H_ - -#ifndef _KERNEL -#include <sys/ucred.h> -#endif -#include <sys/queue.h> - -typedef struct fsid { int32_t val[2]; } fsid_t; /* filesystem id type */ - -/* - * File identifier. - * These are unique per filesystem on a single machine. - */ -#define MAXFIDSZ 16 - -struct fid { - u_short fid_len; /* length of data in bytes */ - u_short fid_reserved; /* force longword alignment */ - char fid_data[MAXFIDSZ]; /* data (variable length) */ -}; - -/* - * filesystem statistics - */ -#define MFSNAMELEN 16 /* length of type name including null */ -#define MNAMELEN 88 /* size of on/from name bufs */ - -/* - * User specifiable flags. - */ -#define MNT_RDONLY 0x00000001 /* read only filesystem */ -#define MNT_SYNCHRONOUS 0x00000002 /* filesystem written synchronously */ -#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */ -#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */ -#define MNT_NODEV 0x00000010 /* don't interpret special files */ -#define MNT_UNION 0x00000020 /* union with underlying filesystem */ -#define MNT_ASYNC 0x00000040 /* filesystem written asynchronously */ -#define MNT_NOATIME 0x10000000 /* disable update of file access time */ - -/* - * NFS export related mount flags. - */ -#define MNT_EXRDONLY 0x00000080 /* exported read only */ -#define MNT_EXPORTED 0x00000100 /* filesystem is exported */ -#define MNT_DEFEXPORTED 0x00000200 /* exported to the world */ -#define MNT_EXPORTANON 0x00000400 /* use anon uid mapping for everyone */ -#define MNT_EXKERB 0x00000800 /* exported with Kerberos uid mapping */ -#define MNT_EXPUBLIC 0x20000000 /* public export (WebNFS) */ - -/* - * Flags set by internal operations, - * but visible to the user. - */ -#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */ -#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */ -#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */ -#define MNT_USER 0x00008000 /* mounted by a user */ -#define MNT_IGNORE 0x00800000 /* do not show entry in df */ - -/* - * External filesystem command modifier flags. - * Unmount can use the MNT_FORCE flag. - */ -#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */ -#define MNT_DELEXPORT 0x00020000 /* delete export host lists */ -#define MNT_RELOAD 0x00040000 /* reload filesystem data */ -#define MNT_FORCE 0x00080000 /* force unmount or readonly change */ - -/* - * Generic file handle - */ -struct fhandle { - fsid_t fh_fsid; /* Filesystem id of mount point */ - struct fid fh_fid; /* Filesys specific id */ -}; -typedef struct fhandle fhandle_t; - -#ifdef _KERNEL - -#else /* !_KERNEL */ - -#include <sys/cdefs.h> - -#endif /* _KERNEL */ - -#endif /* !_SYS_MOUNT_H_ */ diff --git a/cpukit/libnetworking/sys/proc.h b/cpukit/libnetworking/sys/proc.h deleted file mode 100644 index 8b8b7dc1b9..0000000000 --- a/cpukit/libnetworking/sys/proc.h +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Dummy structure - */ -struct proc { - int this_should_never_be_referenced; -}; diff --git a/cpukit/libnetworking/sys/protosw.h b/cpukit/libnetworking/sys/protosw.h deleted file mode 100644 index e1119f9378..0000000000 --- a/cpukit/libnetworking/sys/protosw.h +++ /dev/null @@ -1,300 +0,0 @@ -/*- - * Copyright (c) 1982, 1986, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)protosw.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/protosw.h,v 1.43 2004/04/07 04:19:49 imp Exp $ - */ - -#ifndef _SYS_PROTOSW_H_ -#define _SYS_PROTOSW_H_ - -/* Forward declare these structures referenced from prototypes below. */ -struct mbuf; -struct sockaddr; -struct socket; -struct sockproto; -struct stat; - -/* - * Protocol switch table. - * - * Each protocol has a handle initializing one of these structures, - * which is used for protocol-protocol and system-protocol communication. - * - * A protocol is called through the pr_init entry before any other. - * Thereafter it is called every 200ms through the pr_fasttimo entry and - * every 500ms through the pr_slowtimo for timer based actions. - * The system will call the pr_drain entry if it is low on space and - * this should throw away any non-critical data. - * - * Protocols pass data between themselves as chains of mbufs using - * the pr_input and pr_output hooks. Pr_input passes data up (towards - * UNIX) and pr_output passes it down (towards the imps); control - * information passes up and down on pr_ctlinput and pr_ctloutput. - * The protocol is responsible for the space occupied by any the - * arguments to these entries and must dispose it. - * - * The userreq routine interfaces protocols to the system and is - * described below. - */ -struct protosw { - short pr_type; /* socket type used for */ - struct domain *pr_domain; /* domain protocol a member of */ - short pr_protocol; /* protocol number */ - short pr_flags; /* see below */ -/* protocol-protocol hooks */ - void (*pr_input)(struct mbuf *, int len); - /* input to protocol (from below) */ - int (*pr_output)(struct mbuf *m, struct socket *so); - /* output to protocol (from above) */ - void (*pr_ctlinput)(int, struct sockaddr *, void *); - /* control input (from below) */ - int (*pr_ctloutput)(int, struct socket *, int, int, - struct mbuf **); - /* control output (from above) */ -/* user-protocol hook */ - int (*pr_ousrreq)(struct socket *, int, struct mbuf *, - struct mbuf *, struct mbuf *); - /* user request: see list below */ -/* utility hooks */ - void (*pr_init)(void); /* initialization hook */ - void (*pr_fasttimo)(void); - /* fast timeout (200ms) */ - void (*pr_slowtimo)(void); - /* slow timeout (500ms) */ - void (*pr_drain)(void); - /* flush any excess space possible */ - struct pr_usrreqs *pr_usrreqs; /* supersedes pr_usrreq() */ -}; - -#define PR_SLOWHZ 2L /* 2 slow timeouts per second */ -#define PR_FASTHZ 5L /* 5 fast timeouts per second */ - -/* - * Values for pr_flags. - * PR_ADDR requires PR_ATOMIC; - * PR_ADDR and PR_CONNREQUIRED are mutually exclusive. - * PR_IMPLOPCL means that the protocol allows sendto without prior connect, - * and the protocol understands the MSG_EOF flag. The first property is - * is only relevant if PR_CONNREQUIRED is set (otherwise sendto is allowed - * anyhow). - */ -#define PR_ATOMIC 0x01 /* exchange atomic messages only */ -#define PR_ADDR 0x02 /* addresses given with messages */ -#define PR_CONNREQUIRED 0x04 /* connection required by protocol */ -#define PR_WANTRCVD 0x08 /* want PRU_RCVD calls */ -#define PR_RIGHTS 0x10 /* passes capabilities */ -#define PR_IMPLOPCL 0x20 /* implied open/close */ -#define PR_LASTHDR 0x40 /* enforce ipsec policy; last header */ - -/* - * The arguments to usrreq are: - * (*protosw[].pr_usrreq)(up, req, m, nam, opt); - * where up is a (struct socket *), req is one of these requests, - * m is an optional mbuf chain containing a message, - * nam is an optional mbuf chain containing an address, - * and opt is a pointer to a socketopt structure or nil. - * The protocol is responsible for disposal of the mbuf chain m, - * the caller is responsible for any space held by nam and opt. - * A non-zero return from usrreq gives an - * UNIX error number which should be passed to higher level software. - */ -#define PRU_ATTACH 0 /* attach protocol to up */ -#define PRU_DETACH 1 /* detach protocol from up */ -#define PRU_BIND 2 /* bind socket to address */ -#define PRU_LISTEN 3 /* listen for connection */ -#define PRU_CONNECT 4 /* establish connection to peer */ -#define PRU_ACCEPT 5 /* accept connection from peer */ -#define PRU_DISCONNECT 6 /* disconnect from peer */ -#define PRU_SHUTDOWN 7 /* won't send any more data */ -#define PRU_RCVD 8 /* have taken data; more room now */ -#define PRU_SEND 9 /* send this data */ -#define PRU_ABORT 10 /* abort (fast DISCONNECT, DETATCH) */ -#define PRU_CONTROL 11 /* control operations on protocol */ -#define PRU_SENSE 12 /* return status into m */ -#define PRU_RCVOOB 13 /* retrieve out of band data */ -#define PRU_SENDOOB 14 /* send out of band data */ -#define PRU_SOCKADDR 15 /* fetch socket's address */ -#define PRU_PEERADDR 16 /* fetch peer's address */ -#define PRU_CONNECT2 17 /* connect two sockets */ -/* begin for protocols internal use */ -#define PRU_FASTTIMO 18 /* 200ms timeout */ -#define PRU_SLOWTIMO 19 /* 500ms timeout */ -#define PRU_PROTORCV 20 /* receive from below */ -#define PRU_PROTOSEND 21 /* send to below */ -/* end for protocol's internal use */ -#define PRU_SEND_EOF 22 /* send and close */ -#define PRU_NREQ 22 - -#ifdef PRUREQUESTS -const char *prurequests[] = { - "ATTACH", "DETACH", "BIND", "LISTEN", - "CONNECT", "ACCEPT", "DISCONNECT", "SHUTDOWN", - "RCVD", "SEND", "ABORT", "CONTROL", - "SENSE", "RCVOOB", "SENDOOB", "SOCKADDR", - "PEERADDR", "CONNECT2", "FASTTIMO", "SLOWTIMO", - "PROTORCV", "PROTOSEND", - "SEND_EOF", -}; -#endif - -#ifdef _KERNEL /* users shouldn't see this decl */ -struct stat; -struct ifnet; - -/* - * If the ordering here looks odd, that's because it's alphabetical. - */ -struct pr_usrreqs { - int (*pru_abort)(struct socket *so); - int (*pru_accept)(struct socket *so, struct mbuf *nam); - int (*pru_attach)(struct socket *so, intptr_t proto); - int (*pru_bind)(struct socket *so, struct mbuf *nam); - int (*pru_connect)(struct socket *so, struct mbuf *nam); - int (*pru_connect2)(struct socket *so1, struct socket *so2); - int (*pru_control)(struct socket *so, intptr_t cmd, caddr_t data, - struct ifnet *ifp); - int (*pru_detach)(struct socket *so); - int (*pru_disconnect)(struct socket *so); - int (*pru_listen)(struct socket *so); - int (*pru_peeraddr)(struct socket *so, struct mbuf *nam); - int (*pru_rcvd)(struct socket *so, intptr_t flags); - int (*pru_rcvoob)(struct socket *so, struct mbuf *m, - intptr_t flags); - /* - * The `m' parameter here is almost certainly going to become a - * `struct uio' at some point in the future. Similar changes - * will probably happen for the receive entry points. - */ - int (*pru_send)(struct socket *so, int flags, struct mbuf *m, - struct mbuf *addr, struct mbuf *control); -#define PRUS_OOB 0x1 -#define PRUS_EOF 0x2 - int (*pru_sense)(struct socket *so, struct stat *sb); - int (*pru_shutdown)(struct socket *so); - int (*pru_sockaddr)(struct socket *so, struct mbuf *nam); -}; - -int pru_accept_notsupp(struct socket *so, struct mbuf *nam); -int pru_connect2_notsupp(struct socket *so1, struct socket *so2); -int pru_control_notsupp(struct socket *so, int cmd, caddr_t data, - struct ifnet *ifp); -int pru_listen_notsupp(struct socket *so); -int pru_rcvd_notsupp(struct socket *so, int flags); -int pru_rcvoob_notsupp(struct socket *so, struct mbuf *m, int flags); -int pru_sense_null(struct socket *so, struct stat *sb); - -#define PRU_OLDSTYLE - -#ifdef PRU_OLDSTYLE -/* - * Protocols which don't yet implement pr_usrreqs can point it to this - * structure, which will call the old pr_usrreq() entry point with the - * appropriate arguments. - */ -extern struct pr_usrreqs pru_oldstyle; -#endif /* PRU_OLDSTYLE */ - -#endif /* _KERNEL */ - -/* - * The arguments to the ctlinput routine are - * (*protosw[].pr_ctlinput)(cmd, sa, arg); - * where cmd is one of the commands below, sa is a pointer to a sockaddr, - * and arg is a `void *' argument used within a protocol family. - */ -#define PRC_IFDOWN 0 /* interface transition */ -#define PRC_ROUTEDEAD 1 /* select new route if possible ??? */ -#define PRC_IFUP 2 /* interface has come back up */ -#define PRC_QUENCH2 3 /* DEC congestion bit says slow down */ -#define PRC_QUENCH 4 /* some one said to slow down */ -#define PRC_MSGSIZE 5 /* message size forced drop */ -#define PRC_HOSTDEAD 6 /* host appears to be down */ -#define PRC_HOSTUNREACH 7 /* deprecated (use PRC_UNREACH_HOST) */ -#define PRC_UNREACH_NET 8 /* no route to network */ -#define PRC_UNREACH_HOST 9 /* no route to host */ -#define PRC_UNREACH_PROTOCOL 10 /* dst says bad protocol */ -#define PRC_UNREACH_PORT 11 /* bad port # */ -/* was PRC_UNREACH_NEEDFRAG 12 (use PRC_MSGSIZE) */ -#define PRC_UNREACH_SRCFAIL 13 /* source route failed */ -#define PRC_REDIRECT_NET 14 /* net routing redirect */ -#define PRC_REDIRECT_HOST 15 /* host routing redirect */ -#define PRC_REDIRECT_TOSNET 16 /* redirect for type of service & net */ -#define PRC_REDIRECT_TOSHOST 17 /* redirect for tos & host */ -#define PRC_TIMXCEED_INTRANS 18 /* packet lifetime expired in transit */ -#define PRC_TIMXCEED_REASS 19 /* lifetime expired on reass q */ -#define PRC_PARAMPROB 20 /* header incorrect */ -#define PRC_UNREACH_ADMIN_PROHIB 21 /* packet administrativly prohibited */ - -#define PRC_NCMDS 22 - -#define PRC_IS_REDIRECT(cmd) \ - ((cmd) >= PRC_REDIRECT_NET && (cmd) <= PRC_REDIRECT_TOSHOST) - -#ifdef PRCREQUESTS -char *prcrequests[] = { - "IFDOWN", "ROUTEDEAD", "IFUP", "DEC-BIT-QUENCH2", - "QUENCH", "MSGSIZE", "HOSTDEAD", "#7", - "NET-UNREACH", "HOST-UNREACH", "PROTO-UNREACH", "PORT-UNREACH", - "#12", "SRCFAIL-UNREACH", "NET-REDIRECT", "HOST-REDIRECT", - "TOSNET-REDIRECT", "TOSHOST-REDIRECT", "TX-INTRANS", "TX-REASS", - "PARAMPROB", "ADMIN-UNREACH" -}; -#endif - -/* - * The arguments to ctloutput are: - * (*protosw[].pr_ctloutput)(req, so, level, optname, optval); - * req is one of the actions listed below, so is a (struct socket *), - * level is an indication of which protocol layer the option is intended. - * optname is a protocol dependent socket option request, - * optval is a pointer to a mbuf-chain pointer, for value-return results. - * The protocol is responsible for disposal of the mbuf chain *optval - * if supplied, - * the caller is responsible for any space held by *optval, when returned. - * A non-zero return from usrreq gives an - * UNIX error number which should be passed to higher level software. - */ -#define PRCO_GETOPT 0 -#define PRCO_SETOPT 1 - -#define PRCO_NCMDS 2 - -#ifdef PRCOREQUESTS -char *prcorequests[] = { - "GETOPT", "SETOPT", -}; -#endif - -#ifdef _KERNEL -void pfctlinput(int, struct sockaddr *); -struct protosw *pffindproto(int family, int protocol, int type); -struct protosw *pffindtype(int family, int type); -#endif - -#endif diff --git a/cpukit/libnetworking/sys/reboot.h b/cpukit/libnetworking/sys/reboot.h deleted file mode 100644 index 191f3a477a..0000000000 --- a/cpukit/libnetworking/sys/reboot.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 1982, 1986, 1988, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)reboot.h 8.3 (Berkeley) 12/13/94 - */ - -#ifndef _SYS_REBOOT_H_ -#define _SYS_REBOOT_H_ - -/* - * Arguments to reboot system call. These are passed to - * the boot program and on to init. - */ -#define RB_AUTOBOOT 0 /* flags for system auto-booting itself */ - -#define RB_ASKNAME 0x001 /* ask for file name to reboot from */ -#define RB_SINGLE 0x002 /* reboot to single user only */ -#define RB_NOSYNC 0x004 /* dont sync before reboot */ -#define RB_HALT 0x008 /* don't reboot, just halt */ -#define RB_INITNAME 0x010 /* name given for /etc/init (unused) */ -#define RB_DFLTROOT 0x020 /* use compiled-in rootdev */ -#define RB_KDB 0x040 /* give control to kernel debugger */ -#define RB_RDONLY 0x080 /* mount root fs read-only */ -#define RB_DUMP 0x100 /* dump kernel memory before reboot */ -#define RB_MINIROOT 0x200 /* mini-root present in memory at boot time */ -#define RB_CONFIG 0x400 /* invoke user configuration routing */ -#define RB_VERBOSE 0x800 /* print all potentially useful info */ -#define RB_SERIAL 0x1000 /* user serial port as console */ -#define RB_CDROM 0x2000 /* use cdrom as root */ -#define RB_POWEROFF 0x4000 /* if you can, turn the power off */ -#define RB_GDB 0x8000 /* use GDB remote debugger instead of DDB */ -#define RB_MUTE 0x10000 /* Come up with the console muted */ -#define RB_SELFTEST 0x20000 /* don't boot to normal operation, do selftest */ - -#define RB_BOOTINFO 0x80000000 /* have `struct bootinfo *' arg */ - -/* - * Constants for converting boot-style device number to type, - * adaptor (uba, mba, etc), unit number and partition number. - * Type (== major device number) is in the low byte - * for backward compatibility. Except for that of the "magic - * number", each mask applies to the shifted value. - * Format: - * (4) (4) (4) (4) (8) (8) - * -------------------------------- - * |MA | AD| CT| UN| PART | TYPE | - * -------------------------------- - */ -#define B_ADAPTORSHIFT 24 -#define B_ADAPTORMASK 0x0f -#define B_ADAPTOR(val) (((val) >> B_ADAPTORSHIFT) & B_ADAPTORMASK) -#define B_CONTROLLERSHIFT 20 -#define B_CONTROLLERMASK 0xf -#define B_CONTROLLER(val) (((val)>>B_CONTROLLERSHIFT) & B_CONTROLLERMASK) -#define B_SLICESHIFT 20 -#define B_SLICEMASK 0xff -#define B_SLICE(val) (((val)>>B_SLICESHIFT) & B_SLICEMASK) -#define B_UNITSHIFT 16 -#define B_UNITMASK 0xf -#define B_UNIT(val) (((val) >> B_UNITSHIFT) & B_UNITMASK) -#define B_PARTITIONSHIFT 8 -#define B_PARTITIONMASK 0xff -#define B_PARTITION(val) (((val) >> B_PARTITIONSHIFT) & B_PARTITIONMASK) -#define B_TYPESHIFT 0 -#define B_TYPEMASK 0xff -#define B_TYPE(val) (((val) >> B_TYPESHIFT) & B_TYPEMASK) - -#define B_MAGICMASK 0xf0000000 -#define B_DEVMAGIC 0xa0000000 - -#define MAKEBOOTDEV(type, adaptor, controller, unit, partition) \ - (((type) << B_TYPESHIFT) | ((adaptor) << B_ADAPTORSHIFT) | \ - ((controller) << B_CONTROLLERSHIFT) | ((unit) << B_UNITSHIFT) | \ - ((partition) << B_PARTITIONSHIFT) | B_DEVMAGIC) - -#endif diff --git a/cpukit/libnetworking/sys/resourcevar.h b/cpukit/libnetworking/sys/resourcevar.h deleted file mode 100644 index 87fc20463c..0000000000 --- a/cpukit/libnetworking/sys/resourcevar.h +++ /dev/null @@ -1 +0,0 @@ -/* intentionally empty file */ diff --git a/cpukit/libnetworking/sys/selinfo.h b/cpukit/libnetworking/sys/selinfo.h deleted file mode 100644 index 68ec92a6a3..0000000000 --- a/cpukit/libnetworking/sys/selinfo.h +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)select.h 8.2 (Berkeley) 1/4/94 - */ - -#ifndef _SYS_SELINFO_H_ -#define _SYS_SELINFO_H_ - -#include <sys/types.h> /* pid_t */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Used to maintain information about processes that wish to be - * notified when I/O becomes possible. - */ -struct selinfo { - pid_t si_pid; /* process to be notified */ - short si_flags; /* see below */ -}; -#define SI_COLL 0x0001 /* collision occurred */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_SYS_SELINFO_H_ */ diff --git a/cpukit/libnetworking/sys/signalvar.h b/cpukit/libnetworking/sys/signalvar.h deleted file mode 100644 index c2311cf05a..0000000000 --- a/cpukit/libnetworking/sys/signalvar.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)signalvar.h 8.6 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/signalvar.h,v 1.91 2010/07/08 19:15:26 jhb Exp $ - */ - - -#ifndef _SYS_SIGNALVAR_H_ -#define _SYS_SIGNALVAR_H_ - -/* - * Kernel signal definitions and data structures, - * not exported to user programs. - */ - -#if !defined(__rtems__) -/* - * Process signal actions and state, needed only within the process - * (not necessarily resident). - */ -struct sigacts { - sig_t ps_sigact[NSIG]; /* disposition of signals */ - sigset_t ps_catchmask[NSIG]; /* signals to be blocked */ - sigset_t ps_sigonstack; /* signals to take on sigstack */ - sigset_t ps_sigintr; /* signals that interrupt syscalls */ - sigset_t ps_sigreset; /* signals that reset when caught */ - sigset_t ps_signodefer; /* signals not masked while handled */ - sigset_t ps_oldmask; /* saved mask from before sigpause */ - int ps_flags; /* signal flags, below */ - struct sigaltstack ps_sigstk; /* sp & on stack state variable */ - int ps_sig; /* for core dump/debugger XXX */ - u_long ps_code; /* for core dump/debugger XXX */ - sigset_t ps_usertramp; /* SunOS compat; libc sigtramp XXX */ -}; -#endif - -/* signal flags */ -#define SAS_OLDMASK 0x01 /* need to restore mask before pause */ -#define SAS_ALTSTACK 0x02 /* have alternate signal stack */ - -/* additional signal action values, used only temporarily/internally */ -#define SIG_CATCH ((__sighandler_t *)2) -#define SIG_HOLD ((__sighandler_t *)3) - -#if !defined(__rtems__) -/* - * get signal action for process and signal; currently only for current process - */ -#define SIGACTION(p, sig) (p->p_sigacts->ps_sigact[(sig)]) -#endif - -/* - * Determine signal that should be delivered to process p, the current - * process, 0 if none. If there is a pending stop signal with default - * action, the process stops in issignal(). - */ -#define CURSIG(p) \ - (((p)->p_siglist == 0 || \ - (((p)->p_flag & P_TRACED) == 0 && \ - ((p)->p_siglist & ~(p)->p_sigmask) == 0)) ? \ - 0 : issignal(p)) - -/* - * Clear a pending signal from a process. - */ -#define CLRSIG(p, sig) { (p)->p_siglist &= ~sigmask(sig); } - -/* - * Signal properties and actions. - * The array below categorizes the signals and their default actions - * according to the following properties: - */ -#define SA_KILL 0x01 /* terminates process by default */ -#define SA_CORE 0x02 /* ditto and coredumps */ -#define SA_STOP 0x04 /* suspend process */ -#define SA_TTYSTOP 0x08 /* ditto, from tty */ -#define SA_IGNORE 0x10 /* ignore by default */ -#define SA_CONT 0x20 /* continue if suspended */ -#define SA_CANTMASK 0x40 /* non-maskable, catchable */ - -#ifdef SIGPROP -static int sigprop[NSIG + 1] = { - 0, /* unused */ - SA_KILL, /* SIGHUP */ - SA_KILL, /* SIGINT */ - SA_KILL|SA_CORE, /* SIGQUIT */ - SA_KILL|SA_CORE, /* SIGILL */ - SA_KILL|SA_CORE, /* SIGTRAP */ - SA_KILL|SA_CORE, /* SIGABRT */ - SA_KILL|SA_CORE, /* SIGEMT */ - SA_KILL|SA_CORE, /* SIGFPE */ - SA_KILL, /* SIGKILL */ - SA_KILL|SA_CORE, /* SIGBUS */ - SA_KILL|SA_CORE, /* SIGSEGV */ - SA_KILL|SA_CORE, /* SIGSYS */ - SA_KILL, /* SIGPIPE */ - SA_KILL, /* SIGALRM */ - SA_KILL, /* SIGTERM */ - SA_IGNORE, /* SIGURG */ - SA_STOP, /* SIGSTOP */ - SA_STOP|SA_TTYSTOP, /* SIGTSTP */ - SA_IGNORE|SA_CONT, /* SIGCONT */ - SA_IGNORE, /* SIGCHLD */ - SA_STOP|SA_TTYSTOP, /* SIGTTIN */ - SA_STOP|SA_TTYSTOP, /* SIGTTOU */ - SA_IGNORE, /* SIGIO */ - SA_KILL, /* SIGXCPU */ - SA_KILL, /* SIGXFSZ */ - SA_KILL, /* SIGVTALRM */ - SA_KILL, /* SIGPROF */ - SA_IGNORE, /* SIGWINCH */ - SA_IGNORE, /* SIGINFO */ - SA_KILL, /* SIGUSR1 */ - SA_KILL, /* SIGUSR2 */ -}; - -#define contsigmask (sigmask(SIGCONT)) -#define stopsigmask (sigmask(SIGSTOP) | sigmask(SIGTSTP) | \ - sigmask(SIGTTIN) | sigmask(SIGTTOU)) - -#endif /* SIGPROP */ - -#define sigcantmask (sigmask(SIGKILL) | sigmask(SIGSTOP)) - -#ifdef _KERNEL -/* - * Machine-independent functions: - */ -void execsigs(struct proc *p); -void gsignal(int pgid, int sig); -int issignal(struct proc *p); -void killproc(struct proc *p, char *why); -void pgsignal(struct pgrp *pgrp, int sig, int checkctty); -void postsig(int sig); -#ifndef __rtems__ -/* clashes with psignal(3) */ -void psignal(struct proc *p, int sig); -#endif -void setsigvec(struct proc *p, int signum, struct sigaction *sa); -void sigexit(struct proc *p, int signum); -void siginit(struct proc *p); -void trapsignal(struct proc *p, int sig, u_long code); - -/* - * Machine-dependent functions: - */ -void sendsig(sig_t action, int sig, int returnmask, u_long code); -#endif /* _KERNEL */ - -#endif /* !_SYS_SIGNALVAR_H_ */ diff --git a/cpukit/libnetworking/sys/socketvar.h b/cpukit/libnetworking/sys/socketvar.h deleted file mode 100644 index 2cdd5158ef..0000000000 --- a/cpukit/libnetworking/sys/socketvar.h +++ /dev/null @@ -1,271 +0,0 @@ -/*- - * Copyright (c) 1982, 1986, 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)socketvar.h 8.3 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/socketvar.h,v 1.135 2004/10/18 22:19:43 rwatson Exp $ - */ - -#ifndef _SYS_SOCKETVAR_H_ -#define _SYS_SOCKETVAR_H_ - -#include <sys/queue.h> /* for TAILQ macros */ -#include <sys/selinfo.h> /* for struct selinfo */ - - -/* - * Kernel structure per socket. - * Contains send and receive buffer queues, - * handle on protocol and pointer to protocol - * private data and error information. - */ -typedef u_quad_t so_gen_t; - -struct socket { - short so_type; /* generic type, see socket.h */ - short so_options; /* from socket call, see socket.h */ - short so_linger; /* time to linger while closing */ - short so_state; /* internal state flags SS_*, below */ - void *so_pcb; /* protocol control block */ - struct protosw *so_proto; /* protocol handle */ -/* - * Variables for connection queuing. - * Socket where accepts occur is so_head in all subsidiary sockets. - * If so_head is 0, socket is not related to an accept. - * For head socket so_q0 queues partially completed connections, - * while so_q is a queue of connections ready to be accepted. - * If a connection is aborted and it has so_head set, then - * it has to be pulled out of either so_q0 or so_q. - * We allow connections to queue up based on current queue lengths - * and limit on number of queued connections for this socket. - */ - struct socket *so_head; /* back pointer to accept socket */ - TAILQ_HEAD(, socket) so_incomp; /* queue of partial unaccepted connections */ - TAILQ_HEAD(, socket) so_comp; /* queue of complete unaccepted connections */ - TAILQ_ENTRY(socket) so_list; /* list of unaccepted connections */ - short so_qlen; /* number of unaccepted connections */ - short so_incqlen; /* number of unaccepted incomplete - connections */ - short so_qlimit; /* max number queued connections */ - short so_timeo; /* connection timeout */ - u_short so_error; /* error affecting connection */ - pid_t so_pgid; /* pgid for signals */ - u_long so_oobmark; /* chars to oob mark */ -/* - * Variables for socket buffering. - */ - struct sockbuf { - u_int sb_cc; /* actual chars in buffer */ - u_int sb_hiwat; /* max actual char count */ - u_int sb_mbcnt; /* chars of mbufs used */ - u_int sb_mbmax; /* max chars of mbufs to use */ - int sb_lowat; /* low water mark */ - struct mbuf *sb_mb; /* the mbuf chain */ - struct selinfo sb_sel; /* process selecting read/write */ - short sb_flags; /* flags, see below */ - int sb_timeo; /* timeout for read/write */ - void (*sb_wakeup)(struct socket *, void *); - void *sb_wakeuparg; /* arg for above */ - } so_rcv, so_snd; -#define SB_MAX (256L*1024L) /* default for max chars in sockbuf */ -#define SB_LOCK 0x01 /* lock on data queue */ -#define SB_WANT 0x02 /* someone is waiting to lock */ -#define SB_WAIT 0x04 /* someone is waiting for data/space */ -#define SB_SEL 0x08 /* someone is selecting */ -#define SB_ASYNC 0x10 /* ASYNC I/O, need signals */ -#define SB_NOTIFY (SB_WAIT|SB_SEL|SB_ASYNC) -#define SB_NOINTR 0x40 /* operations not interruptible */ - - caddr_t so_tpcb; /* Wisc. protocol control block XXX */ - void (*so_upcall)(struct socket *, void *arg, int); - void *so_upcallarg; /* Arg for above */ -}; - -/* - * Socket state bits. - */ -#define SS_NOFDREF 0x0001 /* no file table ref any more */ -#define SS_ISCONNECTED 0x0002 /* socket connected to a peer */ -#define SS_ISCONNECTING 0x0004 /* in process of connecting to peer */ -#define SS_ISDISCONNECTING 0x0008 /* in process of disconnecting */ -#define SS_CANTSENDMORE 0x0010 /* can't send more data to peer */ -#define SS_CANTRCVMORE 0x0020 /* can't receive more data from peer */ -#define SS_RCVATMARK 0x0040 /* at mark on input */ - -#define SS_PRIV 0x0080 /* privileged for broadcast, raw... */ -#define SS_NBIO 0x0100 /* non-blocking ops */ -#define SS_ASYNC 0x0200 /* async i/o notify */ -#define SS_ISCONFIRMING 0x0400 /* deciding to accept connection req */ - -#define SS_INCOMP 0x0800 /* unaccepted, incomplete connection */ -#define SS_COMP 0x1000 /* unaccepted, complete connection */ - - -/* - * Macros for sockets and socket buffering. - */ - -/* - * How much space is there in a socket buffer (so->so_snd or so->so_rcv)? - * This is problematical if the fields are unsigned, as the space might - * still be negative (cc > hiwat or mbcnt > mbmax). Should detect - * overflow and return 0. Should use "lmin" but it doesn't exist now. - */ -#define sbspace(sb) \ - ((long) imin((int)((sb)->sb_hiwat - (sb)->sb_cc), \ - (int)((sb)->sb_mbmax - (sb)->sb_mbcnt))) - -/* do we have to send all at once on a socket? */ -#define sosendallatonce(so) \ - ((so)->so_proto->pr_flags & PR_ATOMIC) - -/* can we read something from so? */ -#define soreadable(so) \ - ((so)->so_rcv.sb_cc >= (so)->so_rcv.sb_lowat || \ - ((so)->so_state & SS_CANTRCVMORE) || \ - (so)->so_comp.tqh_first || (so)->so_error) - -/* can we write something to so? */ -#define sowriteable(so) \ - ((sbspace(&(so)->so_snd) >= (so)->so_snd.sb_lowat && \ - (((so)->so_state&SS_ISCONNECTED) || \ - ((so)->so_proto->pr_flags&PR_CONNREQUIRED)==0)) || \ - ((so)->so_state & SS_CANTSENDMORE) || \ - (so)->so_error) - -/* adjust counters in sb reflecting allocation of m */ -#define sballoc(sb, m) { \ - (sb)->sb_cc += (m)->m_len; \ - (sb)->sb_mbcnt += _SYS_MBUF_LEGACY_MSIZE; \ - if ((m)->m_flags & M_EXT) \ - (sb)->sb_mbcnt += (m)->m_ext.ext_size; \ -} - -/* adjust counters in sb reflecting freeing of m */ -#define sbfree(sb, m) { \ - (sb)->sb_cc -= (m)->m_len; \ - (sb)->sb_mbcnt -= _SYS_MBUF_LEGACY_MSIZE; \ - if ((m)->m_flags & M_EXT) \ - (sb)->sb_mbcnt -= (m)->m_ext.ext_size; \ -} - -/* - * Set lock on sockbuf sb; sleep if lock is already held. - * Unless SB_NOINTR is set on sockbuf, sleep is interruptible. - * Returns error without lock if sleep is interrupted. - */ -#define sblock(sb, wf) ((sb)->sb_flags & SB_LOCK ? \ - (((wf) == M_WAITOK) ? sb_lock(sb) : EWOULDBLOCK) : \ - ((sb)->sb_flags |= SB_LOCK), 0) - -/* release lock on sockbuf sb */ -#define sbunlock(sb) { \ - (sb)->sb_flags &= ~SB_LOCK; \ - if ((sb)->sb_flags & SB_WANT) { \ - (sb)->sb_flags &= ~SB_WANT; \ - wakeup((caddr_t)&(sb)->sb_flags); \ - } \ -} - -#define sorwakeup(so) { sowakeup((so), &(so)->so_rcv); \ - if ((so)->so_upcall) \ - (*((so)->so_upcall))((so), (so)->so_upcallarg, M_DONTWAIT); \ - } - -#define sowwakeup(so) sowakeup((so), &(so)->so_snd) - -#ifdef _KERNEL -extern u_long sb_max; - -/* to catch callers missing new second argument to sonewconn: */ -#define sonewconn(head, connstatus) sonewconn1((head), (connstatus)) - -struct filedesc; -struct mbuf; -struct sockaddr; -struct stat; -struct uio; - -/* - * From uipc_socket and friends - */ -int sockargs(struct mbuf **mp, caddr_t buf, int buflen, int type); -void sbappend(struct sockbuf *sb, struct mbuf *m); -int sbappendaddr(struct sockbuf *sb, struct sockaddr *asa, - struct mbuf *m0, struct mbuf *control); -int sbappendcontrol(struct sockbuf *sb, struct mbuf *m0, - struct mbuf *control); -void sbappendrecord(struct sockbuf *sb, struct mbuf *m0); -void sbcheck(struct sockbuf *sb); -void sbcompress(struct sockbuf *sb, struct mbuf *m, struct mbuf *n); -struct mbuf * - sbcreatecontrol(caddr_t p, int size, int type, int level); -void sbdrop(struct sockbuf *sb, int len); -void sbdroprecord(struct sockbuf *sb); -void sbflush(struct sockbuf *sb); -void sbinsertoob(struct sockbuf *sb, struct mbuf *m0); -void sbrelease(struct sockbuf *sb); -int sbreserve(struct sockbuf *sb, u_long cc); -int sbwait(struct sockbuf *sb); -int sb_lock(struct sockbuf *sb); -int soabort(struct socket *so); -int soaccept(struct socket *so, struct mbuf *nam); -int sobind(struct socket *so, struct mbuf *nam); -void socantrcvmore(struct socket *so); -void socantsendmore(struct socket *so); -int soclose(struct socket *so); -int soconnect(struct socket *so, struct mbuf *nam); -int soconnect2(struct socket *so1, struct socket *so2); -int socreate(int dom, struct socket **aso, int type, int proto, - struct proc *p); -int sodisconnect(struct socket *so); -void sofree(struct socket *so); -int sogetopt(struct socket *so, int level, int optname, - struct mbuf **mp); -void sohasoutofband(struct socket *so); -void soisconnected(struct socket *so); -void soisconnecting(struct socket *so); -void soisdisconnected(struct socket *so); -void soisdisconnecting(struct socket *so); -int solisten(struct socket *so, int backlog); -struct socket * - sodropablereq(struct socket *head); -struct socket * - sonewconn1(struct socket *head, int connstatus); -int soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio, - struct mbuf **mp0, struct mbuf **controlp, int *flagsp); -int soreserve(struct socket *so, u_long sndcc, u_long rcvcc); -void sorflush(struct socket *so); -int sosend(struct socket *so, struct mbuf *addr, struct uio *uio, - struct mbuf *top, struct mbuf *control, int flags); -int sosetopt(struct socket *so, int level, int optname, - struct mbuf *m0); -int soshutdown(struct socket *so, int how); -void sowakeup(struct socket *so, struct sockbuf *sb); -#endif /* _KERNEL */ - -#endif /* !_SYS_SOCKETVAR_H_ */ diff --git a/cpukit/libnetworking/sys/sysctl.h b/cpukit/libnetworking/sys/sysctl.h deleted file mode 100644 index 12e3845402..0000000000 --- a/cpukit/libnetworking/sys/sysctl.h +++ /dev/null @@ -1,642 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Mike Karels at Berkeley Software Design, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)sysctl.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/sysctl.h,v 1.133 2004/10/11 22:04:16 peter Exp $ - */ - -#ifndef _SYS_SYSCTL_H_ -#define _SYS_SYSCTL_H_ - -#include <stdint.h> -#include <sys/queue.h> - -struct thread; -/* - * Definitions for sysctl call. The sysctl call uses a hierarchical name - * for objects that can be examined or modified. The name is expressed as - * a sequence of integers. Like a file path name, the meaning of each - * component depends on its place in the hierarchy. The top-level and kern - * identifiers are defined here, and other identifiers are defined in the - * respective subsystem header files. - */ - -#define CTL_MAXNAME 24 /* largest number of components supported */ - -/* - * Each subsystem defined by sysctl defines a list of variables - * for that subsystem. Each name is either a node with further - * levels defined below it, or it is a leaf of some particular - * type given below. Each sysctl level defines a set of name/type - * pairs to be used by sysctl(8) in manipulating the subsystem. - */ -struct ctlname { - char *ctl_name; /* subsystem name */ - int ctl_type; /* type of name */ -}; - -#define CTLTYPE 0xf /* Mask for the type */ -#define CTLTYPE_NODE 1 /* name is a node */ -#define CTLTYPE_INT 2 /* name describes an integer */ -#define CTLTYPE_STRING 3 /* name describes a string */ -#define CTLTYPE_QUAD 4 /* name describes a 64-bit number */ -#define CTLTYPE_OPAQUE 5 /* name describes a structure */ -#define CTLTYPE_STRUCT CTLTYPE_OPAQUE /* name describes a structure */ -#define CTLTYPE_UINT 6 /* name describes an unsigned integer */ -#define CTLTYPE_LONG 7 /* name describes a long */ -#define CTLTYPE_ULONG 8 /* name describes an unsigned long */ - -#define CTLFLAG_RD 0x80000000 /* Allow reads of variable */ -#define CTLFLAG_WR 0x40000000 /* Allow writes to the variable */ -#define CTLFLAG_RW (CTLFLAG_RD|CTLFLAG_WR) -#define CTLFLAG_NOLOCK 0x20000000 /* XXX Don't Lock */ -#define CTLFLAG_ANYBODY 0x10000000 /* All users can set this var */ -#define CTLFLAG_SECURE 0x08000000 /* Permit set only if securelevel<=0 */ -#define CTLFLAG_PRISON 0x04000000 /* Prisoned roots can fiddle */ -#define CTLFLAG_DYN 0x02000000 /* Dynamic oid - can be freed */ -#define CTLFLAG_SKIP 0x01000000 /* Skip this sysctl when listing */ -#define CTLMASK_SECURE 0x00F00000 /* Secure level */ -#define CTLFLAG_TUN 0x00080000 /* Tunable variable */ -#define CTLFLAG_RDTUN (CTLFLAG_RD|CTLFLAG_TUN) - -/* - * Secure level. Note that CTLFLAG_SECURE == CTLFLAG_SECURE1. - * - * Secure when the securelevel is raised to at least N. - */ -#define CTLSHIFT_SECURE 20 -#define CTLFLAG_SECURE1 (CTLFLAG_SECURE | (0 << CTLSHIFT_SECURE)) -#define CTLFLAG_SECURE2 (CTLFLAG_SECURE | (1 << CTLSHIFT_SECURE)) -#define CTLFLAG_SECURE3 (CTLFLAG_SECURE | (2 << CTLSHIFT_SECURE)) - -/* - * USE THIS instead of a hardwired number from the categories below - * to get dynamically assigned sysctl entries using the linker-set - * technology. This is the way nearly all new sysctl variables should - * be implemented. - * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, ""); - */ -#define OID_AUTO (-1) - -/* - * The starting number for dynamically-assigned entries. WARNING! - * ALL static sysctl entries should have numbers LESS than this! - */ -#define CTL_AUTO_START 0x100 - -#ifdef _KERNEL -#define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \ - struct sysctl_req *req - -/* definitions for sysctl_req 'lock' member */ -#define REQ_UNLOCKED 0 /* not locked and not wired */ -#define REQ_LOCKED 1 /* locked and not wired */ -#define REQ_WIRED 2 /* locked and wired */ - -/* - * This describes the access space for a sysctl request. This is needed - * so that we can use the interface from the kernel or from user-space. - */ -struct sysctl_req { - struct thread *td; /* used for access checking */ - int lock; /* locking/wiring state */ - void *oldptr; - size_t oldlen; - size_t oldidx; - int (*oldfunc)(struct sysctl_req *, const void *, size_t); - const void *newptr; - size_t newlen; - size_t newidx; - int (*newfunc)(struct sysctl_req *, void *, size_t); - size_t validlen; -}; - -SLIST_HEAD(sysctl_oid_list, sysctl_oid); - -/* - * This describes one "oid" in the MIB tree. Potentially more nodes can - * be hidden behind it, expanded by the handler. - */ -struct sysctl_oid { - struct sysctl_oid_list *oid_parent; - SLIST_ENTRY(sysctl_oid) oid_link; - int oid_number; - uint32_t oid_kind; - void *oid_arg1; - int32_t oid_arg2; - const char *oid_name; - int (*oid_handler)(SYSCTL_HANDLER_ARGS); - const char *oid_fmt; - int oid_refcnt; - const char *descr; -}; - -#define SYSCTL_IN(r, p, l) (r->newfunc)(r, p, l) -#define SYSCTL_OUT(r, p, l) (r->oldfunc)(r, p, l) - -int sysctl_handle_int(SYSCTL_HANDLER_ARGS); -int sysctl_handle_long(SYSCTL_HANDLER_ARGS); -int sysctl_handle_intptr(SYSCTL_HANDLER_ARGS); -int sysctl_handle_string(SYSCTL_HANDLER_ARGS); -int sysctl_handle_opaque(SYSCTL_HANDLER_ARGS); - -/* - * These functions are used to add/remove an oid from the mib. - */ -void sysctl_register_oid(struct sysctl_oid *oidp); -void sysctl_unregister_oid(struct sysctl_oid *oidp); - -/* Declare a static oid to allow child oids to be added to it. */ -#define SYSCTL_DECL(name) \ - extern struct sysctl_oid_list sysctl_##name##_children - -/* Hide these in macros */ -#define SYSCTL_CHILDREN(oid_ptr) (struct sysctl_oid_list *) \ - (oid_ptr)->oid_arg1 -#define SYSCTL_CHILDREN_SET(oid_ptr, val) \ - (oid_ptr)->oid_arg1 = (val); -#define SYSCTL_STATIC_CHILDREN(oid_name) \ - (&sysctl_##oid_name##_children) - -/* === Structs and macros related to context handling === */ - -/* All dynamically created sysctls can be tracked in a context list. */ -struct sysctl_ctx_entry { - struct sysctl_oid *entry; - TAILQ_ENTRY(sysctl_ctx_entry) link; -}; - -TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); - -#define SYSCTL_NODE_CHILDREN(parent, name) \ - sysctl_##parent##_##name##_children - -/* This constructs a "raw" MIB oid. */ -#define SYSCTL_OID(parent, nbr, name, kind, a1, a2, handler, fmt, descr) \ - static struct sysctl_oid sysctl__##parent##_##name = { \ - &sysctl_##parent##_children, { 0 }, \ - nbr, kind, a1, a2, #name, handler, fmt, 0, descr }; \ - DATA_SET(sysctl_set, sysctl__##parent##_##name) - -#define SYSCTL_ADD_OID(ctx, parent, nbr, name, kind, a1, a2, handler, fmt, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, kind, a1, a2, handler, fmt, descr) - -/* This constructs a node from which other oids can hang. */ -#define SYSCTL_NODE(parent, nbr, name, access, handler, descr) \ - struct sysctl_oid_list SYSCTL_NODE_CHILDREN(parent, name); \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_NODE|(access), \ - (void*)&SYSCTL_NODE_CHILDREN(parent, name), 0, handler, \ - "N", descr) - -#define SYSCTL_ADD_NODE(ctx, parent, nbr, name, access, handler, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_NODE|(access), \ - 0, 0, handler, "N", descr) - -/* Oid for a string. len can be 0 to indicate '\0' termination. */ -#define SYSCTL_STRING(parent, nbr, name, access, arg, len, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|(access), \ - arg, len, sysctl_handle_string, "A", descr) - -#define SYSCTL_ADD_STRING(ctx, parent, nbr, name, access, arg, len, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_STRING|(access), \ - arg, len, sysctl_handle_string, "A", descr) - -/* Oid for an int. If ptr is NULL, val is returned. */ -#define SYSCTL_INT(parent, nbr, name, access, ptr, val, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \ - ptr, val, sysctl_handle_int, "I", descr) - -#define SYSCTL_ADD_INT(ctx, parent, nbr, name, access, ptr, val, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_INT|(access), \ - ptr, val, sysctl_handle_int, "I", descr) - -/* Oid for an unsigned int. If ptr is NULL, val is returned. */ -#define SYSCTL_UINT(parent, nbr, name, access, ptr, val, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|(access), \ - ptr, val, sysctl_handle_int, "IU", descr) - -#define SYSCTL_ADD_UINT(ctx, parent, nbr, name, access, ptr, val, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_UINT|(access), \ - ptr, val, sysctl_handle_int, "IU", descr) - -/* Oid for a long. The pointer must be non NULL. */ -#define SYSCTL_LONG(parent, nbr, name, access, ptr, val, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_LONG|(access), \ - ptr, val, sysctl_handle_long, "L", descr) - -#define SYSCTL_ADD_LONG(ctx, parent, nbr, name, access, ptr, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_LONG|(access), \ - ptr, 0, sysctl_handle_long, "L", descr) - -/* Oid for an unsigned long. The pointer must be non NULL. */ -#define SYSCTL_ULONG(parent, nbr, name, access, ptr, val, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_ULONG|(access), \ - ptr, val, sysctl_handle_long, "LU", descr) - -#define SYSCTL_ADD_ULONG(ctx, parent, nbr, name, access, ptr, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_ULONG|(access), \ - ptr, 0, sysctl_handle_long, "LU", descr) - -/* Oid for an opaque object. Specified by a pointer and a length. */ -#define SYSCTL_OPAQUE(parent, nbr, name, access, ptr, len, fmt, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|(access), \ - ptr, len, sysctl_handle_opaque, fmt, descr) - -#define SYSCTL_ADD_OPAQUE(ctx, parent, nbr, name, access, ptr, len, fmt, descr)\ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_OPAQUE|(access), \ - ptr, len, sysctl_handle_opaque, fmt, descr) - -/* Oid for a struct. Specified by a pointer and a type. */ -#define SYSCTL_STRUCT(parent, nbr, name, access, ptr, type, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|(access), \ - ptr, sizeof(struct type), sysctl_handle_opaque, \ - "S," #type, descr) - -#define SYSCTL_ADD_STRUCT(ctx, parent, nbr, name, access, ptr, type, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_OPAQUE|(access), \ - ptr, sizeof(struct type), sysctl_handle_opaque, "S," #type, descr) - -/* Oid for a procedure. Specified by a pointer and an arg. */ -#define SYSCTL_PROC(parent, nbr, name, access, ptr, arg, handler, fmt, descr) \ - SYSCTL_OID(parent, nbr, name, (access), \ - ptr, arg, handler, fmt, descr) - -#define SYSCTL_ADD_PROC(ctx, parent, nbr, name, access, ptr, arg, handler, fmt, descr) \ - sysctl_add_oid(ctx, parent, nbr, name, (access), \ - ptr, arg, handler, fmt, descr) - -#endif /* _KERNEL */ - -/* - * Top-level identifiers - */ -#define CTL_UNSPEC 0 /* unused */ -#define CTL_KERN 1 /* "high kernel": proc, limits */ -#define CTL_VM 2 /* virtual memory */ -#define CTL_VFS 3 /* filesystem, mount type is next */ -#define CTL_NET 4 /* network, see socket.h */ -#define CTL_DEBUG 5 /* debugging parameters */ -#define CTL_HW 6 /* generic cpu/io */ -#define CTL_MACHDEP 7 /* machine dependent */ -#define CTL_USER 8 /* user-level */ -#define CTL_P1003_1B 9 /* POSIX 1003.1B */ -#define CTL_MAXID 10 /* number of valid top-level ids */ - -#define CTL_NAMES { \ - { 0, 0 }, \ - { "kern", CTLTYPE_NODE }, \ - { "vm", CTLTYPE_NODE }, \ - { "vfs", CTLTYPE_NODE }, \ - { "net", CTLTYPE_NODE }, \ - { "debug", CTLTYPE_NODE }, \ - { "hw", CTLTYPE_NODE }, \ - { "machdep", CTLTYPE_NODE }, \ - { "user", CTLTYPE_NODE }, \ - { "p1003_1b", CTLTYPE_NODE }, \ -} - -/* - * CTL_KERN identifiers - */ -#define KERN_OSTYPE 1 /* string: system version */ -#define KERN_OSRELEASE 2 /* string: system release */ -#define KERN_OSREV 3 /* int: system revision */ -#define KERN_VERSION 4 /* string: compile time info */ -#define KERN_MAXVNODES 5 /* int: max vnodes */ -#define KERN_MAXPROC 6 /* int: max processes */ -#define KERN_MAXFILES 7 /* int: max open files */ -#define KERN_ARGMAX 8 /* int: max arguments to exec */ -#define KERN_SECURELVL 9 /* int: system security level */ -#define KERN_HOSTNAME 10 /* string: hostname */ -#define KERN_HOSTID 11 /* int: host identifier */ -#define KERN_CLOCKRATE 12 /* struct: struct clockrate */ -#define KERN_VNODE 13 /* struct: vnode structures */ -#define KERN_PROC 14 /* struct: process entries */ -#define KERN_FILE 15 /* struct: file entries */ -#define KERN_PROF 16 /* node: kernel profiling info */ -#define KERN_POSIX1 17 /* int: POSIX.1 version */ -#define KERN_NGROUPS 18 /* int: # of supplemental group ids */ -#define KERN_JOB_CONTROL 19 /* int: is job control available */ -#define KERN_SAVED_IDS 20 /* int: saved set-user/group-ID */ -#define KERN_BOOTTIME 21 /* struct: time kernel was booted */ -#define KERN_NISDOMAINNAME 22 /* string: YP domain name */ -#define KERN_UPDATEINTERVAL 23 /* int: update process sleep time */ -#define KERN_OSRELDATE 24 /* int: kernel release date */ -#define KERN_NTP_PLL 25 /* node: NTP PLL control */ -#define KERN_BOOTFILE 26 /* string: name of booted kernel */ -#define KERN_MAXFILESPERPROC 27 /* int: max open files per proc */ -#define KERN_MAXPROCPERUID 28 /* int: max processes per uid */ -#define KERN_DUMPDEV 29 /* struct cdev *: device to dump on */ -#define KERN_IPC 30 /* node: anything related to IPC */ -#define KERN_DUMMY 31 /* unused */ -#define KERN_PS_STRINGS 32 /* int: address of PS_STRINGS */ -#define KERN_USRSTACK 33 /* int: address of USRSTACK */ -#define KERN_LOGSIGEXIT 34 /* int: do we log sigexit procs? */ -#define KERN_IOV_MAX 35 /* int: value of UIO_MAXIOV */ -#define KERN_MAXID 36 /* number of valid kern ids */ - -#define CTL_KERN_NAMES { \ - { 0, 0 }, \ - { "ostype", CTLTYPE_STRING }, \ - { "osrelease", CTLTYPE_STRING }, \ - { "osrevision", CTLTYPE_INT }, \ - { "version", CTLTYPE_STRING }, \ - { "maxvnodes", CTLTYPE_INT }, \ - { "maxproc", CTLTYPE_INT }, \ - { "maxfiles", CTLTYPE_INT }, \ - { "argmax", CTLTYPE_INT }, \ - { "securelevel", CTLTYPE_INT }, \ - { "hostname", CTLTYPE_STRING }, \ - { "hostid", CTLTYPE_UINT }, \ - { "clockrate", CTLTYPE_STRUCT }, \ - { "vnode", CTLTYPE_STRUCT }, \ - { "proc", CTLTYPE_STRUCT }, \ - { "file", CTLTYPE_STRUCT }, \ - { "profiling", CTLTYPE_NODE }, \ - { "posix1version", CTLTYPE_INT }, \ - { "ngroups", CTLTYPE_INT }, \ - { "job_control", CTLTYPE_INT }, \ - { "saved_ids", CTLTYPE_INT }, \ - { "boottime", CTLTYPE_STRUCT }, \ - { "nisdomainname", CTLTYPE_STRING }, \ - { "update", CTLTYPE_INT }, \ - { "osreldate", CTLTYPE_INT }, \ - { "ntp_pll", CTLTYPE_NODE }, \ - { "bootfile", CTLTYPE_STRING }, \ - { "maxfilesperproc", CTLTYPE_INT }, \ - { "maxprocperuid", CTLTYPE_INT }, \ - { "ipc", CTLTYPE_NODE }, \ - { "dummy", CTLTYPE_INT }, \ - { "ps_strings", CTLTYPE_INT }, \ - { "usrstack", CTLTYPE_INT }, \ - { "logsigexit", CTLTYPE_INT }, \ - { "iov_max", CTLTYPE_INT }, \ -} - -/* - * CTL_VFS identifiers - */ -#define CTL_VFS_NAMES { \ - { "vfsconf", CTLTYPE_STRUCT }, \ -} - -/* - * KERN_PROC subtypes - */ -#define KERN_PROC_ALL 0 /* everything */ -#define KERN_PROC_PID 1 /* by process id */ -#define KERN_PROC_PGRP 2 /* by process group id */ -#define KERN_PROC_SESSION 3 /* by session of pid */ -#define KERN_PROC_TTY 4 /* by controlling tty */ -#define KERN_PROC_UID 5 /* by effective uid */ -#define KERN_PROC_RUID 6 /* by real uid */ -#define KERN_PROC_ARGS 7 /* get/set arguments/proctitle */ -#define KERN_PROC_PROC 8 /* only return procs */ -#define KERN_PROC_SV_NAME 9 /* get syscall vector name */ -#define KERN_PROC_RGID 10 /* by real group id */ -#define KERN_PROC_GID 11 /* by effective group id */ -#define KERN_PROC_INC_THREAD 0x10 /* - * modifier for pid, pgrp, tty, - * uid, ruid, gid, rgid and proc - */ - -/* - * KERN_IPC identifiers - */ -#define KIPC_MAXSOCKBUF 1 /* int: max size of a socket buffer */ -#define KIPC_SOCKBUF_WASTE 2 /* int: wastage factor in sockbuf */ -#define KIPC_SOMAXCONN 3 /* int: max length of connection q */ -#define KIPC_MAX_LINKHDR 4 /* int: max length of link header */ -#define KIPC_MAX_PROTOHDR 5 /* int: max length of network header */ -#define KIPC_MAX_HDR 6 /* int: max total length of headers */ -#define KIPC_MAX_DATALEN 7 /* int: max length of data? */ - -/* - * CTL_HW identifiers - */ -#define HW_MACHINE 1 /* string: machine class */ -#define HW_MODEL 2 /* string: specific machine model */ -#define HW_NCPU 3 /* int: number of cpus */ -#define HW_BYTEORDER 4 /* int: machine byte order */ -#define HW_PHYSMEM 5 /* int: total memory */ -#define HW_USERMEM 6 /* int: non-kernel memory */ -#define HW_PAGESIZE 7 /* int: software page size */ -#define HW_DISKNAMES 8 /* strings: disk drive names */ -#define HW_DISKSTATS 9 /* struct: diskstats[] */ -#define HW_FLOATINGPT 10 /* int: has HW floating point? */ -#define HW_MACHINE_ARCH 11 /* string: machine architecture */ -#define HW_MAXID 12 /* number of valid hw ids */ - -#define CTL_HW_NAMES { \ - { 0, 0 }, \ - { "machine", CTLTYPE_STRING }, \ - { "model", CTLTYPE_STRING }, \ - { "ncpu", CTLTYPE_INT }, \ - { "byteorder", CTLTYPE_INT }, \ - { "physmem", CTLTYPE_ULONG }, \ - { "usermem", CTLTYPE_ULONG }, \ - { "pagesize", CTLTYPE_INT }, \ - { "disknames", CTLTYPE_STRUCT }, \ - { "diskstats", CTLTYPE_STRUCT }, \ - { "floatingpoint", CTLTYPE_INT }, \ -} - -/* - * CTL_USER definitions - */ -#define USER_CS_PATH 1 /* string: _CS_PATH */ -#define USER_BC_BASE_MAX 2 /* int: BC_BASE_MAX */ -#define USER_BC_DIM_MAX 3 /* int: BC_DIM_MAX */ -#define USER_BC_SCALE_MAX 4 /* int: BC_SCALE_MAX */ -#define USER_BC_STRING_MAX 5 /* int: BC_STRING_MAX */ -#define USER_COLL_WEIGHTS_MAX 6 /* int: COLL_WEIGHTS_MAX */ -#define USER_EXPR_NEST_MAX 7 /* int: EXPR_NEST_MAX */ -#define USER_LINE_MAX 8 /* int: LINE_MAX */ -#define USER_RE_DUP_MAX 9 /* int: RE_DUP_MAX */ -#define USER_POSIX2_VERSION 10 /* int: POSIX2_VERSION */ -#define USER_POSIX2_C_BIND 11 /* int: POSIX2_C_BIND */ -#define USER_POSIX2_C_DEV 12 /* int: POSIX2_C_DEV */ -#define USER_POSIX2_CHAR_TERM 13 /* int: POSIX2_CHAR_TERM */ -#define USER_POSIX2_FORT_DEV 14 /* int: POSIX2_FORT_DEV */ -#define USER_POSIX2_FORT_RUN 15 /* int: POSIX2_FORT_RUN */ -#define USER_POSIX2_LOCALEDEF 16 /* int: POSIX2_LOCALEDEF */ -#define USER_POSIX2_SW_DEV 17 /* int: POSIX2_SW_DEV */ -#define USER_POSIX2_UPE 18 /* int: POSIX2_UPE */ -#define USER_STREAM_MAX 19 /* int: POSIX2_STREAM_MAX */ -#define USER_TZNAME_MAX 20 /* int: POSIX2_TZNAME_MAX */ -#define USER_MAXID 21 /* number of valid user ids */ - -#define CTL_USER_NAMES { \ - { 0, 0 }, \ - { "cs_path", CTLTYPE_STRING }, \ - { "bc_base_max", CTLTYPE_INT }, \ - { "bc_dim_max", CTLTYPE_INT }, \ - { "bc_scale_max", CTLTYPE_INT }, \ - { "bc_string_max", CTLTYPE_INT }, \ - { "coll_weights_max", CTLTYPE_INT }, \ - { "expr_nest_max", CTLTYPE_INT }, \ - { "line_max", CTLTYPE_INT }, \ - { "re_dup_max", CTLTYPE_INT }, \ - { "posix2_version", CTLTYPE_INT }, \ - { "posix2_c_bind", CTLTYPE_INT }, \ - { "posix2_c_dev", CTLTYPE_INT }, \ - { "posix2_char_term", CTLTYPE_INT }, \ - { "posix2_fort_dev", CTLTYPE_INT }, \ - { "posix2_fort_run", CTLTYPE_INT }, \ - { "posix2_localedef", CTLTYPE_INT }, \ - { "posix2_sw_dev", CTLTYPE_INT }, \ - { "posix2_upe", CTLTYPE_INT }, \ - { "stream_max", CTLTYPE_INT }, \ - { "tzname_max", CTLTYPE_INT }, \ -} - -#define CTL_P1003_1B_ASYNCHRONOUS_IO 1 /* boolean */ -#define CTL_P1003_1B_MAPPED_FILES 2 /* boolean */ -#define CTL_P1003_1B_MEMLOCK 3 /* boolean */ -#define CTL_P1003_1B_MEMLOCK_RANGE 4 /* boolean */ -#define CTL_P1003_1B_MEMORY_PROTECTION 5 /* boolean */ -#define CTL_P1003_1B_MESSAGE_PASSING 6 /* boolean */ -#define CTL_P1003_1B_PRIORITIZED_IO 7 /* boolean */ -#define CTL_P1003_1B_PRIORITY_SCHEDULING 8 /* boolean */ -#define CTL_P1003_1B_REALTIME_SIGNALS 9 /* boolean */ -#define CTL_P1003_1B_SEMAPHORES 10 /* boolean */ -#define CTL_P1003_1B_FSYNC 11 /* boolean */ -#define CTL_P1003_1B_SHARED_MEMORY_OBJECTS 12 /* boolean */ -#define CTL_P1003_1B_SYNCHRONIZED_IO 13 /* boolean */ -#define CTL_P1003_1B_TIMERS 14 /* boolean */ -#define CTL_P1003_1B_AIO_LISTIO_MAX 15 /* int */ -#define CTL_P1003_1B_AIO_MAX 16 /* int */ -#define CTL_P1003_1B_AIO_PRIO_DELTA_MAX 17 /* int */ -#define CTL_P1003_1B_DELAYTIMER_MAX 18 /* int */ -#define CTL_P1003_1B_MQ_OPEN_MAX 19 /* int */ -#define CTL_P1003_1B_PAGESIZE 20 /* int */ -#define CTL_P1003_1B_RTSIG_MAX 21 /* int */ -#define CTL_P1003_1B_SEM_NSEMS_MAX 22 /* int */ -#define CTL_P1003_1B_SEM_VALUE_MAX 23 /* int */ -#define CTL_P1003_1B_SIGQUEUE_MAX 24 /* int */ -#define CTL_P1003_1B_TIMER_MAX 25 /* int */ - -#define CTL_P1003_1B_MAXID 26 - -#define CTL_P1003_1B_NAMES { \ - { 0, 0 }, \ - { "asynchronous_io", CTLTYPE_INT }, \ - { "mapped_files", CTLTYPE_INT }, \ - { "memlock", CTLTYPE_INT }, \ - { "memlock_range", CTLTYPE_INT }, \ - { "memory_protection", CTLTYPE_INT }, \ - { "message_passing", CTLTYPE_INT }, \ - { "prioritized_io", CTLTYPE_INT }, \ - { "priority_scheduling", CTLTYPE_INT }, \ - { "realtime_signals", CTLTYPE_INT }, \ - { "semaphores", CTLTYPE_INT }, \ - { "fsync", CTLTYPE_INT }, \ - { "shared_memory_objects", CTLTYPE_INT }, \ - { "synchronized_io", CTLTYPE_INT }, \ - { "timers", CTLTYPE_INT }, \ - { "aio_listio_max", CTLTYPE_INT }, \ - { "aio_max", CTLTYPE_INT }, \ - { "aio_prio_delta_max", CTLTYPE_INT }, \ - { "delaytimer_max", CTLTYPE_INT }, \ - { "mq_open_max", CTLTYPE_INT }, \ - { "pagesize", CTLTYPE_INT }, \ - { "rtsig_max", CTLTYPE_INT }, \ - { "nsems_max", CTLTYPE_INT }, \ - { "sem_value_max", CTLTYPE_INT }, \ - { "sigqueue_max", CTLTYPE_INT }, \ - { "timer_max", CTLTYPE_INT }, \ -} - -#ifdef _KERNEL - -/* - * Declare some common oids. - */ -extern struct sysctl_oid_list sysctl__children; -SYSCTL_DECL(_kern); -SYSCTL_DECL(_sysctl); -SYSCTL_DECL(_vm); -SYSCTL_DECL(_vfs); -SYSCTL_DECL(_net); -SYSCTL_DECL(_debug); -SYSCTL_DECL(_debug_sizeof); -SYSCTL_DECL(_hw); -SYSCTL_DECL(_machdep); -SYSCTL_DECL(_user); -SYSCTL_DECL(_compat); - -extern char machine[]; -extern char osrelease[]; -extern char ostype[]; -extern char kern_ident[]; - -/* Dynamic oid handling */ -struct sysctl_oid *sysctl_add_oid(struct sysctl_ctx_list *clist, - struct sysctl_oid_list *parent, int nbr, const char *name, - int kind, void *arg1, int arg2, - int (*handler) (SYSCTL_HANDLER_ARGS), - const char *fmt, const char *descr); -int sysctl_move_oid(struct sysctl_oid *oidp, - struct sysctl_oid_list *parent); -int sysctl_remove_oid(struct sysctl_oid *oidp, int del, int recurse); -int sysctl_ctx_init(struct sysctl_ctx_list *clist); -int sysctl_ctx_free(struct sysctl_ctx_list *clist); -struct sysctl_ctx_entry *sysctl_ctx_entry_add(struct sysctl_ctx_list *clist, - struct sysctl_oid *oidp); -struct sysctl_ctx_entry *sysctl_ctx_entry_find(struct sysctl_ctx_list *clist, - struct sysctl_oid *oidp); -int sysctl_ctx_entry_del(struct sysctl_ctx_list *clist, - struct sysctl_oid *oidp); - -int kernel_sysctl(struct thread *td, int *name, u_int namelen, void *old, - size_t *oldlenp, void *new, size_t newlen, - size_t *retval); -int kernel_sysctlbyname(struct thread *td, char *name, - void *old, size_t *oldlenp, void *new, size_t newlen, - size_t *retval); -int userland_sysctl(struct thread *td, const int *name, u_int namelen, void *old, - size_t *oldlenp, int inkernel, const void *new, size_t newlen, - size_t *retval); -int sysctl_find_oid(const int *name, u_int namelen, struct sysctl_oid **noid, - int *nindx, struct sysctl_req *req); -int sysctl_wire_old_buffer(struct sysctl_req *req, size_t len); - -#else /* !_KERNEL */ -#include <sys/cdefs.h> - -__BEGIN_DECLS -int sysctl(int *, u_int, void *, size_t *, void *, size_t); -int sysctlbyname(const char *, void *, size_t *, void *, size_t); -int sysctlnametomib(const char *, int *, size_t *); -__END_DECLS -#endif /* _KERNEL */ - -#endif /* !_SYS_SYSCTL_H_ */ diff --git a/cpukit/libnetworking/sys/systm.h b/cpukit/libnetworking/sys/systm.h deleted file mode 100644 index ae70148184..0000000000 --- a/cpukit/libnetworking/sys/systm.h +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * Copyright (c) 1982, 1988, 1991, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)systm.h 8.7 (Berkeley) 3/29/95 - * $FreeBSD: src/sys/sys/systm.h,v 1.248 2007/01/15 15:06:27 rrs Exp $ - */ - - -#ifndef _SYS_SYSTM_H_ -#define _SYS_SYSTM_H_ - -#include <rtems/rtems_bsdnet_internal.h> /* for __BSD_VA_LIST__ */ -#include <machine/cpufunc.h> - -#if !defined(__dead2) -#define __dead2 __attribute__((__noreturn__)) -#endif - -extern int securelevel; /* system security level (see init(8)) */ - -extern int cold; /* nonzero if we are doing a cold boot */ -extern const char *panicstr; /* panic message */ -extern char version[]; /* system version */ -extern char copyright[]; /* system copyright */ - -extern int physmem; /* physical memory */ - -/* - * General function declarations. - */ -int nullop(void); -int ureadc(int, struct uio *); -void *hashinit(int count, int type, u_long *hashmask); -void *phashinit(int count, int type, u_long *nentries); - -void panic(const char *, ...) __dead2; -void boot(int) __dead2; -void cpu_boot(int); -int kvprintf(char const *, void (*)(int, void*), void *, int, - _BSD_VA_LIST_); -void log(int, const char *, ...); -int printf(const char *, ...); -int sprintf(char *buf, const char *, ...); -void uprintf(const char *, ...); -void ttyprintf(struct tty *, const char *, ...); - -#define bcopy(f,t,n) memcpy((t),(f),(n)) -#define bzero(p,n) memset((p),(0),(n)) - -int copystr(const void *kfaddr, void *kdaddr, size_t len, - size_t *lencopied); -int copyinstr(const void *udaddr, void *kaddr, size_t len, - size_t *lencopied); -#ifndef __rtems__ -/* FIXME: these clash with defines in rtems_bsdnet_internal.h */ -int copyin(const void *udaddr, void *kaddr, size_t len); -int copyout(const void *kaddr, void *udaddr, size_t len); -#endif - -int hzto(struct timeval *tv); - -#include <sys/libkern.h> - -/* Timeouts */ -typedef void (timeout_t)(void *); /* actual timeout function type */ -typedef timeout_t *timeout_func_t; /* a pointer to this type */ - -void timeout(timeout_func_t, void *, int); -void untimeout(timeout_func_t, void *); - -/* - * Common `proc' functions are declared here so that proc.h can be included - * less often. - */ -int tsleep(void *chan, int pri, char *wmesg, int timo); -void wakeup(void *chan); - -#endif /* !_SYS_SYSTM_H_ */ diff --git a/cpukit/libnetworking/sys/ucred.h b/cpukit/libnetworking/sys/ucred.h deleted file mode 100644 index 84c4ebc2e6..0000000000 --- a/cpukit/libnetworking/sys/ucred.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)ucred.h 8.4 (Berkeley) 1/9/95 - */ - -#ifndef _SYS_UCRED_H_ -#define _SYS_UCRED_H_ - -#if defined(__rtems__) -#include <sys/param.h> /* NGROUPS */ -#endif - -/* - * Credentials. - */ -struct ucred { - u_short cr_ref; /* reference count */ - uid_t cr_uid; /* effective user id */ - short cr_ngroups; /* number of groups */ - gid_t cr_groups[NGROUPS]; /* groups */ -}; -#define cr_gid cr_groups[0] -#define NOCRED ((struct ucred *)0) /* no credential available */ -#define FSCRED ((struct ucred *)-1) /* filesystem credential */ - -#ifdef _KERNEL -int suser(struct ucred *cred, u_short *acflag); -#endif /* _KERNEL */ - -#endif /* !_SYS_UCRED_H_ */ |