diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-04-11 15:04:22 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-04-11 15:24:39 +0200 |
commit | 5eb434e67ed31111eb90b92cf75248f2ff9d1086 (patch) | |
tree | 4e4493d101058953149da482fb8344cb240721a2 /cpukit/score | |
parent | nios2: New functions (diff) | |
download | rtems-5eb434e67ed31111eb90b92cf75248f2ff9d1086.tar.bz2 |
score: New macros and functions
New macros
o _Objects_Maximum_per_allocation(),
o rtems_resource_is_unlimited(), and
o rtems_resource_maximum_per_allocation().
New function
o _Objects_Is_unlimited().
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/inline/rtems/score/object.inl | 20 | ||||
-rw-r--r-- | cpukit/score/src/objectinitializeinformation.c | 7 |
2 files changed, 23 insertions, 4 deletions
diff --git a/cpukit/score/inline/rtems/score/object.inl b/cpukit/score/inline/rtems/score/object.inl index ac07e68235..6a4fe21037 100644 --- a/cpukit/score/inline/rtems/score/object.inl +++ b/cpukit/score/inline/rtems/score/object.inl @@ -352,5 +352,25 @@ RTEMS_INLINE_ROUTINE void _Objects_Open_string( #endif } +/** + * Returns if the object maximum specifies unlimited objects. + * + * @param[in] maximum The object maximum specification. + * + * @retval true Unlimited objects are available. + * @retval false The object count is fixed. + */ +RTEMS_INLINE_ROUTINE bool _Objects_Is_unlimited( uint32_t maximum ) +{ + return (maximum & OBJECTS_UNLIMITED_OBJECTS) != 0; +} + +/* + * We cannot use an inline function for this since it may be evaluated at + * compile time. + */ +#define _Objects_Maximum_per_allocation( maximum ) \ + ((Objects_Maximum) ((maximum) & ~OBJECTS_UNLIMITED_OBJECTS)) + #endif /* end of include file */ diff --git a/cpukit/score/src/objectinitializeinformation.c b/cpukit/score/src/objectinitializeinformation.c index 01e1f96d46..4ddb11b2cb 100644 --- a/cpukit/score/src/objectinitializeinformation.c +++ b/cpukit/score/src/objectinitializeinformation.c @@ -62,7 +62,7 @@ void _Objects_Initialize_information( { static Objects_Control *null_local_table = NULL; uint32_t minimum_index; - uint32_t maximum_per_allocation; + Objects_Maximum maximum_per_allocation; #if defined(RTEMS_MULTIPROCESSING) uint32_t index; #endif @@ -92,9 +92,8 @@ void _Objects_Initialize_information( /* * Are we operating in limited or unlimited (e.g. auto-extend) mode. */ - information->auto_extend = - (maximum & OBJECTS_UNLIMITED_OBJECTS) ? true : false; - maximum_per_allocation = maximum & ~OBJECTS_UNLIMITED_OBJECTS; + information->auto_extend = _Objects_Is_unlimited( maximum ); + maximum_per_allocation = _Objects_Maximum_per_allocation( maximum ); /* * Unlimited and maximum of zero is illogical. |