certi-cvs
[Top][All Lists]
Advanced

[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")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]