forked from Imagelibrary/rtems
cpusetimpl.h: Add _CPU_set_Set() and improve Doxygen
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
/**
|
/**
|
||||||
* @file rtems/score/cpusetimpl.h
|
* @file
|
||||||
*
|
*
|
||||||
* @brief Implementation Prototypes for CPU Set
|
* @brief Implementation Helper for CPU Set
|
||||||
*
|
*
|
||||||
* This file contains the implementation prototypes for
|
* This file contains the implementation helpers inlines and prototypes for
|
||||||
* CPU set methods.
|
* CPU set methods.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -31,61 +31,105 @@ extern "C" {
|
|||||||
#ifdef __RTEMS_HAVE_SYS_CPUSET_H__
|
#ifdef __RTEMS_HAVE_SYS_CPUSET_H__
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _CPU_set_Is_valid
|
* @brief Determine If the CPU Set if Valid
|
||||||
*
|
*
|
||||||
* This routine validates a cpuset size corresponds to
|
* This routine validates a cpuset size corresponds to the system
|
||||||
* the system correct size, that at least one
|
* correct size, that at least one valid cpu is set and that no invalid
|
||||||
* valid cpu is set and that no invalid cpus are set.
|
* cpus are set.
|
||||||
|
*
|
||||||
|
* @param[in] cpuset is the cpuset to validate
|
||||||
|
* @param[in] setsize is the number of CPUs in the cpuset
|
||||||
|
*
|
||||||
|
* @return true if the set is valid
|
||||||
*/
|
*/
|
||||||
bool _CPU_set_Is_valid( const cpu_set_t *cpuset, size_t setsize );
|
bool _CPU_set_Is_valid( const cpu_set_t *cpuset, size_t setsize );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _CPU_set_Show
|
* @brief Print the CPU Set
|
||||||
*
|
*
|
||||||
* This routine will print the value of the given cpuset.
|
* This routine will print the value of the given cpuset.
|
||||||
|
*
|
||||||
|
* @param[in] description is a string to print before the value.
|
||||||
|
* @param[in] cpuset is the cpuset to validate
|
||||||
|
* @param[in] setsize is the number of CPUs in the cpuset
|
||||||
*/
|
*/
|
||||||
void _CPU_set_Show( const char *description, const cpu_set_t *cpuset);
|
void _CPU_set_Show( const char *description, const cpu_set_t *cpuset);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _CPU_set_Show_default
|
* @brief Print the Default CPU Set
|
||||||
*
|
*
|
||||||
* This routine will print the value of the default cpuset.
|
* This routine will print the value of the default cpuset.
|
||||||
|
*
|
||||||
|
* @param[in] description is a string to print before the value.
|
||||||
*/
|
*/
|
||||||
void _CPU_set_Show_default( const char *description );
|
void _CPU_set_Show_default( const char *description );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _CPU_set_Default
|
* @brief Obtain the Default CPU Set
|
||||||
*
|
*
|
||||||
* This routine returns the default cpuset for
|
* This routine returns the default cpuset for this system.
|
||||||
* this system.
|
*
|
||||||
|
* @return a pointer to the default cpuset.
|
||||||
*/
|
*/
|
||||||
const CPU_set_Control *_CPU_set_Default(void);
|
const CPU_set_Control *_CPU_set_Default(void);
|
||||||
|
|
||||||
RTEMS_INLINE_ROUTINE size_t _CPU_set_Maximum_CPU_count(
|
/**
|
||||||
size_t cpusetsize
|
* @brief Obtain the Maximum Number of CPUs Representable in CPU Set
|
||||||
)
|
*
|
||||||
|
* This routine returns maximum number of CPUs that can be represented
|
||||||
|
* in the @a setsize specified.
|
||||||
|
*
|
||||||
|
* @return the number of representable cores in the cpuset
|
||||||
|
*/
|
||||||
|
RTEMS_INLINE_ROUTINE size_t _CPU_set_Maximum_CPU_count( size_t setsize )
|
||||||
{
|
{
|
||||||
return cpusetsize * CHAR_BIT;
|
return setsize * CHAR_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Is this CPU Set Large Enough?
|
||||||
|
*
|
||||||
|
* This method can be used to determine if a particular cpuset is
|
||||||
|
* large enough for the number of CPUs in the system.
|
||||||
|
*
|
||||||
|
* @param[in] setsize is the number of CPUs in the cpuset
|
||||||
|
*
|
||||||
|
* @return true if the @a setsize is sufficient
|
||||||
|
*/
|
||||||
RTEMS_INLINE_ROUTINE bool _CPU_set_Is_large_enough(
|
RTEMS_INLINE_ROUTINE bool _CPU_set_Is_large_enough(
|
||||||
size_t cpusetsize
|
size_t setsize
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return _CPU_set_Maximum_CPU_count( cpusetsize )
|
return _CPU_set_Maximum_CPU_count( setsize ) >= _SMP_Get_processor_count();
|
||||||
>= _SMP_Get_processor_count();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Fill in CPU_set_Control
|
||||||
|
*
|
||||||
|
* This method fills in a CPU_set_Control based upon a cpu_set_t and
|
||||||
|
* size information.
|
||||||
|
*
|
||||||
|
* @param[in] cpuset is the cpuset to validate
|
||||||
|
* @param[in] setsize is the number of CPUs in the cpuset
|
||||||
|
*/
|
||||||
|
static inline void _CPU_set_Set(
|
||||||
|
size_t setsize,
|
||||||
|
cpu_set_t *cpuset,
|
||||||
|
CPU_set_Control *set
|
||||||
|
)
|
||||||
|
{
|
||||||
|
set->set = &set->preallocated;
|
||||||
|
set->setsize = setsize;
|
||||||
|
CPU_COPY( set->set, cpuset );
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _CPU_set_Handler_initialization
|
* @brief Initialize the CPU Set Handler
|
||||||
*
|
*
|
||||||
* This routine validates a cpuset sets at least one
|
* This routine validates a cpuset sets at least one valid cpu and that
|
||||||
* valid cpu and that it does not set any invalid
|
* it does not set any invalid cpus.
|
||||||
* cpus.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if __RTEMS_HAVE_SYS_CPUSET_H__ && defined( RTEMS_SMP )
|
#if __RTEMS_HAVE_SYS_CPUSET_H__ && defined( RTEMS_SMP )
|
||||||
void _CPU_set_Handler_initialization(void);
|
void _CPU_set_Handler_initialization(void);
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user