summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spsize/size.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* testsuites/sptests/sp[s-z]*: Change license to BSD-2Joel Sherrill2022-04-051-3/+22
| | | | Updates #3053.
* score: Remove _Internal_errors_What_happenedSebastian Huber2021-07-281-2/+0
| | | | | | | | | | Users have access to the fatal error source and code though the fatal error extension. The user-specific fatal error handling should be done in statically initialized fatal error handlers. The _Internal_errors_What_happened was updated after the fatal error extension. In addition, there was no API to get the information stored in _Internal_errors_What_happened. In SMP configurations, this object could contain a mix of different fatal errors. Remove this object to save some bytes of storage.
* rtems: Deprecate use of _RTEMS_versionSebastian Huber2020-05-061-0/+2
| | | | Close #3970.
* config: Add _MPCI_ConfigurationSebastian Huber2019-12-131-8/+1
| | | | | | | Replace the user MPCI configuration table with a system provided _MPCI_Configuration. Update #3735.
* score: Rename _SMP_Get_processor_count()Sebastian Huber2019-04-111-1/+1
| | | | | | | Rename _SMP_Get_processor_count() in _SMP_Get_processor_maximum() to be in line with the API level rtems_scheduler_get_processor_maximum(). Update #3732.
* Remove superfluous <rtems/system.h> includesSebastian Huber2019-03-141-1/+0
|
* score: Static Objects_Information initializationSebastian Huber2018-12-141-1/+1
| | | | | | | | | | | Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621.
* Rework initialization and interrupt stack supportSebastian Huber2018-06-271-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Statically initialize the interrupt stack area (_Configuration_Interrupt_stack_area_begin, _Configuration_Interrupt_stack_area_end, and _Configuration_Interrupt_stack_size) via <rtems/confdefs.h>. Place the interrupt stack area in a special section ".rtemsstack.interrupt". Let BSPs define the optimal placement of this section in their linker command files (e.g. in a fast on-chip memory). This change makes makes the CPU_HAS_SOFTWARE_INTERRUPT_STACK and CPU_HAS_HARDWARE_INTERRUPT_STACK CPU port defines superfluous, since the low level initialization code has all information available via global symbols. This change makes the CPU_ALLOCATE_INTERRUPT_STACK CPU port define superfluous, since the interrupt stacks are allocated by confdefs.h for all architectures. There is no need for BSP-specific linker command file magic (except the section placement), see previous ARM linker command file as a bad example. Remove _CPU_Install_interrupt_stack(). Initialize the hardware interrupt stack in _CPU_Initialize() if necessary (e.g. m68k_install_interrupt_stack()). The optional _CPU_Interrupt_stack_setup() is still useful to customize the registration of the interrupt stack area in the per-CPU information. The initialization stack can reuse the interrupt stack, since * interrupts are disabled during the sequential system initialization, and * the boot_card() function does not return. This stack resuse saves memory. Changes per architecture: arm: * Mostly replace the linker symbol based configuration of stacks with the standard <rtems/confdefs.h> configuration via CONFIGURE_INTERRUPT_STACK_SIZE. The size of the FIQ, ABT and UND mode stack is still defined via linker symbols. These modes are rarely used in applications and the default values provided by the BSP should be sufficient in most cases. * Remove the bsp_processor_count linker symbol hack used for the SMP support. This is possible since the interrupt stack area is now allocated by the linker and not allocated from the heap. This makes some configure.ac stuff obsolete. Remove the now superfluous BSP variants altcycv_devkit_smp and realview_pbx_a9_qemu_smp. bfin: * Remove unused magic linker command file allocation of initialization stack. Maybe a previous linker command file copy and paste problem? In the start.S the initialization stack is set to a hard coded value. lm32, m32c, mips, nios2, riscv, sh, v850: * Remove magic linker command file allocation of initialization stack. Reuse interrupt stack for initialization stack. m68k: * Remove magic linker command file allocation of initialization stack. Reuse interrupt stack for initialization stack. powerpc: * Remove magic linker command file allocation of initialization stack. Reuse interrupt stack for initialization stack. * Used dedicated memory region (REGION_RTEMSSTACK) for the interrupt stack on BSPs using the shared linkcmds.base (replacement for REGION_RWEXTRA). sparc: * Remove the hard coded initialization stack. Use the interrupt stack for the initialization stack on the boot processor. This saves 16KiB of RAM. Update #3459.
* sparc: Add lazy floating point switchSebastian Huber2017-07-251-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The SPARC ABI is a bit special with respect to the floating point context. The complete floating point context is volatile. Thus, from an ABI point of view nothing needs to be saved and restored during a context switch. Instead the floating point context must be saved and restored during interrupt processing. Historically, the deferred floating point switch was used for SPARC and the complete floating point context is saved and restored during a context switch to the new floating point unit owner. This is a bit dangerous since post-switch actions (e.g. signal handlers) and context switch extensions may silently corrupt the floating point context. The floating point unit is disabled for interrupt handlers. Thus, in case an interrupt handler uses the floating point unit then this will result in a trap (INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT). In uniprocessor configurations, a lazy floating point context switch is used. In case an active floating point thread is interrupted (PSR[EF] == 1) and a thread dispatch is carried out, then this thread is registered as the floating point owner. When a floating point owner is present during a context switch, the floating point unit is disabled for the heir thread (PSR[EF] == 0). The floating point disabled trap checks that the use of the floating point unit is allowed and saves/restores the floating point context on demand. Update #3077.
* score: Use red-black tree for active global objectsSebastian Huber2016-04-061-5/+0
| | | | | | | Use a red-black tree to lookup active global objects by identifier or name. Update #2555.
* score: Use red-black tree for active MP proxiesSebastian Huber2016-04-061-5/+0
| | | | Update #2555.
* score: Replace watchdog handler implementationSebastian Huber2016-03-041-2/+0
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* Delete unused API extensionsSebastian Huber2016-02-031-1/+0
|
* Use linker set for MPCI initializationSebastian Huber2016-02-031-2/+1
| | | | Update #2408.
* score: Statically initialize API extensionsSebastian Huber2015-12-081-2/+0
| | | | Update #2408.
* Remove <rtems/debug.h>Sebastian Huber2015-12-071-2/+0
| | | | Close #2477.
* timecounter: Use in RTEMSAlexander Krutwig2015-05-201-3/+0
| | | | | | | | Replace timestamp implementation with FreeBSD bintime and timecounters. New test sptests/sptimecounter02. Update #2271.
* score: Add Watchdog_IteratorSebastian Huber2015-05-191-3/+1
| | | | | | | | | | Rewrite the _Watchdog_Insert(), _Watchdog_Remove() and _Watchdog_Tickle() functions to use iterator items to synchronize concurrent operations. This makes it possible to get rid of the global variables _Watchdog_Sync_level and _Watchdog_Sync_count which are a blocking point for scalable SMP solutions. Update #2307.
* score: Add Watchdog_HeaderSebastian Huber2015-04-131-2/+2
| | | | | | | This type is intended to encapsulate all state to manage a watchdog chain. Update #2307.
* score: Implement fine-grained locking for eventsSebastian Huber2015-03-051-2/+0
| | | | | | | Use the ISR lock of the thread object to protect the event state and use the Giant lock only for the blocking operations. Update #2273.
* powerpc: Delete _CPU_IRQ_infoSebastian Huber2015-01-091-2/+1
|
* score: Introduce scheduler nodesSebastian Huber2014-05-141-1/+1
| | | | | | | | | | | | Rename scheduler per-thread information into scheduler nodes using Scheduler_Node as the base type. Use inheritance for specialized schedulers. Move the scheduler specific states from the thread control block into the scheduler node structure. Validate the SMP scheduler node state transitions in case RTEMS_DEBUG is defined.
* score: Static scheduler configurationSebastian Huber2014-04-151-8/+2
| | | | | | Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP.
* score: Statically initialize IO managerSebastian Huber2014-04-101-3/+0
| | | | | | | | | | | | This simplifies the RTEMS initialization and helps to avoid a memory overhead. The workspace demands of the IO manager were not included in the <rtems/confdefs.h> workspace size estimate. This is also fixed as a side-effect. Update documentation and move "Specifying Application Defined Device Driver Table" to the section end. This sub-section is not that important for the user. Mentioning this at the beginning may lead to confusion.
* score: Delete _Thread_Ticks_per_timesliceSebastian Huber2014-04-071-1/+0
| | | | Use the Configuration instead.
* score: Delete _Thread_Maximum_extensionsSebastian Huber2014-04-071-1/+0
| | | | Use the Configuration instead.
* score: Move priority bit map to scheduler instanceSebastian Huber2014-04-031-4/+3
| | | | | | Delete global variables _Priority_Major_bit_map and _Priority_Bit_map. This makes it possible to use multiple priority scheduler instances for example with clustered/partitioned scheduling on SMP.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* score: Delete _Thread_BSP_contextSebastian Huber2014-02-191-2/+1
| | | | | | | | | | | | Do not return to BSP context in the exit() shutdown path. This makes it possible to re-use the initialization stack. It can be used for the interrupt stack for example. On targets with a small RAM this is a considerable benefit. This change eliminates also some special cases and simplifies the code. Delete _Thread_Set_global_exit_status(), _Thread_Get_global_exit_status() and _Thread_Stop_multitasking().
* spsize/size.c: Fix typo.HailinGuo2014-01-091-4/+8
| | | | From pull request at https://github.com/hazirguo/rtems/commit/fc07a4c501ffebe406464eb9b8dd2097adfd5e60
* score: Rename tod.h to todimpl.hSebastian Huber2013-08-011-1/+1
|
* score: Create mpci implementation headerSebastian Huber2013-07-261-2/+2
| | | | | Move implementation specific parts of mpci.h into new header file mpciimpl.h. The mpci.h contains now only the application visible API.
* score: Create prioritybitmap implementation headerSebastian Huber2013-07-261-1/+1
| | | | | | | | Move implementation specific parts of prioritybitmap.h and prioritybitmap.inl into new header file prioritybitmapimpl.h. The prioritybitmap.h contains now only the application visible API. Move content of bitfield.h into prioritybitmapimpl.h.
* rtems: Create tasks implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of tasks.h and tasks.inl into new header file tasksimpl.h. The tasks.h contains now only the application visible API.
* rtems: Create region implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of region.h and region.inl into new header file regionimpl.h. The region.h contains now only the application visible API.
* rtems: Create part implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of part.h and part.inl into new header file partimpl.h. The part.h contains now only the application visible API.
* rtems: Create timer implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of timer.h and timer.inl into new header file timerimpl.h. The timer.h contains now only the application visible API.
* rtems: Create ratemon implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of ratemon.h and ratemon.inl into new header file ratemonimpl.h. The ratemon.h contains now only the application visible API.
* rtems: Create dpmem implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of dpmem.h and dpmem.inl into new header file dpmemimpl.h. The dpmem.h contains now only the application visible API.
* rtems: Create event implementation headerSebastian Huber2013-07-231-4/+2
| | | | | | Move implementation specific parts of event.h, event.inl, eventset.h and eventset.inl into new header file eventimpl.h. The event.h contains now only the application visible API.
* sapi: Create extension implementation headerSebastian Huber2013-07-231-2/+2
| | | | | | Move implementation specific parts of extension.h and extension.inl into new header file extensionimpl.h. The extension.h contains now only the application visible API.
* score: Create watchdog implementation headerSebastian Huber2013-07-221-0/+1
| | | | | | Move implementation specific parts of watchdog.h and watchdog.inl into new header file watchdogimpl.h. The watchdog.h contains now only the application visible API.
* rtems: Create message queue implementation headerSebastian Huber2013-07-221-2/+2
| | | | | | Move implementation specific parts of message.h and message.inl into new header file messageimpl.h. The message.h contains now only the application visible API.
* rtems: Create semaphore implementation headerSebastian Huber2013-07-181-2/+2
| | | | | | Move implementation specific parts of sem.h and sem.inl into new header file semimpl.h. The sem.h contains now only the application visible API.
* score: Rename rtems_smp_get_number_of_processors()Sebastian Huber2013-06-141-5/+1
| | | | | | | | | Rename in rtems_smp_get_processor_count(). Always provide <rtems/score/smp.h> and <rtems/rtems/smp.h>. Add _SMP_Get_processor_count(). This function will be a compile time constant defined to be one on uni-processor configurations. This allows iterations over all processors without overhead on uni-processor configurations.
* score: Add and use <rtems/score/userextimpl.h>Sebastian Huber2012-11-221-1/+1
| | | | | This file contains the parts of <rtems/score/userext.h> that are only necessary for the RTEMS implementation.
* score: New structure TOD_ControlSebastian Huber2012-06-141-2/+2
| | | | | Group the global TOD variables (_TOD_Now, _TOD_Uptime, and _TOD_Is_set) in a structure to reduce address loads in _TOD_Tickle_ticks().
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-111-2/+0
| | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
* 2011-04-27 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2011-04-271-0/+3
| | | | | | PR 1784 * sptests/spsize/size.c: Split bspsmp.h into two files smp.h and bspsmp.h
* 2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>Joel Sherrill2011-03-161-1/+5
| | | | | | | | | | | | PR 1729/cpukit * spsize/size.c: Add next step in SMP support. This adds an allocated array of the Per_CPU structures to support multiple cpus vs a single instance of the structure which is still used if SMP support is disabled. Configuration support is also added to explicitly enable or disable SMP. But SMP can only be enabled for the CPUs which will support it initially -- SPARC and i386. With the stub BSP support, a BSP can be run as a single core SMP system from an RTEMS data structure standpoint.