diff options
author | Jennifer Averett <jennifer.averett@oarcorp.com> | 2012-04-05 15:24:27 -0500 |
---|---|---|
committer | Jennifer Averett <jennifer.averett@oarcorp.com> | 2012-04-05 15:24:27 -0500 |
commit | 251480ebc299432e2ad371df8d718df202ed5a64 (patch) | |
tree | 08b12eb1dfb2be4f79c3733f945b66060b44b162 | |
parent | Comment out unused methods that were generating linker errors. (diff) | |
download | rtems-libbsd-251480ebc299432e2ad371df8d718df202ed5a64.tar.bz2 |
Added in a header file and some defines to resolve linker errors.
-rwxr-xr-x | freebsd-to-rtems.py | 1 | ||||
-rw-r--r-- | freebsd/kern/kern_event.c | 4 | ||||
-rw-r--r-- | freebsd/sys/eventvar.h | 65 |
3 files changed, 68 insertions, 2 deletions
diff --git a/freebsd-to-rtems.py b/freebsd-to-rtems.py index c922f6cb..d1feef9a 100755 --- a/freebsd-to-rtems.py +++ b/freebsd-to-rtems.py @@ -1121,6 +1121,7 @@ devNic.addHeaderFiles( # 'sys/taskqueue.h', 'sys/pciio.h', 'dev/random/randomdev_soft.h', + 'sys/eventvar.h', ] ) devNic.addSourceFiles( diff --git a/freebsd/kern/kern_event.c b/freebsd/kern/kern_event.c index 54ba63a9..c7dece79 100644 --- a/freebsd/kern/kern_event.c +++ b/freebsd/kern/kern_event.c @@ -49,9 +49,7 @@ __FBSDID("$FreeBSD$"); #include <freebsd/sys/selinfo.h> #include <freebsd/sys/queue.h> #include <freebsd/sys/event.h> -#ifndef __rtems__ #include <freebsd/sys/eventvar.h> -#endif /* __rtems__ */ #include <freebsd/sys/poll.h> #include <freebsd/sys/protosw.h> #include <freebsd/sys/sigio.h> @@ -176,6 +174,7 @@ static int kq_ncallouts = 0; static int kq_calloutmax = (4 * 1024); SYSCTL_INT(_kern, OID_AUTO, kq_calloutmax, CTLFLAG_RW, &kq_calloutmax, 0, "Maximum number of callouts allocated for kqueue"); +#endif /* __rtems__ */ /* XXX - ensure not KN_INFLUX?? */ #define KNOTE_ACTIVATE(kn, islock) do { \ @@ -240,6 +239,7 @@ SYSCTL_INT(_kern, OID_AUTO, kq_calloutmax, CTLFLAG_RW, #define KN_HASHSIZE 64 /* XXX should be tunable */ #define KN_HASH(val, mask) (((val) ^ (val >> 8)) & (mask)) +#ifndef __rtems__ static int filt_nullattach(struct knote *kn) { diff --git a/freebsd/sys/eventvar.h b/freebsd/sys/eventvar.h new file mode 100644 index 00000000..8712cfdc --- /dev/null +++ b/freebsd/sys/eventvar.h @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 1999,2000 Jonathan Lemon <jlemon@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$ + */ + +#ifndef _SYS_EVENTVAR_HH_ +#define _SYS_EVENTVAR_HH_ + +#ifndef _KERNEL +#error "no user-servicable parts inside" +#endif + +#include <freebsd/sys/_task.h> + +#define KQ_NEVENTS 8 /* minimize copy{in,out} calls */ +#define KQEXTENT 256 /* linear growth by this amount */ + +struct kqueue { + struct mtx kq_lock; + int kq_refcnt; + SLIST_ENTRY(kqueue) kq_list; + TAILQ_HEAD(, knote) kq_head; /* list of pending event */ + int kq_count; /* number of pending events */ + struct selinfo kq_sel; + struct sigio *kq_sigio; + struct filedesc *kq_fdp; + int kq_state; +#define KQ_SEL 0x01 +#define KQ_SLEEP 0x02 +#define KQ_FLUXWAIT 0x04 /* waiting for a in flux kn */ +#define KQ_ASYNC 0x08 +#define KQ_CLOSING 0x10 +#define KQ_TASKSCHED 0x20 /* task scheduled */ +#define KQ_TASKDRAIN 0x40 /* waiting for task to drain */ + int kq_knlistsize; /* size of knlist */ + struct klist *kq_knlist; /* list of knotes */ + u_long kq_knhashmask; /* size of knhash */ + struct klist *kq_knhash; /* hash table for knotes */ + struct task kq_task; +}; + +#endif /* !_SYS_EVENTVAR_HH_ */ |