forked from Imagelibrary/rtems
2011-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1826/cpukit * libmisc/cpuuse/cpuusagereport.c, rtems/Makefile.am, rtems/preinstall.am, rtems/include/rtems.h: Add SMP Helper methods to Classic API. * rtems/include/rtems/rtems/smp.h: New file.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2011-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
PR 1826/cpukit
|
||||
* libmisc/cpuuse/cpuusagereport.c, rtems/Makefile.am,
|
||||
rtems/preinstall.am, rtems/include/rtems.h: Add SMP Helper methods to
|
||||
Classic API.
|
||||
* rtems/include/rtems/rtems/smp.h: New file.
|
||||
|
||||
2011-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* score/Makefile.am, score/include/rtems/score/schedulersimplesmp.h,
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
}
|
||||
#else
|
||||
int cpu;
|
||||
for ( cpu=0 ; cpu < _SMP_Processor_count ; cpu++ ) {
|
||||
for ( cpu=0 ; cpu < rtems_smp_get_number_of_processors() ; cpu++ ) {
|
||||
Per_CPU_Control *p = &_Per_CPU_Information[cpu];
|
||||
if ( p->executing->Object.id == the_thread->Object.id ) {
|
||||
*time_of_context_switch = p->time_of_last_context_switch;
|
||||
|
||||
@@ -57,6 +57,10 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/signalmp.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/taskmp.h
|
||||
endif
|
||||
|
||||
if HAS_SMP
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/smp.h
|
||||
endif
|
||||
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/asr.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/attr.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/barrier.inl
|
||||
|
||||
@@ -74,6 +74,10 @@ extern "C" {
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
#include <rtems/rtems/mp.h>
|
||||
#endif
|
||||
#if defined(RTEMS_SMP)
|
||||
#include <rtems/rtems/smp.h>
|
||||
#endif
|
||||
|
||||
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/score/sysstate.h>
|
||||
|
||||
82
cpukit/rtems/include/rtems/rtems/smp.h
Normal file
82
cpukit/rtems/include/rtems/rtems/smp.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/**
|
||||
* @file rtems/rtems/smp.h
|
||||
*
|
||||
* This include file provides the application interface
|
||||
* to SMP information and services.
|
||||
*
|
||||
* Most of the SMP interface is hidden from the application
|
||||
* and exists between the BSP and RTEMS.
|
||||
*/
|
||||
|
||||
/* COPYRIGHT (c) 1989-2011.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_SMP_H
|
||||
#define _RTEMS_RTEMS_SMP_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/score/smp.h>
|
||||
|
||||
/**
|
||||
* @defgroup ClassicSMP Classic API SMP Services
|
||||
*
|
||||
* @ingroup ClassicRTEMS
|
||||
*
|
||||
* This encapsulates functionality which is useful for SMP applications.
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
extern uint32_t rtems_configuration_smp_maximum_processors;
|
||||
|
||||
/**
|
||||
* @brief Obtain Number of Cores in System
|
||||
*
|
||||
* This method returns the number of CPU cores that are currently in
|
||||
* the system. This will always be less than or equal to the number
|
||||
* of maximum number of cores which were configured.
|
||||
*
|
||||
* @return This method returns the number of cores in this system.
|
||||
*/
|
||||
#define rtems_smp_get_number_of_processors() \
|
||||
(_SMP_Processor_count)
|
||||
|
||||
/**
|
||||
* @brief Obtain Maximum Cores Configured
|
||||
*
|
||||
* This method returns the number of CPU cores that were configured
|
||||
* in the system. The actual number of cores will always be less than
|
||||
* or equal to the number of maximum number of cores which were configured.
|
||||
*
|
||||
* @return This method returns the number of cores configured.
|
||||
*/
|
||||
#define rtems_configuration_get_smp_maximum_processors() \
|
||||
(rtems_configuration_smp_maximum_processors)
|
||||
|
||||
/**
|
||||
* @brief Obtain Current Core Number
|
||||
*
|
||||
* This method returns the id of the current CPU core.
|
||||
*
|
||||
* @return This method returns the id of the current CPU core.
|
||||
*/
|
||||
#define rtems_smp_get_current_processor() \
|
||||
bsp_smp_processor_id()
|
||||
|
||||
/**@}*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -164,6 +164,11 @@ $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h: include/rtems/rtems/taskmp.h $(PROJECT_
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
|
||||
endif
|
||||
if HAS_SMP
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/smp.h: include/rtems/rtems/smp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/smp.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/smp.h
|
||||
endif
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/asr.inl: inline/rtems/rtems/asr.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/asr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/asr.inl
|
||||
|
||||
Reference in New Issue
Block a user