#3702 closed task (fixed)
Space profile for RTEMS SMP
Reported by: | Sebastian Huber | Owned by: | Sebastian Huber |
---|---|---|---|
Priority: | normal | Milestone: | 6.1 |
Component: | doc | Version: | 6 |
Severity: | normal | Keywords: | qualification |
Cc: | Blocked By: | ||
Blocking: | #3701 |
Description
Define a subset of RTEMS SMP functionality which is
- useful for space applications, and
- can be pre-qualified by project #3701.
To figure out the feature set carry out an online survey. In addition, do a workshop at ESA / ESTEC premises (also accessible on-line via Skype for Business).
The space profile needs to be documented.
Change History (7)
comment:1 Changed on 02/26/19 at 13:30:45 by Sebastian Huber
Status: | assigned → accepted |
---|
comment:2 Changed on 11/19/21 at 14:44:03 by Sebastian Huber
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:3 Changed on 11/19/21 at 14:56:54 by Joel Sherrill
Would it be possible to generate a document similar to the one you linked to which documents that superset? Asked another way, how could someone approaching RTEMS.org know the subset of RTEMS which has the supporting artifacts for pre-qualification?
comment:4 Changed on 11/19/21 at 15:00:19 by Sebastian Huber
Yes, this is possible, but I think this belongs to another ticket. I am currently busy with integrating all my work in progress.
comment:5 Changed on 12/02/21 at 11:10:16 by Sebastian Huber
Just for reference, a list of pre-qualified interfaces can be obtained via the ./specview.py --filter=api
.
Application Configuration Information
- rtems_configuration_get_idle_task
- rtems_configuration_get_idle_task_stack_size
- rtems_configuration_get_interrupt_stack_size
- rtems_configuration_get_maximum_barriers
- rtems_configuration_get_maximum_extensions
- rtems_configuration_get_maximum_message_queues
- rtems_configuration_get_maximum_partitions
- rtems_configuration_get_maximum_periods
- rtems_configuration_get_maximum_processors
- rtems_configuration_get_maximum_semaphores
- rtems_configuration_get_maximum_tasks
- rtems_configuration_get_maximum_timers
- rtems_configuration_get_microseconds_per_tick
- rtems_configuration_get_milliseconds_per_tick
- rtems_configuration_get_nanoseconds_per_tick
- rtems_configuration_get_stack_allocate_for_idle_hook
- rtems_configuration_get_stack_allocate_hook
- rtems_configuration_get_stack_allocator_avoids_work_space
- rtems_configuration_get_stack_free_hook
- rtems_configuration_get_ticks_per_timeslice
Barrier Manager
- rtems_barrier_create
- rtems_barrier_delete
- rtems_barrier_ident
- rtems_barrier_release
- rtems_barrier_wait
Base Definitions
- RTEMS_ALIAS
- RTEMS_ALIGNED
- RTEMS_ALIGNOF
- RTEMS_ALIGN_DOWN
- RTEMS_ALIGN_UP
- RTEMS_ALLOC_ALIGN
- RTEMS_ALLOC_SIZE
- RTEMS_ALLOC_SIZE_2
- RTEMS_ARRAY_SIZE
- RTEMS_COMPILER_MEMORY_BARRIER
- RTEMS_CONCAT
- RTEMS_CONTAINER_OF
- RTEMS_DECLARE_GLOBAL_SYMBOL
- RTEMS_DECONST
- RTEMS_DEFINE_GLOBAL_SYMBOL
- RTEMS_DEQUALIFY
- RTEMS_DEQUALIFY_DEPTHX
- RTEMS_DEVOLATILE
- RTEMS_EXPAND
- RTEMS_HAVE_MEMBER_SAME_TYPE
- RTEMS_OBFUSCATE_VARIABLE
- RTEMS_PREDICT_FALSE
- RTEMS_PREDICT_TRUE
- RTEMS_PRINTFLIKE
- RTEMS_RETURN_ADDRESS
- RTEMS_SECTION
- RTEMS_STATIC_ASSERT
- RTEMS_STRING
- RTEMS_SYMBOL_NAME
- RTEMS_TYPEOF_REFX
- RTEMS_UNREACHABLE
- RTEMS_WEAK_ALIAS
- RTEMS_XCONCAT
- RTEMS_XSTRING
C and POSIX
- clock_nanosleep
- flsl
- memcpy
- memset
- posix_memalign
CPU Usage Reporting
- rtems_cpu_usage_reset
Cache Manager
- rtems_cache_disable_data
- rtems_cache_disable_instruction
- rtems_cache_enable_data
- rtems_cache_enable_instruction
- rtems_cache_flush_entire_data
- rtems_cache_flush_multiple_data_lines
- rtems_cache_get_data_cache_size
- rtems_cache_get_data_line_size
- rtems_cache_get_instruction_cache_size
- rtems_cache_get_instruction_line_size
- rtems_cache_get_maximal_line_size
- rtems_cache_instruction_sync_after_code_change
- rtems_cache_invalidate_entire_data
- rtems_cache_invalidate_entire_instruction
- rtems_cache_invalidate_multiple_data_lines
- rtems_cache_invalidate_multiple_instruction_lines
Classic API Configuration
- CONFIGURE_MAXIMUM_BARRIERS
- CONFIGURE_MAXIMUM_MESSAGE_QUEUES
- CONFIGURE_MAXIMUM_PARTITIONS
- CONFIGURE_MAXIMUM_PERIODS
- CONFIGURE_MAXIMUM_SEMAPHORES
- CONFIGURE_MAXIMUM_TASKS
- CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
- CONFIGURE_MAXIMUM_TIMERS
- CONFIGURE_MAXIMUM_USER_EXTENSIONS
- CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE
Classic API Initialization Task Configuration
- CONFIGURE_INIT_TASK_ARGUMENTS
- CONFIGURE_INIT_TASK_ATTRIBUTES
- CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
- CONFIGURE_INIT_TASK_ENTRY_POINT
- CONFIGURE_INIT_TASK_INITIAL_MODES
- CONFIGURE_INIT_TASK_NAME
- CONFIGURE_INIT_TASK_PRIORITY
- CONFIGURE_RTEMS_INIT_TASKS_TABLE
Clock Manager
- rtems_clock_get_boot_time
- rtems_clock_get_boot_time_bintime
- rtems_clock_get_boot_time_timeval
- rtems_clock_get_monotonic
- rtems_clock_get_monotonic_bintime
- rtems_clock_get_monotonic_coarse
- rtems_clock_get_monotonic_coarse_bintime
- rtems_clock_get_monotonic_coarse_timeval
- rtems_clock_get_monotonic_sbintime
- rtems_clock_get_monotonic_timeval
- rtems_clock_get_realtime
- rtems_clock_get_realtime_bintime
- rtems_clock_get_realtime_coarse
- rtems_clock_get_realtime_coarse_bintime
- rtems_clock_get_realtime_coarse_timeval
- rtems_clock_get_realtime_timeval
- rtems_clock_get_ticks_per_second
- rtems_clock_get_ticks_since_boot
- rtems_clock_get_tod
- rtems_clock_get_uptime
- rtems_clock_set
Device Driver Configuration
- CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
- CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
Directive Status Codes
- rtems_are_statuses_equal
- rtems_is_status_successful
- rtems_status_text
Dynamic Memory Allocation
- rtems_calloc
- rtems_malloc
Event Manager
- rtems_event_receive
- rtems_event_send
Fatal Error Manager
- rtems_fatal
Filesystem Configuration
- CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
General Scheduler Configuration
- CONFIGURE_MAXIMUM_PRIORITY
- CONFIGURE_SCHEDULER_ASSIGNMENTS
- CONFIGURE_SCHEDULER_EDF_SMP
- CONFIGURE_SCHEDULER_NAME
- CONFIGURE_SCHEDULER_PRIORITY
General System Configuration
- CONFIGURE_DISABLE_BSP_SETTINGS
- CONFIGURE_DISABLE_NEWLIB_REENTRANCY
- CONFIGURE_INITIAL_EXTENSIONS
- CONFIGURE_INTERRUPT_STACK_SIZE
- CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
- CONFIGURE_MAXIMUM_PROCESSORS
- CONFIGURE_MICROSECONDS_PER_TICK
- CONFIGURE_MINIMUM_TASK_STACK_SIZE
- CONFIGURE_TICKS_PER_TIMESLICE
Idle Task Configuration
- CONFIGURE_IDLE_TASK_BODY
- CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
- CONFIGURE_IDLE_TASK_STACK_SIZE
Interrupt Manager
- RTEMS_INTERRUPT_ENTRY_INITIALIZER
- RTEMS_INTERRUPT_LOCK_DECLARE
- RTEMS_INTERRUPT_LOCK_DEFINE
- RTEMS_INTERRUPT_LOCK_INITIALIZER
- RTEMS_INTERRUPT_LOCK_MEMBER
- RTEMS_INTERRUPT_LOCK_REFERENCE
- rtems_interrupt_clear
- rtems_interrupt_entry_initialize
- rtems_interrupt_entry_install
- rtems_interrupt_entry_remove
- rtems_interrupt_get_affinity
- rtems_interrupt_get_attributes
- rtems_interrupt_handler_iterate
- rtems_interrupt_is_pending
- rtems_interrupt_local_disable
- rtems_interrupt_local_enable
- rtems_interrupt_lock_acquire
- rtems_interrupt_lock_acquire_isr
- rtems_interrupt_lock_destroy
- rtems_interrupt_lock_initialize
- rtems_interrupt_lock_interrupt_disable
- rtems_interrupt_lock_release
- rtems_interrupt_lock_release_isr
- rtems_interrupt_raise
- rtems_interrupt_raise_on
- rtems_interrupt_set_affinity
- rtems_interrupt_vector_disable
- rtems_interrupt_vector_enable
- rtems_interrupt_vector_is_enabled
Kernel Character I/O Support
- getchark
- rtems_put_char
- rtems_putc
Message Manager
- RTEMS_MESSAGE_QUEUE_BUFFER
- rtems_message_queue_broadcast
- rtems_message_queue_construct
- rtems_message_queue_delete
- rtems_message_queue_flush
- rtems_message_queue_get_number_pending
- rtems_message_queue_ident
- rtems_message_queue_receive
- rtems_message_queue_send
- rtems_message_queue_urgent
Newlib
- _Futex_Wait
- _Futex_Wake
- _Mutex_Acquire
- _Mutex_Acquire_timed
- _Mutex_Release
- _Mutex_Try_acquire
- _Mutex_recursive_Acquire
- _Mutex_recursive_Acquire_timed
- _Mutex_recursive_Release
- _Mutex_recursive_Try_acquire
Object Services
- rtems_build_name
- rtems_object_get_local_node
Partition Manager
- rtems_partition_create
- rtems_partition_delete
- rtems_partition_get_buffer
- rtems_partition_ident
- rtems_partition_return_buffer
Rate-Monotonic Manager
- rtems_rate_monotonic_cancel
- rtems_rate_monotonic_create
- rtems_rate_monotonic_delete
- rtems_rate_monotonic_get_status
- rtems_rate_monotonic_ident
- rtems_rate_monotonic_period
Scheduler Manager
- rtems_scheduler_add_processor
- rtems_scheduler_get_maximum_priority
- rtems_scheduler_get_processor
- rtems_scheduler_get_processor_maximum
- rtems_scheduler_get_processor_set
- rtems_scheduler_ident
- rtems_scheduler_ident_by_processor
- rtems_scheduler_ident_by_processor_set
- rtems_scheduler_remove_processor
Semaphore Manager
- rtems_semaphore_create
- rtems_semaphore_delete
- rtems_semaphore_flush
- rtems_semaphore_ident
- rtems_semaphore_obtain
- rtems_semaphore_release
- rtems_semaphore_set_priority
Signal Manager
- rtems_signal_catch
- rtems_signal_send
Support Services
- rtems_is_name_valid
- rtems_name_to_characters
Task Manager
- RTEMS_TASK_STORAGE_SIZE
- rtems_task_construct
- rtems_task_create
- rtems_task_delete
- rtems_task_exit
- rtems_task_get_affinity
- rtems_task_get_priority
- rtems_task_get_scheduler
- rtems_task_ident
- rtems_task_is_suspended
- rtems_task_iterate
- rtems_task_mode
- rtems_task_restart
- rtems_task_resume
- rtems_task_self
- rtems_task_set_affinity
- rtems_task_set_priority
- rtems_task_set_scheduler
- rtems_task_start
- rtems_task_suspend
- rtems_task_wake_after
- rtems_task_wake_when
Task Modes
- RTEMS_INTERRUPT_LEVEL
Task Stack Allocator Configuration
- CONFIGURE_TASK_STACK_ALLOCATOR
- CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
- CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
- CONFIGURE_TASK_STACK_DEALLOCATOR
Timer Manager
- rtems_timer_cancel
- rtems_timer_create
- rtems_timer_delete
- rtems_timer_fire_after
- rtems_timer_fire_when
- rtems_timer_ident
- rtems_timer_initiate_server
- rtems_timer_reset
- rtems_timer_server_fire_after
- rtems_timer_server_fire_when
User Extensions Manager
- rtems_extension_create
- rtems_extension_delete
- rtems_extension_ident
comment:6 Changed on 12/02/21 at 22:15:47 by Joel Sherrill
I'm sure that list is right but wasn't there a small set of POSIX APIs which were candidates? I looked for pthread_once() which I expected but isn't there. Was thinking of the pthread APIs which were always on before the POSIX configuration was reworked -- once and keys.
comment:7 Changed on 12/03/21 at 05:54:40 by Sebastian Huber
We considered to add POSIX keys and once, but we had no time left over to do this.
The Technical Note: Space Profile is finalized:
https://ftp.rtems.org/pub/rtems/people/sebh/tn-space-profile-r6-23062019.pdf
Please note that the pre-qualified feature set of RTEMS is a proper superset of the space profile.