[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi libRTI/RTIambassador.cc include/RTIambSer...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi libRTI/RTIambassador.cc include/RTIambSer... |
Date: |
Fri, 20 Aug 2010 14:51:52 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/08/20 14:51:52
Modified files:
libRTI : RTIambassador.cc
include : RTIambServices.hh
. : CMakeLists.txt
Log message:
Merge a modified version of patch
task #10454 : Real Time modifications for CERTI
This is optionally compiled depending on CMake OPTION
CERTI_REALTIME_EXTENSIONS (default = OFF)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambassador.cc?cvsroot=certi&r1=3.116&r2=3.117
http://cvs.savannah.gnu.org/viewcvs/certi/include/RTIambServices.hh?cvsroot=certi&r1=3.6&r2=3.7
http://cvs.savannah.gnu.org/viewcvs/certi/CMakeLists.txt?cvsroot=certi&r1=1.85&r2=1.86
Patches:
Index: libRTI/RTIambassador.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambassador.cc,v
retrieving revision 3.116
retrieving revision 3.117
diff -u -b -r3.116 -r3.117
--- libRTI/RTIambassador.cc 20 Mar 2010 16:34:14 -0000 3.116
+++ libRTI/RTIambassador.cc 20 Aug 2010 14:51:48 -0000 3.117
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RTIambassador.cc,v 3.116 2010/03/20 16:34:14 erk Exp $
+// $Id: RTIambassador.cc,v 3.117 2010/08/20 14:51:48 erk Exp $
// ----------------------------------------------------------------------------
#include "RTI.hh"
@@ -479,6 +479,46 @@
return __tick_kernel(RTI_TRUE, minimum, maximum);
}
+#ifdef CERTI_REALTIME_EXTENSIONS
+// ----------------------------------------------------------------------------
+void
+RTI::RTIambassador::setPriorityforRTIAProcess(int priority, unsigned int
sched_type)
+ throw(RTIinternalError) {
+
+#ifdef _WIN32
+ throw RTIinternalError("Not Implemented on Windows");
+#else
+ struct sched_param sparm ;
+ int cr ;
+
+ sparm.sched_priority = priority ;
+ cr = sched_setscheduler(privateRefs->pid_RTIA,sched_type,&sparm);
+ if (cr !=0) {
+ throw RTIinternalError("RTIA process changing priority did not work");
+ if (errno==EPERM) {
+ throw RTIinternalError("The calling process has no SU permission for
that") ;
+ }
+ else if (errno==ESRCH){
+ throw RTIinternalError( "The process id does not exist") ;
+ }
+ throw RTIinternalError( "Unknown policy specified") ;
+ }
+#endif
+}
+
+// ----------------------------------------------------------------------------
+void
+RTI::RTIambassador::setAffinityforRTIAProcess(cpu_set_t mask)
+ throw(RTIinternalError) {
+#ifdef _WIN32
+ throw RTIinternalError("Not Implemented on Windows");
+#else
+if (sched_setaffinity(privateRefs->pid_RTIA, sizeof(cpu_set_t), &mask))
+ throw RTIinternalError( "RTIA process Error : sched_setaffinity") ;
+#endif
+}
+#endif
+
// ----------------------------------------------------------------------------
//! Get Region Token.
RTI::RegionToken
@@ -2988,4 +3028,4 @@
privateRefs->executeService(&req, &rep);
}
-// $Id: RTIambassador.cc,v 3.116 2010/03/20 16:34:14 erk Exp $
+// $Id: RTIambassador.cc,v 3.117 2010/08/20 14:51:48 erk Exp $
Index: include/RTIambServices.hh
===================================================================
RCS file: /sources/certi/certi/include/RTIambServices.hh,v
retrieving revision 3.6
retrieving revision 3.7
diff -u -b -r3.6 -r3.7
--- include/RTIambServices.hh 7 Mar 2010 18:23:40 -0000 3.6
+++ include/RTIambServices.hh 20 Aug 2010 14:51:52 -0000 3.7
@@ -1,5 +1,5 @@
// HLA 1.3 Header "RTIambServices.hh"
-// $Id: RTIambServices.hh,v 3.6 2010/03/07 18:23:40 erk Exp $
+// $Id: RTIambServices.hh,v 3.7 2010/08/20 14:51:52 erk Exp $
typedef FederateAmbassador *FederateAmbassadorPtr ;
@@ -496,6 +496,26 @@
Boolean tick(TickTime, TickTime)
throw (SpecifiedSaveLabelDoesNotExist, ConcurrentAccessAttempted,
RTIinternalError);
+#ifdef CERTI_REALTIME_EXTENSIONS
+/**
+ * Set Priority for RTIA Process (CERTI Real-time extension).
+ * @param priority the priority needed for RTIA process (from 0 to 99 on linux
system)
+ * @param schedPolicy the scheduling policy needed for RTIA process
+ * - SCHED_FIFO or SCHED_RR on Linux system
+ * @warning This is a non-standard extension of the HLA 1.3 API.
+ */
+void setPriorityforRTIAProcess(int priority, unsigned int schedPolicy)
+ throw(RTIinternalError) ;
+
+/**
+ * Set Processor Mask affinity for RTIA Process (CERTI Real-time extension).
+ * @param mask the mask to be applied for RTIA process (depend on available
number of processors)
+ * @warning This is a non-standard extension of the HLA 1.3 API.
+ */
+void setAffinityforRTIAProcess(cpu_set_t mask)
+ throw(RTIinternalError) ;
+#endif
+
RTIambassador()
throw (MemoryExhausted, RTIinternalError);
@@ -508,4 +528,4 @@
Region *getRegion(RegionToken)
throw (FederateNotExecutionMember, ConcurrentAccessAttempted,
RegionNotKnown, RTIinternalError);
-// $Id: RTIambServices.hh,v 3.6 2010/03/07 18:23:40 erk Exp $
+// $Id: RTIambServices.hh,v 3.7 2010/08/20 14:51:52 erk Exp $
Index: CMakeLists.txt
===================================================================
RCS file: /sources/certi/certi/CMakeLists.txt,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -b -r1.85 -r1.86
--- CMakeLists.txt 17 Aug 2010 06:47:38 -0000 1.85
+++ CMakeLists.txt 20 Aug 2010 14:51:52 -0000 1.86
@@ -76,6 +76,13 @@
ADD_DEFINITIONS(-DCERTI_USE_NULL_PRIME_MESSAGE_PROTOCOL)
ENDIF(CERTI_USE_NULL_PRIME_MESSAGE_PROTOCOL)
+# The CERTI Realtime extensions
+OPTION(CERTI_REALTIME_EXTENSIONS
+ "CERTI proposed realtime extension to HLA API" OFF)
+IF(CERTI_REALTIME_EXTENSIONS)
+ ADD_DEFINITIONS(-DCERTI_REALTIME_EXTENSIONS)
+ENDIF(CERTI_REALTIME_EXTENSIONS)
+
IF (NOT CMAKE_BUILD_TYPE)
MESSAGE(STATUS "No build type selected, default to Debug")
SET(CMAKE_BUILD_TYPE "Debug")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi libRTI/RTIambassador.cc include/RTIambSer...,
certi-cvs <=