From 7593d56c4ff573ca6e7e0ab01b3436f1d3e9a950 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 19 Dec 1995 19:22:55 +0000 Subject: file lost in crash and re-added --- c/src/lib/libbsp/m68k/efi332/times | 193 ++++++++++++++++++++ c/src/lib/libbsp/m68k/idp/times | 193 ++++++++++++++++++++ c/src/lib/libbsp/m68k/mvme136/times | 191 ++++++++++++++++++++ c/src/lib/libbsp/m68k/mvme162/include/page_table.h | 42 +++++ c/src/lib/libbsp/m68k/mvme162/startup/page_table.c | 201 +++++++++++++++++++++ c/src/lib/libbsp/m68k/mvme162/times | 193 ++++++++++++++++++++ c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds | 77 ++++++++ c/src/lib/libbsp/powerpc/papyrus/times | 197 ++++++++++++++++++++ c/src/tests/tools/generic/sorttimes | 192 ++++++++++++++++++++ 9 files changed, 1479 insertions(+) create mode 100644 c/src/lib/libbsp/m68k/efi332/times create mode 100644 c/src/lib/libbsp/m68k/idp/times create mode 100644 c/src/lib/libbsp/m68k/mvme136/times create mode 100644 c/src/lib/libbsp/m68k/mvme162/include/page_table.h create mode 100644 c/src/lib/libbsp/m68k/mvme162/startup/page_table.c create mode 100644 c/src/lib/libbsp/m68k/mvme162/times create mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds create mode 100644 c/src/lib/libbsp/powerpc/papyrus/times create mode 100644 c/src/tests/tools/generic/sorttimes diff --git a/c/src/lib/libbsp/m68k/efi332/times b/c/src/lib/libbsp/m68k/efi332/times new file mode 100644 index 0000000000..17ac20f2cf --- /dev/null +++ b/c/src/lib/libbsp/m68k/efi332/times @@ -0,0 +1,193 @@ +# +# Timing Test Suite Results for the EFI332 BSP +# +# $Id$ +# + +NOTE: This BSP is used submitted and no information is currently available. + +Board: EFI332 +CPU: 68332 +Clock Speed: 20 Mhz +Memory Configuration: SRAM, DRAM, cache, etc +Wait States: + +Times Reported in: cycles, microseconds, etc +Timer Source: Count Down Timer, on-CPU cycle counter, etc + +Column A: unused +Column B: unused + +# DESCRIPTION A B +== ================================================================= ==== ==== + 1 rtems_semaphore_create 20 + rtems_semaphore_delete 21 + rtems_semaphore_obtain: available 15 + rtems_semaphore_obtain: not available -- NO_WAIT 15 + rtems_semaphore_release: no waiting tasks 16 + + 2 rtems_semaphore_obtain: not available -- caller blocks 62 + + 3 rtems_semaphore_release: task readied -- preempts caller 55 + + 4 rtems_task_restart: blocked task -- preempts caller 77 + rtems_task_restart: ready task -- preempts caller 70 + rtems_semaphore_release: task readied -- returns to caller 25 + rtems_task_create 57 + rtems_task_start 31 + rtems_task_restart: suspended task -- returns to caller 36 + rtems_task_delete: suspended task 47 + rtems_task_restart: ready task -- returns to caller 37 + rtems_task_restart: blocked task -- returns to caller 46 + rtems_task_delete: blocked task 50 + + 5 rtems_task_suspend: calling task 51 + rtems_task_resume: task readied -- preempts caller 49 + + 6 rtems_task_restart: calling task 59 + rtems_task_suspend: returns to caller 18 + rtems_task_resume: task readied -- returns to caller 19 + rtems_task_delete: ready task 50 + + 7 rtems_task_restart: suspended task -- preempts caller 70 + + 8 rtems_task_set_priority: obtain current priority 12 + rtems_task_set_priority: returns to caller 27 + rtems_task_mode: obtain current mode 5 + rtems_task_mode: no reschedule 5 + rtems_task_mode: reschedule -- returns to caller 8 + rtems_task_mode: reschedule -- preempts caller 39 + rtems_task_set_note 13 + rtems_task_get_note 13 + rtems_clock_set 33 + rtems_clock_get 3 + + 9 rtems_message_queue_create 110 + rtems_message_queue_send: no waiting tasks 37 + rtems_message_queue_urgent: no waiting tasks 37 + rtems_message_queue_receive: available 31 + rtems_message_queue_flush: no messages flushed 12 + rtems_message_queue_flush: messages flushed 16 + rtems_message_queue_delete 26 + +10 rtems_message_queue_receive: not available -- NO_WAIT 15 + rtems_message_queue_receive: not available -- caller blocks 62 + +11 rtems_message_queue_send: task readied -- preempts caller 72 + +12 rtems_message_queue_send: task readied -- returns to caller 39 + +13 rtems_message_queue_urgent: task readied -- preempts caller 72 + +14 rtems_message_queue_urgent: task readied -- returns to caller 39 + +15 rtems_event_receive: obtain current events 1 + rtems_event_receive: not available -- NO_WAIT 12 + rtems_event_receive: not available -- caller blocks 56 + rtems_event_send: no task readied 12 + rtems_event_receive: available 12 + rtems_event_send: task readied -- returns to caller 24 + +16 rtems_event_send: task readied -- preempts caller 55 + +17 rtems_task_set_priority: preempts caller 62 + +18 rtems_task_delete: calling task 83 + +19 rtems_signal_catch 9 + rtems_signal_send: returns to caller 15 + rtems_signal_send: signal to self 18 + exit ASR overhead: returns to calling task 22 + exit ASR overhead: returns to preempting task 49 + +20 rtems_partition_create 35 + rtems_region_create 23 + rtems_partition_get_buffer: available 15 + rtems_partition_get_buffer: not available 13 + rtems_partition_return_buffer 18 + rtems_partition_delete 16 + rtems_region_get_segment: available 22 + rtems_region_get_segment: not available -- NO_WAIT 21 + rtems_region_return_segment: no waiting tasks 19 + rtems_region_get_segment: not available -- caller blocks 64 + rtems_region_return_segment: task readied -- preempts caller 74 + rtems_region_return_segment: task readied -- returns to caller 44 + rtems_region_delete 16 + rtems_io_initialize 2 + rtems_io_open 1 + rtems_io_close 1 + rtems_io_read 1 + rtems_io_write 1 + rtems_io_control 1 + +21 rtems_task_ident 149 + rtems_message_queue_ident 145 + rtems_semaphore_ident 156 + rtems_partition_ident 145 + rtems_region_ident 148 + rtems_port_ident 145 + rtems_timer_ident 145 + rtems_rate_monotonic_ident 145 + +22 rtems_message_queue_broadcast: task readied -- returns to caller 42 + rtems_message_queue_broadcast: no waiting tasks 17 + rtems_message_queue_broadcast: task readied -- preempts caller 78 + +23 rtems_timer_create 14 + rtems_timer_fire_after: inactive 22 + rtems_timer_fire_after: active 24 + rtems_timer_cancel: active 15 + rtems_timer_cancel: inactive 13 + rtems_timer_reset: inactive 21 + rtems_timer_reset: active 23 + rtems_timer_fire_when: inactive 34 + rtems_timer_fire_when: active 34 + rtems_timer_delete: active 19 + rtems_timer_delete: inactive 17 + rtems_task_wake_when 69 + +24 rtems_task_wake_after: yield -- returns to caller 9 + rtems_task_wake_after: yields -- preempts caller 45 + +25 rtems_clock_tick 4 + +26 _ISR_Disable 0 + _ISR_Flash 1 + _ISR_Enable 1 + _Thread_Disable_dispatch 0 + _Thread_Enable_dispatch 7 + _Thread_Set_state 11 + _Thread_Disptach (NO FP) 31 + context switch: no floating point contexts 21 + context switch: self 10 + context switch: to another task 10 + context switch: restore 1st FP task 25 + fp context switch: save idle, restore idle 31 + fp context switch: save idle, restore initialized 19 + fp context switch: save initialized, restore initialized 20 + _Thread_Resume 7 + _Thread_Unblock 7 + _Thread_Ready 9 + _Thread_Get 4 + _Semaphore_Get 2 + _Thread_Get: invalid id 0 + +27 interrupt entry overhead: returns to interrupted task 6 + interrupt exit overhead: returns to interrupted task 6 + interrupt entry overhead: returns to nested interrupt 6 + interrupt exit overhead: returns to nested interrupt 5 + interrupt entry overhead: returns to preempting task 7 + interrupt exit overhead: returns to preempting task 36 + +28 rtems_port_create 16 + rtems_port_external_to_internal 11 + rtems_port_internal_to_external 11 + rtems_port_delete 16 + +29 rtems_rate_monotonic_create 15 + rtems_rate_monotonic_period: initiate period -- returns to caller 21 + rtems_rate_monotonic_period: obtain status 13 + rtems_rate_monotonic_cancel 16 + rtems_rate_monotonic_delete: inactive 18 + rtems_rate_monotonic_delete: active 20 + rtems_rate_monotonic_period: conclude periods -- caller blocks 53 diff --git a/c/src/lib/libbsp/m68k/idp/times b/c/src/lib/libbsp/m68k/idp/times new file mode 100644 index 0000000000..92864585f3 --- /dev/null +++ b/c/src/lib/libbsp/m68k/idp/times @@ -0,0 +1,193 @@ +# +# Timing Test Suite Results for the Motorola IDP BSP +# +# $Id$ +# + +NOTE: This BSP is used submitted and no information is currently available. + +Board: IDP +CPU: +Clock Speed: +Memory Configuration: SRAM, DRAM, cache, etc +Wait States: + +Times Reported in: cycles, microseconds, etc +Timer Source: Count Down Timer, on-CPU cycle counter, etc + +Column A: unused +Column B: unused + +# DESCRIPTION A B +== ================================================================= ==== ==== + 1 rtems_semaphore_create 20 + rtems_semaphore_delete 21 + rtems_semaphore_obtain: available 15 + rtems_semaphore_obtain: not available -- NO_WAIT 15 + rtems_semaphore_release: no waiting tasks 16 + + 2 rtems_semaphore_obtain: not available -- caller blocks 62 + + 3 rtems_semaphore_release: task readied -- preempts caller 55 + + 4 rtems_task_restart: blocked task -- preempts caller 77 + rtems_task_restart: ready task -- preempts caller 70 + rtems_semaphore_release: task readied -- returns to caller 25 + rtems_task_create 57 + rtems_task_start 31 + rtems_task_restart: suspended task -- returns to caller 36 + rtems_task_delete: suspended task 47 + rtems_task_restart: ready task -- returns to caller 37 + rtems_task_restart: blocked task -- returns to caller 46 + rtems_task_delete: blocked task 50 + + 5 rtems_task_suspend: calling task 51 + rtems_task_resume: task readied -- preempts caller 49 + + 6 rtems_task_restart: calling task 59 + rtems_task_suspend: returns to caller 18 + rtems_task_resume: task readied -- returns to caller 19 + rtems_task_delete: ready task 50 + + 7 rtems_task_restart: suspended task -- preempts caller 70 + + 8 rtems_task_set_priority: obtain current priority 12 + rtems_task_set_priority: returns to caller 27 + rtems_task_mode: obtain current mode 5 + rtems_task_mode: no reschedule 5 + rtems_task_mode: reschedule -- returns to caller 8 + rtems_task_mode: reschedule -- preempts caller 39 + rtems_task_set_note 13 + rtems_task_get_note 13 + rtems_clock_set 33 + rtems_clock_get 3 + + 9 rtems_message_queue_create 110 + rtems_message_queue_send: no waiting tasks 37 + rtems_message_queue_urgent: no waiting tasks 37 + rtems_message_queue_receive: available 31 + rtems_message_queue_flush: no messages flushed 12 + rtems_message_queue_flush: messages flushed 16 + rtems_message_queue_delete 26 + +10 rtems_message_queue_receive: not available -- NO_WAIT 15 + rtems_message_queue_receive: not available -- caller blocks 62 + +11 rtems_message_queue_send: task readied -- preempts caller 72 + +12 rtems_message_queue_send: task readied -- returns to caller 39 + +13 rtems_message_queue_urgent: task readied -- preempts caller 72 + +14 rtems_message_queue_urgent: task readied -- returns to caller 39 + +15 rtems_event_receive: obtain current events 1 + rtems_event_receive: not available -- NO_WAIT 12 + rtems_event_receive: not available -- caller blocks 56 + rtems_event_send: no task readied 12 + rtems_event_receive: available 12 + rtems_event_send: task readied -- returns to caller 24 + +16 rtems_event_send: task readied -- preempts caller 55 + +17 rtems_task_set_priority: preempts caller 62 + +18 rtems_task_delete: calling task 83 + +19 rtems_signal_catch 9 + rtems_signal_send: returns to caller 15 + rtems_signal_send: signal to self 18 + exit ASR overhead: returns to calling task 22 + exit ASR overhead: returns to preempting task 49 + +20 rtems_partition_create 35 + rtems_region_create 23 + rtems_partition_get_buffer: available 15 + rtems_partition_get_buffer: not available 13 + rtems_partition_return_buffer 18 + rtems_partition_delete 16 + rtems_region_get_segment: available 22 + rtems_region_get_segment: not available -- NO_WAIT 21 + rtems_region_return_segment: no waiting tasks 19 + rtems_region_get_segment: not available -- caller blocks 64 + rtems_region_return_segment: task readied -- preempts caller 74 + rtems_region_return_segment: task readied -- returns to caller 44 + rtems_region_delete 16 + rtems_io_initialize 2 + rtems_io_open 1 + rtems_io_close 1 + rtems_io_read 1 + rtems_io_write 1 + rtems_io_control 1 + +21 rtems_task_ident 149 + rtems_message_queue_ident 145 + rtems_semaphore_ident 156 + rtems_partition_ident 145 + rtems_region_ident 148 + rtems_port_ident 145 + rtems_timer_ident 145 + rtems_rate_monotonic_ident 145 + +22 rtems_message_queue_broadcast: task readied -- returns to caller 42 + rtems_message_queue_broadcast: no waiting tasks 17 + rtems_message_queue_broadcast: task readied -- preempts caller 78 + +23 rtems_timer_create 14 + rtems_timer_fire_after: inactive 22 + rtems_timer_fire_after: active 24 + rtems_timer_cancel: active 15 + rtems_timer_cancel: inactive 13 + rtems_timer_reset: inactive 21 + rtems_timer_reset: active 23 + rtems_timer_fire_when: inactive 34 + rtems_timer_fire_when: active 34 + rtems_timer_delete: active 19 + rtems_timer_delete: inactive 17 + rtems_task_wake_when 69 + +24 rtems_task_wake_after: yield -- returns to caller 9 + rtems_task_wake_after: yields -- preempts caller 45 + +25 rtems_clock_tick 4 + +26 _ISR_Disable 0 + _ISR_Flash 1 + _ISR_Enable 1 + _Thread_Disable_dispatch 0 + _Thread_Enable_dispatch 7 + _Thread_Set_state 11 + _Thread_Disptach (NO FP) 31 + context switch: no floating point contexts 21 + context switch: self 10 + context switch: to another task 10 + context switch: restore 1st FP task 25 + fp context switch: save idle, restore idle 31 + fp context switch: save idle, restore initialized 19 + fp context switch: save initialized, restore initialized 20 + _Thread_Resume 7 + _Thread_Unblock 7 + _Thread_Ready 9 + _Thread_Get 4 + _Semaphore_Get 2 + _Thread_Get: invalid id 0 + +27 interrupt entry overhead: returns to interrupted task 6 + interrupt exit overhead: returns to interrupted task 6 + interrupt entry overhead: returns to nested interrupt 6 + interrupt exit overhead: returns to nested interrupt 5 + interrupt entry overhead: returns to preempting task 7 + interrupt exit overhead: returns to preempting task 36 + +28 rtems_port_create 16 + rtems_port_external_to_internal 11 + rtems_port_internal_to_external 11 + rtems_port_delete 16 + +29 rtems_rate_monotonic_create 15 + rtems_rate_monotonic_period: initiate period -- returns to caller 21 + rtems_rate_monotonic_period: obtain status 13 + rtems_rate_monotonic_cancel 16 + rtems_rate_monotonic_delete: inactive 18 + rtems_rate_monotonic_delete: active 20 + rtems_rate_monotonic_period: conclude periods -- caller blocks 53 diff --git a/c/src/lib/libbsp/m68k/mvme136/times b/c/src/lib/libbsp/m68k/mvme136/times new file mode 100644 index 0000000000..c1c6020183 --- /dev/null +++ b/c/src/lib/libbsp/m68k/mvme136/times @@ -0,0 +1,191 @@ +# +# Timing Test Suite Results for the Motorola MVME136 BSP +# +# $Id$ +# + +Board: Motorola MVME136 +CPU: Motorola MC68020 + MC68881 FPU +Clock Speed: 20 Mhz +Memory Configuration: DRAM w/no cache +Wait States: 1 wait state + +Times Reported in: microseconds +Timer Source: Zilog Z8036 + +Column A: 3.5.1 pre-release +Column B: unused + +# DESCRIPTION A B +== ================================================================= ==== ==== + 1 rtems_semaphore_create 67 + rtems_semaphore_delete 64 + rtems_semaphore_obtain: available 46 + rtems_semaphore_obtain: not available -- NO_WAIT 45 + rtems_semaphore_release: no waiting tasks 51 + + 2 rtems_semaphore_obtain: not available -- caller blocks 113 + + 3 rtems_semaphore_release: task readied -- preempts caller 94 + + 4 rtems_task_restart: blocked task -- preempts caller 152 + rtems_task_restart: ready task -- preempts caller 145 + rtems_semaphore_release: task readied -- returns to caller 71 + rtems_task_create 154 + rtems_task_start 82 + rtems_task_restart: suspended task -- returns to caller 94 + rtems_task_delete: suspended task 145 + rtems_task_restart: ready task -- returns to caller 97 + rtems_task_restart: blocked task -- returns to caller 128 + rtems_task_delete: blocked task 149 + + 5 rtems_task_suspend: calling task 77 + rtems_task_resume: task readied -- preempts caller 74 + + 6 rtems_task_restart: calling task 101 + rtems_task_suspend: returns to caller 50 + rtems_task_resume: task readied -- returns to caller 50 + rtems_task_delete: ready task 151 + + 7 rtems_task_restart: suspended task -- preempts caller 130 + + 8 rtems_task_set_priority: obtain current priority 38 + rtems_task_set_priority: returns to caller 71 + rtems_task_mode: obtain current mode 16 + rtems_task_mode: no reschedule 18 + rtems_task_mode: reschedule -- returns to caller 24 + rtems_task_mode: reschedule -- preempts caller 68 + rtems_task_set_note 39 + rtems_task_get_note 40 + rtems_clock_set 93 + rtems_clock_get 1 + + 9 rtems_message_queue_create 207 + rtems_message_queue_send: no waiting tasks 103 + rtems_message_queue_urgent: no waiting tasks 103 + rtems_message_queue_receive: available 87 + rtems_message_queue_flush: no messages flushed 36 + rtems_message_queue_flush: messages flushed 46 + rtems_message_queue_delete 85 + +10 rtems_message_queue_receive: not available -- NO_WAIT 51 + rtems_message_queue_receive: not available -- caller blocks 115 + +11 rtems_message_queue_send: task readied -- preempts caller 129 + +12 rtems_message_queue_send: task readied -- returns to caller 107 + +13 rtems_message_queue_urgent: task readied -- preempts caller 130 + +14 rtems_message_queue_urgent: task readied -- returns to caller 107 + +15 rtems_event_receive: obtain current events 0 + rtems_event_receive: not available -- NO_WAIT 33 + rtems_event_receive: not available -- caller blocks 92 + rtems_event_send: no task readied 34 + rtems_event_receive: available 36 + rtems_event_send: task readied -- returns to caller 67 + +16 rtems_event_send: task readied -- preempts caller 90 + +17 rtems_task_set_priority: preempts caller 110 + +18 rtems_task_delete: calling task 175 + +19 rtems_signal_catch 23 + rtems_signal_send: returns to caller 43 + rtems_signal_send: signal to self 52 + exit ASR overhead: returns to calling task 37 + exit ASR overhead: returns to preempting task 65 + +20 rtems_partition_create 77 + rtems_region_create 70 + rtems_partition_get_buffer: available 42 + rtems_partition_get_buffer: not available 40 + rtems_partition_return_buffer 50 + rtems_partition_delete 47 + rtems_region_get_segment: available 58 + rtems_region_get_segment: not available -- NO_WAIT 55 + rtems_region_return_segment: no waiting tasks 60 + rtems_region_get_segment: not available -- caller blocks 126 + rtems_region_return_segment: task readied -- preempts caller 143 + rtems_region_return_segment: task readied -- returns to caller 120 + rtems_region_delete 45 + rtems_io_initialize 6 + rtems_io_open 2 + rtems_io_close 1 + rtems_io_read 2 + rtems_io_write 2 + rtems_io_control 2 + +21 rtems_task_ident 353 + rtems_message_queue_ident 344 + rtems_semaphore_ident 369 + rtems_partition_ident 344 + rtems_region_ident 350 + rtems_port_ident 343 + rtems_timer_ident 345 + rtems_rate_monotonic_ident 344 + +22 rtems_message_queue_broadcast: task readied -- returns to caller 115 + rtems_message_queue_broadcast: no waiting tasks 60 + rtems_message_queue_broadcast: task readied -- preempts caller 138 + +23 rtems_timer_create 37 + rtems_timer_fire_after: inactive 66 + rtems_timer_fire_after: active 70 + rtems_timer_cancel: active 42 + rtems_timer_cancel: inactive 39 + rtems_timer_reset: inactive 60 + rtems_timer_reset: active 65 + rtems_timer_fire_when: inactive 96 + rtems_timer_fire_when: active 96 + rtems_timer_delete: active 55 + rtems_timer_delete: inactive 51 + rtems_task_wake_when 125 + +24 rtems_task_wake_after: yield -- returns to caller 26 + rtems_task_wake_after: yields -- preempts caller 65 + +25 rtems_clock_tick 14 + +26 _ISR_Disable 0 + _ISR_Flash 0 + _ISR_Enable 0 + _Thread_Disable_dispatch 0 + _Thread_Enable_dispatch 19 + _Thread_Set_state 24 + _Thread_Disptach (NO FP) 50 + context switch: no floating point contexts 41 + context switch: self 9 + context switch: to another task 9 + context switch: restore 1st FP task 46 + fp context switch: save idle, restore idle 75 + fp context switch: save idle, restore initialized 66 + fp context switch: save initialized, restore initialized 65 + _Thread_Resume 18 + _Thread_Unblock 18 + _Thread_Ready 22 + _Thread_Get 12 + _Semaphore_Get 10 + _Thread_Get: invalid id 2 + +27 interrupt entry overhead: returns to interrupted task 9 + interrupt exit overhead: returns to interrupted task 8 + interrupt entry overhead: returns to nested interrupt 14 + interrupt exit overhead: returns to nested interrupt 0 + interrupt entry overhead: returns to preempting task 8 + interrupt exit overhead: returns to preempting task 62 + +28 rtems_port_create 44 + rtems_port_external_to_internal 35 + rtems_port_internal_to_external 34 + rtems_port_delete 46 + +29 rtems_rate_monotonic_create 40 + rtems_rate_monotonic_period: initiate period -- returns to caller 60 + rtems_rate_monotonic_period: obtain status 38 + rtems_rate_monotonic_cancel 46 + rtems_rate_monotonic_delete: inactive 54 + rtems_rate_monotonic_delete: active 57 + rtems_rate_monotonic_period: conclude periods -- caller blocks 83 diff --git a/c/src/lib/libbsp/m68k/mvme162/include/page_table.h b/c/src/lib/libbsp/m68k/mvme162/include/page_table.h new file mode 100644 index 0000000000..ec73c3dae8 --- /dev/null +++ b/c/src/lib/libbsp/m68k/mvme162/include/page_table.h @@ -0,0 +1,42 @@ +/* + * $Id$ + * + * This file was submitted by Eric Vaitl and + * supports page table initialization. + * + * $Log$ + * Revision 1.1 1995/12/05 15:29:19 joel + * added.. submitted by Eric Vaitl + * + * Revision 1.2 1995/10/27 21:00:33 vaitl + * Modified page table routines so application code can map + * VME space. + * + * Revision 1.1 1995/10/25 17:16:06 vaitl + * Working on page table. Caching partially set up, but can't currently + * set tc register. + * + */ + +#ifndef PAGE_TABLE_H +#define PAGE_TABLE_H + +extern void page_table_teardown(void); +extern void page_table_init(void); +extern int page_table_map(void *addr, unsigned long size, int cache_type); + +enum { + CACHE_WRITE_THROUGH, + CACHE_COPYBACK, + CACHE_NONE_SERIALIZED, + CACHE_NONE +}; +enum { + PTM_SUCCESS, + PTM_BAD_ADDR, + PTM_BAD_SIZE, + PTM_BAD_CACHE, + PTM_NO_TABLE_SPACE +}; + +#endif diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/page_table.c b/c/src/lib/libbsp/m68k/mvme162/startup/page_table.c new file mode 100644 index 0000000000..76f0d5d52b --- /dev/null +++ b/c/src/lib/libbsp/m68k/mvme162/startup/page_table.c @@ -0,0 +1,201 @@ +/* + * $Id$ + * + * This file was submitted by Eric Vaitl . + * The manipulation of the page table has a very positive impact on + * the performance of the MVME162. + * + * The following history is included verbatim from the submitter. + * + * Revision 1.8 1995/11/18 00:07:25 vaitl + * Modified asm statements to get rid of the register hard-codes. + * + * Revision 1.7 1995/10/27 21:00:32 vaitl + * Modified page table routines so application code can map + * VME space. + * + * Revision 1.6 1995/10/26 17:40:01 vaitl + * Two cache changes after reading the mvme162 users manual. + * + * 1) The users manual says that the MPU can act as a source for the + * VME2 chip, so I made the VME accessable memory copy-back instead + * of write through. I have't changed the comments yet. If this + * causes problems, I'll change it back. + * + * 2) The 162 book also says that IO space should be serialized as well as + * non-cacheable. I flipped the appropriate dttr0 and ittr0 registers. I + * don't think this is really necessary because we don't recover from any + * exceptions. If it slows down IO addresses too much, I'll change it back + * and see what happens. + * + * Revision 1.5 1995/10/25 19:32:38 vaitl + * Got it. Three problems: + * 1) Must cpusha instead of cinva. + * 2) On page descriptors the PDT field of 1 or 3 is resident. On pointer + * descriptors resident is 2 or 3. I was using 2 for everything. + * Changed it to 3 for everything. + * 3) Forgot to do a pflusha. + * + * Revision 1.4 1995/10/25 17:47:11 vaitl + * Still working on it. + * + * Revision 1.3 1995/10/25 17:16:05 vaitl + * Working on page table. Caching partially set up, but can't currently + * set tc register. + * +*/ +#include +#include "page_table.h" + +/* All page table must fit between BASE_TABLE_ADDR and + MAX_TABLE_ADDR. */ + +#define BASE_TABLE_ADDR 0x10000 +#define MAX_TABLE_ADDR 0x20000 +#define ROOT_TABLE_SIZE 512 +#define POINTER_TABLE_SIZE 512 +#define PAGE_TABLE_SIZE 256 + +static unsigned long *root_table; +static unsigned long *next_avail; + +/* Returns a zeroed out table. */ +static unsigned long *table_alloc(int size){ + unsigned long *addr=next_avail; + if(((unsigned long)next_avail + size) > MAX_TABLE_ADDR){ + return 0; + } + bzero((void *)addr,size); + next_avail =(unsigned long *)((unsigned long)next_avail + size); + return addr; +} + + + +/* + void page_table_init(); + + This should transparently map the first 4 Meg of ram. Caching is + turned off from 0x00000000 to 0x00020000 (this region is used by + 162Bug and contains the page tables). From 0x00020000 to 0x00400000 + we are using copy back caching. DTTR0 and ITTR0 are set up to + directly translate from 0x80000000-0xffffffff with caching turned + off and serialized. Addresses between 0x400000 and 0x80000000 are + illegal. +*/ +void page_table_init(){ + + /* put everything in a known state */ + page_table_teardown(); + + root_table=table_alloc(ROOT_TABLE_SIZE); + + /* First set up TTR. + base address = 0x80000000 + address mask = 0x7f + Ignore FC2 for match. + Noncachable. + Not write protected.*/ + asm volatile ("movec %0,%%dtt0 + movec %0,%%itt0" + :: "d" (0x807fc040)); + + /* Point urp and srp at root page table. */ + asm volatile ("movec %0,%%urp + movec %0,%%srp" + :: "d" (BASE_TABLE_ADDR)); + + page_table_map((void *)0,0x20000, CACHE_NONE); + page_table_map((void *)0x20000,0x400000-0x20000,CACHE_COPYBACK); + + /* Turn on paging with a 4 k page size.*/ + asm volatile ("movec %0,%%tc" + :: "d" (0x8000)); + + /* Turn on the cache. */ + asm volatile ("movec %0,%%cacr" + :: "d" (0x80008000)); +} + +void page_table_teardown(){ + next_avail=(unsigned long *)BASE_TABLE_ADDR; + /* Turn off paging. Turn off the cache. Flush the cache. Tear down + the transparent translations. */ + asm volatile ("movec %0,%%tc + movec %0,%%cacr + cpusha %%bc + movec %0,%%dtt0 + movec %0,%%itt0 + movec %0,%%dtt1 + movec %0,%%itt1" + :: "d" (0) ); +} + +/* Identity maps addr to addr+size with caching cache_type. */ +int page_table_map(void *addr, unsigned long size, int cache_type){ + unsigned long *pointer_table; + unsigned long *page_table; + unsigned long root_index, pointer_index, page_index; + /* addr must be a multiple of 4k */ + if((unsigned long)addr & 0xfff){ + return PTM_BAD_ADDR; + } + /* size must also be a multiple of 4k */ + if(size & 0xfff){ + return PTM_BAD_SIZE; + } + /* check for valid cache type */ + if( (cache_type>CACHE_NONE) || (cache_type>= 25; + root_index &= 0x7f; + + if(root_table[root_index]){ + pointer_table = + (unsigned long *) (root_table[root_index] & 0xfffffe00); + }else{ + if(!(pointer_table=table_alloc(POINTER_TABLE_SIZE))){ + return PTM_NO_TABLE_SPACE; + } + root_table[root_index]=((unsigned long)pointer_table) + 0x03; + } + + pointer_index=(unsigned long)addr; + pointer_index >>=18; + pointer_index &= 0x7f; + + if(pointer_table[pointer_index]){ + page_table = + (unsigned long *) (pointer_table[pointer_index] & + 0xffffff00); + }else{ + if(!(page_table=table_alloc(PAGE_TABLE_SIZE))){ + return PTM_NO_TABLE_SPACE; + } + pointer_table[pointer_index]= + ((unsigned long)page_table) + 0x03; + } + + page_index=(unsigned long)addr; + page_index >>=12; + page_index &= 0x3f; + + page_table[page_index] = + ((unsigned long) addr & 0xfffff000) + 0x03 + (cache_type << 5); + + size -= 4096; + addr = (void *) ((unsigned long)addr + 4096); + } + + /* Flush the ATC. Push and invalidate the cache. */ + asm volatile ("pflusha + cpusha %bc"); + + return PTM_SUCCESS; +} + + diff --git a/c/src/lib/libbsp/m68k/mvme162/times b/c/src/lib/libbsp/m68k/mvme162/times new file mode 100644 index 0000000000..7f37dc4176 --- /dev/null +++ b/c/src/lib/libbsp/m68k/mvme162/times @@ -0,0 +1,193 @@ +# +# Timing Test Suite Results for the Motorola MVME162 BSP +# +# $Id$ +# + +NOTE: This BSP is used submitted and no information is currently available. + +Board: Motorola MVME162 +CPU: Motorola MC68040 +Clock Speed: +Memory Configuration: SRAM, DRAM, cache, etc +Wait States: + +Times Reported in: cycles, microseconds, etc +Timer Source: Count Down Timer, on-CPU cycle counter, etc + +Column A: unused +Column B: unused + +# DESCRIPTION A B +== ================================================================= ==== ==== + 1 rtems_semaphore_create 20 + rtems_semaphore_delete 21 + rtems_semaphore_obtain: available 15 + rtems_semaphore_obtain: not available -- NO_WAIT 15 + rtems_semaphore_release: no waiting tasks 16 + + 2 rtems_semaphore_obtain: not available -- caller blocks 62 + + 3 rtems_semaphore_release: task readied -- preempts caller 55 + + 4 rtems_task_restart: blocked task -- preempts caller 77 + rtems_task_restart: ready task -- preempts caller 70 + rtems_semaphore_release: task readied -- returns to caller 25 + rtems_task_create 57 + rtems_task_start 31 + rtems_task_restart: suspended task -- returns to caller 36 + rtems_task_delete: suspended task 47 + rtems_task_restart: ready task -- returns to caller 37 + rtems_task_restart: blocked task -- returns to caller 46 + rtems_task_delete: blocked task 50 + + 5 rtems_task_suspend: calling task 51 + rtems_task_resume: task readied -- preempts caller 49 + + 6 rtems_task_restart: calling task 59 + rtems_task_suspend: returns to caller 18 + rtems_task_resume: task readied -- returns to caller 19 + rtems_task_delete: ready task 50 + + 7 rtems_task_restart: suspended task -- preempts caller 70 + + 8 rtems_task_set_priority: obtain current priority 12 + rtems_task_set_priority: returns to caller 27 + rtems_task_mode: obtain current mode 5 + rtems_task_mode: no reschedule 5 + rtems_task_mode: reschedule -- returns to caller 8 + rtems_task_mode: reschedule -- preempts caller 39 + rtems_task_set_note 13 + rtems_task_get_note 13 + rtems_clock_set 33 + rtems_clock_get 3 + + 9 rtems_message_queue_create 110 + rtems_message_queue_send: no waiting tasks 37 + rtems_message_queue_urgent: no waiting tasks 37 + rtems_message_queue_receive: available 31 + rtems_message_queue_flush: no messages flushed 12 + rtems_message_queue_flush: messages flushed 16 + rtems_message_queue_delete 26 + +10 rtems_message_queue_receive: not available -- NO_WAIT 15 + rtems_message_queue_receive: not available -- caller blocks 62 + +11 rtems_message_queue_send: task readied -- preempts caller 72 + +12 rtems_message_queue_send: task readied -- returns to caller 39 + +13 rtems_message_queue_urgent: task readied -- preempts caller 72 + +14 rtems_message_queue_urgent: task readied -- returns to caller 39 + +15 rtems_event_receive: obtain current events 1 + rtems_event_receive: not available -- NO_WAIT 12 + rtems_event_receive: not available -- caller blocks 56 + rtems_event_send: no task readied 12 + rtems_event_receive: available 12 + rtems_event_send: task readied -- returns to caller 24 + +16 rtems_event_send: task readied -- preempts caller 55 + +17 rtems_task_set_priority: preempts caller 62 + +18 rtems_task_delete: calling task 83 + +19 rtems_signal_catch 9 + rtems_signal_send: returns to caller 15 + rtems_signal_send: signal to self 18 + exit ASR overhead: returns to calling task 22 + exit ASR overhead: returns to preempting task 49 + +20 rtems_partition_create 35 + rtems_region_create 23 + rtems_partition_get_buffer: available 15 + rtems_partition_get_buffer: not available 13 + rtems_partition_return_buffer 18 + rtems_partition_delete 16 + rtems_region_get_segment: available 22 + rtems_region_get_segment: not available -- NO_WAIT 21 + rtems_region_return_segment: no waiting tasks 19 + rtems_region_get_segment: not available -- caller blocks 64 + rtems_region_return_segment: task readied -- preempts caller 74 + rtems_region_return_segment: task readied -- returns to caller 44 + rtems_region_delete 16 + rtems_io_initialize 2 + rtems_io_open 1 + rtems_io_close 1 + rtems_io_read 1 + rtems_io_write 1 + rtems_io_control 1 + +21 rtems_task_ident 149 + rtems_message_queue_ident 145 + rtems_semaphore_ident 156 + rtems_partition_ident 145 + rtems_region_ident 148 + rtems_port_ident 145 + rtems_timer_ident 145 + rtems_rate_monotonic_ident 145 + +22 rtems_message_queue_broadcast: task readied -- returns to caller 42 + rtems_message_queue_broadcast: no waiting tasks 17 + rtems_message_queue_broadcast: task readied -- preempts caller 78 + +23 rtems_timer_create 14 + rtems_timer_fire_after: inactive 22 + rtems_timer_fire_after: active 24 + rtems_timer_cancel: active 15 + rtems_timer_cancel: inactive 13 + rtems_timer_reset: inactive 21 + rtems_timer_reset: active 23 + rtems_timer_fire_when: inactive 34 + rtems_timer_fire_when: active 34 + rtems_timer_delete: active 19 + rtems_timer_delete: inactive 17 + rtems_task_wake_when 69 + +24 rtems_task_wake_after: yield -- returns to caller 9 + rtems_task_wake_after: yields -- preempts caller 45 + +25 rtems_clock_tick 4 + +26 _ISR_Disable 0 + _ISR_Flash 1 + _ISR_Enable 1 + _Thread_Disable_dispatch 0 + _Thread_Enable_dispatch 7 + _Thread_Set_state 11 + _Thread_Disptach (NO FP) 31 + context switch: no floating point contexts 21 + context switch: self 10 + context switch: to another task 10 + context switch: restore 1st FP task 25 + fp context switch: save idle, restore idle 31 + fp context switch: save idle, restore initialized 19 + fp context switch: save initialized, restore initialized 20 + _Thread_Resume 7 + _Thread_Unblock 7 + _Thread_Ready 9 + _Thread_Get 4 + _Semaphore_Get 2 + _Thread_Get: invalid id 0 + +27 interrupt entry overhead: returns to interrupted task 6 + interrupt exit overhead: returns to interrupted task 6 + interrupt entry overhead: returns to nested interrupt 6 + interrupt exit overhead: returns to nested interrupt 5 + interrupt entry overhead: returns to preempting task 7 + interrupt exit overhead: returns to preempting task 36 + +28 rtems_port_create 16 + rtems_port_external_to_internal 11 + rtems_port_internal_to_external 11 + rtems_port_delete 16 + +29 rtems_rate_monotonic_create 15 + rtems_rate_monotonic_period: initiate period -- returns to caller 21 + rtems_rate_monotonic_period: obtain status 13 + rtems_rate_monotonic_cancel 16 + rtems_rate_monotonic_delete: inactive 18 + rtems_rate_monotonic_delete: active 20 + rtems_rate_monotonic_period: conclude periods -- caller blocks 53 diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds new file mode 100644 index 0000000000..df1997639f --- /dev/null +++ b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds @@ -0,0 +1,77 @@ +/* + * This file contains directives for the GNU linker which are specific + * to the Papyrus. + * + * $Id$ + */ + +OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", + "elf32-powerpc") +OUTPUT_ARCH(powerpc) + SEARCH_DIR(/usr/local/powerpc-rtems/lib); + +ENTRY(download_entry) + +MEMORY + { + RAM : ORIGIN = 0, LENGTH = 4M + FLASH : ORIGIN = 0xFF000000, LENGTH = 0x80000 + EPROM : ORIGIN = 0xFFFE0000, LENGTH = 0x20000 + } + +/* Do we need any of these for elf? + __DYNAMIC = 0; */ +SECTIONS +{ + .vectors 0x0100 : + { + *(.vectors) + } + + .text 0x20000 : + { + *(.entry) + *(.entry2) + *(.text) + *(.rodata) + *(.rodata1) + *(.descriptors) + *(rom_ver) + } > RAM + + /* R/W Data */ + .data : + { + *(.data) + *(.data1) + } > RAM + + .got : + { + s.got = .; + *(.got.plt) *(.got) + } > RAM + + .bss : + { + bss.start = .; + *(.bss) *(.sbss) *(COMMON) + bss.end = ALIGN(4); + } > RAM + + bss.size = bss.end - bss.start; + PROVIDE(_end = bss.end); + + .line 0 : { *(.line) } + .debug 0 : { *(.debug) } + .debug_sfnames 0 : { *(.debug_sfnames) } + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } + .debug_aregion 0 : { *(.debug_aregion) } + .debug_macinfo 0 : { *(.debug_macinfo) } + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } +} + + diff --git a/c/src/lib/libbsp/powerpc/papyrus/times b/c/src/lib/libbsp/powerpc/papyrus/times new file mode 100644 index 0000000000..da260853bf --- /dev/null +++ b/c/src/lib/libbsp/powerpc/papyrus/times @@ -0,0 +1,197 @@ +# +# Timing Test Suite Results for the Papyrus BSP +# +# NOTE: The Papyrus is a proprietary PPC403 based board. But it is the +# only BSP currently available for the PowerPC family. +# +# $Id$ +# + +NOTE: This BSP is user submitted and no timing information + is currently avaiable. + +Board: Papyrus +CPU: IBM 403GA +Clock Speed: 33 Mhz +Memory Configuration: SRAM, DRAM, cache, etc +Wait States: + +Times Reported in: cycles, microseconds, etc +Timer Source: Count Down Timer, on-CPU cycle counter, etc + +Column A: unused +Column B: unused + +# DESCRIPTION A B +== ================================================================= ==== ==== + 1 rtems_semaphore_create 20 + rtems_semaphore_delete 21 + rtems_semaphore_obtain: available 15 + rtems_semaphore_obtain: not available -- NO_WAIT 15 + rtems_semaphore_release: no waiting tasks 16 + + 2 rtems_semaphore_obtain: not available -- caller blocks 62 + + 3 rtems_semaphore_release: task readied -- preempts caller 55 + + 4 rtems_task_restart: blocked task -- preempts caller 77 + rtems_task_restart: ready task -- preempts caller 70 + rtems_semaphore_release: task readied -- returns to caller 25 + rtems_task_create 57 + rtems_task_start 31 + rtems_task_restart: suspended task -- returns to caller 36 + rtems_task_delete: suspended task 47 + rtems_task_restart: ready task -- returns to caller 37 + rtems_task_restart: blocked task -- returns to caller 46 + rtems_task_delete: blocked task 50 + + 5 rtems_task_suspend: calling task 51 + rtems_task_resume: task readied -- preempts caller 49 + + 6 rtems_task_restart: calling task 59 + rtems_task_suspend: returns to caller 18 + rtems_task_resume: task readied -- returns to caller 19 + rtems_task_delete: ready task 50 + + 7 rtems_task_restart: suspended task -- preempts caller 70 + + 8 rtems_task_set_priority: obtain current priority 12 + rtems_task_set_priority: returns to caller 27 + rtems_task_mode: obtain current mode 5 + rtems_task_mode: no reschedule 5 + rtems_task_mode: reschedule -- returns to caller 8 + rtems_task_mode: reschedule -- preempts caller 39 + rtems_task_set_note 13 + rtems_task_get_note 13 + rtems_clock_set 33 + rtems_clock_get 3 + + 9 rtems_message_queue_create 110 + rtems_message_queue_send: no waiting tasks 37 + rtems_message_queue_urgent: no waiting tasks 37 + rtems_message_queue_receive: available 31 + rtems_message_queue_flush: no messages flushed 12 + rtems_message_queue_flush: messages flushed 16 + rtems_message_queue_delete 26 + +10 rtems_message_queue_receive: not available -- NO_WAIT 15 + rtems_message_queue_receive: not available -- caller blocks 62 + +11 rtems_message_queue_send: task readied -- preempts caller 72 + +12 rtems_message_queue_send: task readied -- returns to caller 39 + +13 rtems_message_queue_urgent: task readied -- preempts caller 72 + +14 rtems_message_queue_urgent: task readied -- returns to caller 39 + +15 rtems_event_receive: obtain current events 1 + rtems_event_receive: not available -- NO_WAIT 12 + rtems_event_receive: not available -- caller blocks 56 + rtems_event_send: no task readied 12 + rtems_event_receive: available 12 + rtems_event_send: task readied -- returns to caller 24 + +16 rtems_event_send: task readied -- preempts caller 55 + +17 rtems_task_set_priority: preempts caller 62 + +18 rtems_task_delete: calling task 83 + +19 rtems_signal_catch 9 + rtems_signal_send: returns to caller 15 + rtems_signal_send: signal to self 18 + exit ASR overhead: returns to calling task 22 + exit ASR overhead: returns to preempting task 49 + +20 rtems_partition_create 35 + rtems_region_create 23 + rtems_partition_get_buffer: available 15 + rtems_partition_get_buffer: not available 13 + rtems_partition_return_buffer 18 + rtems_partition_delete 16 + rtems_region_get_segment: available 22 + rtems_region_get_segment: not available -- NO_WAIT 21 + rtems_region_return_segment: no waiting tasks 19 + rtems_region_get_segment: not available -- caller blocks 64 + rtems_region_return_segment: task readied -- preempts caller 74 + rtems_region_return_segment: task readied -- returns to caller 44 + rtems_region_delete 16 + rtems_io_initialize 2 + rtems_io_open 1 + rtems_io_close 1 + rtems_io_read 1 + rtems_io_write 1 + rtems_io_control 1 + +21 rtems_task_ident 149 + rtems_message_queue_ident 145 + rtems_semaphore_ident 156 + rtems_partition_ident 145 + rtems_region_ident 148 + rtems_port_ident 145 + rtems_timer_ident 145 + rtems_rate_monotonic_ident 145 + +22 rtems_message_queue_broadcast: task readied -- returns to caller 42 + rtems_message_queue_broadcast: no waiting tasks 17 + rtems_message_queue_broadcast: task readied -- preempts caller 78 + +23 rtems_timer_create 14 + rtems_timer_fire_after: inactive 22 + rtems_timer_fire_after: active 24 + rtems_timer_cancel: active 15 + rtems_timer_cancel: inactive 13 + rtems_timer_reset: inactive 21 + rtems_timer_reset: active 23 + rtems_timer_fire_when: inactive 34 + rtems_timer_fire_when: active 34 + rtems_timer_delete: active 19 + rtems_timer_delete: inactive 17 + rtems_task_wake_when 69 + +24 rtems_task_wake_after: yield -- returns to caller 9 + rtems_task_wake_after: yields -- preempts caller 45 + +25 rtems_clock_tick 4 + +26 _ISR_Disable 0 + _ISR_Flash 1 + _ISR_Enable 1 + _Thread_Disable_dispatch 0 + _Thread_Enable_dispatch 7 + _Thread_Set_state 11 + _Thread_Disptach (NO FP) 31 + context switch: no floating point contexts 21 + context switch: self 10 + context switch: to another task 10 + context switch: restore 1st FP task 25 + fp context switch: save idle, restore idle 31 + fp context switch: save idle, restore initialized 19 + fp context switch: save initialized, restore initialized 20 + _Thread_Resume 7 + _Thread_Unblock 7 + _Thread_Ready 9 + _Thread_Get 4 + _Semaphore_Get 2 + _Thread_Get: invalid id 0 + +27 interrupt entry overhead: returns to interrupted task 6 + interrupt exit overhead: returns to interrupted task 6 + interrupt entry overhead: returns to nested interrupt 6 + interrupt exit overhead: returns to nested interrupt 5 + interrupt entry overhead: returns to preempting task 7 + interrupt exit overhead: returns to preempting task 36 + +28 rtems_port_create 16 + rtems_port_external_to_internal 11 + rtems_port_internal_to_external 11 + rtems_port_delete 16 + +29 rtems_rate_monotonic_create 15 + rtems_rate_monotonic_period: initiate period -- returns to caller 21 + rtems_rate_monotonic_period: obtain status 13 + rtems_rate_monotonic_cancel 16 + rtems_rate_monotonic_delete: inactive 18 + rtems_rate_monotonic_delete: active 20 + rtems_rate_monotonic_period: conclude periods -- caller blocks 53 diff --git a/c/src/tests/tools/generic/sorttimes b/c/src/tests/tools/generic/sorttimes new file mode 100644 index 0000000000..161f5e30b0 --- /dev/null +++ b/c/src/tests/tools/generic/sorttimes @@ -0,0 +1,192 @@ +#!KSHELL -p +# +# This script takes the output from the Timing Test Suite, reorders +# it, and adds headers so it is in the same order as is printed in +# the supplement. +# + +usage() +{ + echo "${progname} file [more files]" +} + +header() +{ + echo + echo $* + echo +} + +lookup() +{ + grep "$*" $files + +} + +progname=$0 + +if [ $# -eq 0 ] ; then + usage + exit 0 +fi + +files=$* + +header Context Switch +lookup context switch: self +lookup context switch: to another task +lookup context switch: no floating point contexts +lookup fp context switch: restore 1st FP task +lookup fp context switch: save initialized, restore initialized +lookup fp context switch: save idle, restore initialized +lookup fp context switch: save idle, restore idle + +header Task Manager +lookup rtems_task_create +lookup rtems_task_ident +lookup rtems_task_start +lookup rtems_task_restart: calling task +lookup rtems_task_restart: suspended task -- returns to caller +lookup rtems_task_restart: blocked task -- returns to caller +lookup rtems_task_restart: ready task -- returns to caller +lookup rtems_task_restart: suspended task -- preempts caller +lookup rtems_task_restart: blocked task -- preempts caller +lookup rtems_task_restart: ready task -- preempts caller +lookup rtems_task_delete: calling task +lookup rtems_task_delete: suspended task +lookup rtems_task_delete: blocked task +lookup rtems_task_delete: ready task +lookup rtems_task_suspend: calling task +lookup rtems_task_suspend: returns to caller +lookup rtems_task_resume: task readied -- returns to caller +lookup rtems_task_resume: task readied -- preempts caller +lookup rtems_task_set_priority: obtain current priority +lookup rtems_task_set_priority: returns to caller +lookup rtems_task_set_priority: preempts caller +lookup rtems_task_mode: obtain current mode +lookup rtems_task_mode: no reschedule +lookup rtems_task_mode: reschedule -- returns to caller +lookup rtems_task_mode: reschedule -- preempts caller +lookup rtems_task_get_note +lookup rtems_task_set_note +lookup rtems_task_wake_after: yield -- returns to caller +lookup rtems_task_wake_after: yields -- preempts caller +lookup rtems_task_wake_when + +header Interrupt Manager +lookup interrupt entry overhead: returns to nested interrupt +lookup interrupt entry overhead: returns to interrupted task +lookup interrupt entry overhead: returns to preempting task +lookup interrupt exit overhead: returns to nested interrupt +lookup interrupt exit overhead: returns to interrupted task +lookup interrupt exit overhead: returns to preempting task + +header Clock Manager +lookup rtems_clock_set +lookup rtems_clock_get +lookup rtems_clock_tick + +header Timer Manager +lookup rtems_timer_create +lookup rtems_timer_ident +lookup rtems_timer_delete: inactive +lookup rtems_timer_delete: active +lookup rtems_timer_fire_after: inactive +lookup rtems_timer_fire_after: active +lookup rtems_timer_fire_when: inactive +lookup rtems_timer_fire_when: active +lookup rtems_timer_reset: inactive +lookup rtems_timer_reset: active +lookup rtems_timer_cancel: inactive +lookup rtems_timer_cancel: active + +header Semaphore Manager +lookup rtems_semaphore_create +lookup rtems_semaphore_ident +lookup rtems_semaphore_delete +lookup rtems_semaphore_obtain: available +lookup rtems_semaphore_obtain: not available -- NO_WAIT +lookup rtems_semaphore_obtain: not available -- caller blocks +lookup rtems_semaphore_release: no waiting tasks +lookup rtems_semaphore_release: task readied -- returns to caller +lookup rtems_semaphore_release: task readied -- preempts caller + +header Message Queue Manager +lookup rtems_message_queue_create +lookup rtems_message_queue_ident +lookup rtems_message_queue_delete +lookup rtems_message_queue_send: no waiting tasks +lookup rtems_message_queue_send: task readied -- returns to caller +lookup rtems_message_queue_send: task readied -- preempts caller +lookup rtems_message_queue_urgent: no waiting tasks +lookup rtems_message_queue_urgent: task readied -- returns to caller +lookup rtems_message_queue_urgent: task readied -- preempts caller +lookup rtems_message_queue_broadcast: no waiting tasks +lookup rtems_message_queue_broadcast: task readied -- returns to caller +lookup rtems_message_queue_broadcast: task readied -- preempts caller +lookup rtems_message_queue_receive: available +lookup rtems_message_queue_receive: not available -- NO_WAIT +lookup rtems_message_queue_receive: not available -- caller blocks +lookup rtems_message_queue_flush: no messages flushed +lookup rtems_message_queue_flush: messages flushed + +header Event Manager +lookup rtems_event_send: no task readied +lookup rtems_event_send: task readied -- returns to caller +lookup rtems_event_send: task readied -- preempts caller +lookup rtems_event_receive: obtain current events +lookup rtems_event_receive: available +lookup rtems_event_receive: not available -- NO_WAIT +lookup rtems_event_receive: not available -- caller blocks + +header Signal Manager +lookup rtems_signal_catch +lookup rtems_signal_send: returns to caller +lookup rtems_signal_send: signal to self +lookup exit ASR overhead: returns to calling task +lookup exit ASR overhead: returns to preempting task + +header Partition Manager +lookup rtems_partition_create +lookup rtems_partition_ident +lookup rtems_partition_delete +lookup rtems_partition_get_buffer: available +lookup rtems_partition_get_buffer: not available +lookup rtems_partition_return_buffer + +header Region Manager +lookup rtems_region_create +lookup rtems_region_ident +lookup rtems_region_delete +lookup rtems_region_get_segment: available +lookup rtems_region_get_segment: not available -- NO_WAIT +lookup rtems_region_get_segment: not available -- caller blocks +lookup rtems_region_return_segment: no waiting tasks +lookup rtems_region_return_segment: task readied -- returns to caller +lookup rtems_region_return_segment: task readied -- preempts caller + +header Dual-Ported Memory Manager +lookup rtems_port_create +lookup rtems_port_ident +lookup rtems_port_delete +lookup rtems_port_internal_to_external +lookup rtems_port_external_to_internal + +header IO Manager +lookup rtems_io_initialize +lookup rtems_io_open +lookup rtems_io_close +lookup rtems_io_read +lookup rtems_io_write +lookup rtems_io_control + +header Rate Monotonic Manager +lookup rtems_rate_monotonic_create +lookup rtems_rate_monotonic_ident +lookup rtems_rate_monotonic_cancel +lookup rtems_rate_monotonic_delete: active +lookup rtems_rate_monotonic_delete: inactive +lookup rtems_rate_monotonic_period: obtain status +lookup rtems_rate_monotonic_period: initiate period -- returns to caller +lookup rtems_rate_monotonic_period: conclude periods -- caller blocks +exit 0 -- cgit v1.2.3