summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/semmp.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-20 14:59:30 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-20 16:17:00 +0200
commit62c528e633758302f30aa714838b51613f03f9e7 (patch)
treedda69197e96e7cb301e8a71556821437439b76b1 /cpukit/rtems/src/semmp.c
parentrtems: _Message_queue_Get_interrupt_disable() (diff)
downloadrtems-62c528e633758302f30aa714838b51613f03f9e7.tar.bz2
rtems: _Semaphore_Get_interrupt_disable()
Use _Objects_Get_local() for _Semaphore_Get_interrupt_disable() to get rid of the location parameter. Move remote object handling to semaphore MPCI support.
Diffstat (limited to 'cpukit/rtems/src/semmp.c')
-rw-r--r--cpukit/rtems/src/semmp.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/cpukit/rtems/src/semmp.c b/cpukit/rtems/src/semmp.c
index 7b9c39be33..7f7506cd5f 100644
--- a/cpukit/rtems/src/semmp.c
+++ b/cpukit/rtems/src/semmp.c
@@ -72,11 +72,11 @@ void _Semaphore_MP_Send_process_packet (
}
}
-rtems_status_code _Semaphore_MP_Send_request_packet (
- Semaphore_MP_Remote_operations operation,
+static rtems_status_code _Semaphore_MP_Send_request_packet(
Objects_Id semaphore_id,
rtems_option option_set,
- rtems_interval timeout
+ rtems_interval timeout,
+ Semaphore_MP_Remote_operations operation
)
{
Semaphore_MP_Packet *the_packet;
@@ -120,6 +120,30 @@ rtems_status_code _Semaphore_MP_Send_request_packet (
return RTEMS_SUCCESSFUL;
}
+rtems_status_code _Semaphore_MP_Obtain(
+ rtems_id id,
+ rtems_option option_set,
+ rtems_interval timeout
+)
+{
+ return _Semaphore_MP_Send_request_packet(
+ id,
+ option_set,
+ timeout,
+ SEMAPHORE_MP_OBTAIN_REQUEST
+ );
+}
+
+rtems_status_code _Semaphore_MP_Release( rtems_id id )
+{
+ return _Semaphore_MP_Send_request_packet(
+ id,
+ 0,
+ MPCI_DEFAULT_TIMEOUT,
+ SEMAPHORE_MP_RELEASE_REQUEST
+ );
+}
+
static void _Semaphore_MP_Send_response_packet (
Semaphore_MP_Remote_operations operation,
Objects_Id semaphore_id,