summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-10-30 17:42:17 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-11-02 09:34:35 +0100
commit26e90fb1c671f0c03304f15f7030186231474196 (patch)
treed9b25568b3e9c23865a8fb843440dbd602f1c79e /cpukit/libnetworking
parentrtems: Use event 31 for the transient event (diff)
downloadrtems-26e90fb1c671f0c03304f15f7030186231474196.tar.bz2
libnetworking: Use system events
Add reserved system events RTEMS_EVENT_SYSTEM_NETWORK_SBWAIT and RTEMS_EVENT_SYSTEM_NETWORK_SOSLEEP. Add and use rtems_bsdnet_event_send().
Diffstat (limited to 'cpukit/libnetworking')
-rw-r--r--cpukit/libnetworking/rtems/rtems_bsdnet_internal.h12
-rw-r--r--cpukit/libnetworking/rtems/rtems_glue.c14
-rw-r--r--cpukit/libnetworking/rtems/rtems_select.c4
3 files changed, 19 insertions, 11 deletions
diff --git a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
index 27c6fb4483..6bd2682592 100644
--- a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
+++ b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
@@ -152,6 +152,14 @@ rtems_status_code rtems_bsdnet_event_receive (
rtems_event_set *event_out
);
+static inline rtems_status_code rtems_bsdnet_event_send (
+ rtems_id task_id,
+ rtems_event_set event_in
+)
+{
+ return rtems_event_system_send (task_id, event_in);
+}
+
/*
* Network configuration
*/
@@ -182,8 +190,8 @@ int ioctl (int, ioctl_command_t, ...);
* tries to use these events or if the `sleep'
* events are equal to any of the NETISR * events.
*/
-#define SBWAIT_EVENT RTEMS_EVENT_24
-#define SOSLEEP_EVENT RTEMS_EVENT_25
+#define SBWAIT_EVENT RTEMS_EVENT_SYSTEM_NETWORK_SBWAIT
+#define SOSLEEP_EVENT RTEMS_EVENT_SYSTEM_NETWORK_SOSLEEP
#define NETISR_IP_EVENT (1L << NETISR_IP)
#define NETISR_ARP_EVENT (1L << NETISR_ARP)
#define NETISR_EVENTS (NETISR_IP_EVENT|NETISR_ARP_EVENT)
diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c
index d5868e4f7a..09240a4534 100644
--- a/cpukit/libnetworking/rtems/rtems_glue.c
+++ b/cpukit/libnetworking/rtems/rtems_glue.c
@@ -405,7 +405,7 @@ sbwait(struct sockbuf *sb)
* The sleep/wakeup synchronization in the FreeBSD
* kernel has no memory.
*/
- rtems_event_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT, &events);
+ rtems_event_system_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT, &events);
/*
* Set this task as the target of the wakeup operation.
@@ -426,7 +426,7 @@ sbwait(struct sockbuf *sb)
/*
* Wait for the wakeup event.
*/
- sc = rtems_event_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, sb->sb_timeo, &events);
+ sc = rtems_event_system_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, sb->sb_timeo, &events);
/*
* Reobtain the network semaphore.
@@ -454,7 +454,7 @@ sowakeup(
{
if (sb->sb_flags & SB_WAIT) {
sb->sb_flags &= ~SB_WAIT;
- rtems_event_send (sb->sb_sel.si_pid, SBWAIT_EVENT);
+ rtems_event_system_send (sb->sb_sel.si_pid, SBWAIT_EVENT);
}
if (sb->sb_wakeup) {
(*sb->sb_wakeup) (so, sb->sb_wakeuparg);
@@ -491,7 +491,7 @@ soconnsleep (struct socket *so)
* The sleep/wakeup synchronization in the FreeBSD
* kernel has no memory.
*/
- rtems_event_receive (SOSLEEP_EVENT, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT, &events);
+ rtems_event_system_receive (SOSLEEP_EVENT, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT, &events);
/*
* Set this task as the target of the wakeup operation.
@@ -525,7 +525,7 @@ void
soconnwakeup (struct socket *so)
{
if (so->so_pgid)
- rtems_event_send (so->so_pgid, SOSLEEP_EVENT);
+ rtems_event_system_send (so->so_pgid, SOSLEEP_EVENT);
}
/*
@@ -535,7 +535,7 @@ soconnwakeup (struct socket *so)
void
rtems_bsdnet_schednetisr (int n)
{
- rtems_event_send (networkDaemonTid, 1 << n);
+ rtems_event_system_send (networkDaemonTid, 1 << n);
}
/*
@@ -680,7 +680,7 @@ rtems_status_code rtems_bsdnet_event_receive (
rtems_status_code sc;
rtems_bsdnet_semaphore_release ();
- sc = rtems_event_receive (event_in, option_set, ticks, event_out);
+ sc = rtems_event_system_receive (event_in, option_set, ticks, event_out);
rtems_bsdnet_semaphore_obtain ();
return sc;
}
diff --git a/cpukit/libnetworking/rtems/rtems_select.c b/cpukit/libnetworking/rtems/rtems_select.c
index b581904769..57e8c328e5 100644
--- a/cpukit/libnetworking/rtems/rtems_select.c
+++ b/cpukit/libnetworking/rtems/rtems_select.c
@@ -144,7 +144,7 @@ select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct t
#undef getbits
rtems_task_ident (RTEMS_SELF, 0, &tid);
- rtems_event_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT, &events);
+ rtems_event_system_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, RTEMS_NO_TIMEOUT, &events);
for (;;) {
rtems_bsdnet_semaphore_obtain ();
error = selscan(tid, ibits, obits, nfds, &retval);
@@ -158,7 +158,7 @@ select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct t
break;
then = now;
}
- rtems_event_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, timo, &events);
+ rtems_event_system_receive (SBWAIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, timo, &events);
}
#define putbits(name,i) if (name) *name = ob[i]