Changeset e1598a6 in rtems for cpukit/sapi
- Timestamp:
- 04/04/14 08:56:36 (10 years ago)
- Branches:
- 4.11, 5, master
- Children:
- 69aa3349
- Parents:
- dc18190
- git-author:
- Sebastian Huber <sebastian.huber@…> (04/04/14 08:56:36)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (04/15/14 06:37:11)
- Location:
- cpukit/sapi
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/sapi/Makefile.am
rdc18190 re1598a6 18 18 include_rtems_HEADERS += include/rtems/rbheap.h 19 19 include_rtems_HEADERS += include/rtems/rbtree.h 20 include_rtems_HEADERS += include/rtems/scheduler.h 20 21 include_rtems_HEADERS += include/rtems/sptables.h 21 22 include_rtems_HEADERS += include/rtems/test.h -
cpukit/sapi/include/confdefs.h
rdc18190 re1598a6 640 640 * An application can define its own scheduling policy by defining 641 641 * CONFIGURE_SCHEDULER_USER and the following: 642 * - CONFIGURE_SCHEDULER_ ENTRY_POINTS643 * - CONFIGURE_ MEMORY_FOR_SCHEDULER - base memory642 * - CONFIGURE_SCHEDULER_CONTEXT 643 * - CONFIGURE_SCHEDULER_CONTROLS 644 644 * - CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER - per task memory 645 645 */ 646 #include <rtems/score/scheduler.h>647 648 #if !defined(RTEMS_SMP)649 #undef CONFIGURE_SCHEDULER_SIMPLE_SMP650 #endif651 646 652 647 /* If no scheduler is specified, the priority scheduler is default. */ … … 666 661 #endif 667 662 663 #include <rtems/scheduler.h> 664 668 665 /* 669 666 * If the Priority Scheduler is selected, then configure for it. 670 667 */ 671 668 #if defined(CONFIGURE_SCHEDULER_PRIORITY) 672 #include <rtems/score/schedulerpriority.h> 673 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_PRIORITY_ENTRY_POINTS 669 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 670 #define CONFIGURE_SCHEDULER_CONTEXT \ 671 RTEMS_SCHEDULER_CONTEXT_PRIORITY( \ 672 dflt, \ 673 CONFIGURE_MAXIMUM_PRIORITY + 1 \ 674 ) 675 676 #define CONFIGURE_SCHEDULER_CONTROLS \ 677 RTEMS_SCHEDULER_CONTROL_PRIORITY(dflt) 678 #endif 674 679 675 680 /** 676 681 * This defines the memory used by the priority scheduler. 677 682 */ 678 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \679 _Configure_From_workspace( \680 sizeof(Scheduler_priority_Control) + \681 ((CONFIGURE_MAXIMUM_PRIORITY) * sizeof(Chain_Control)) ) \682 )683 683 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER ( \ 684 684 _Configure_From_workspace(sizeof(Scheduler_priority_Per_thread)) ) … … 690 690 */ 691 691 #if defined(CONFIGURE_SCHEDULER_PRIORITY_SMP) 692 #include <rtems/score/schedulerprioritysmp.h> 693 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_PRIORITY_SMP_ENTRY_POINTS 692 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 693 #define CONFIGURE_SCHEDULER_CONTEXT \ 694 RTEMS_SCHEDULER_CONTEXT_PRIORITY_SMP( \ 695 dflt, \ 696 CONFIGURE_MAXIMUM_PRIORITY + 1 \ 697 ) 698 699 #define CONFIGURE_SCHEDULER_CONTROLS \ 700 RTEMS_SCHEDULER_CONTROL_PRIORITY_SMP(dflt) 701 #endif 694 702 695 703 /** 696 704 * This defines the memory used by the priority scheduler. 697 705 */ 698 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \699 _Configure_From_workspace( \700 sizeof(Scheduler_priority_SMP_Control) + \701 ((CONFIGURE_MAXIMUM_PRIORITY) * sizeof(Chain_Control)) ) \702 )703 706 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER ( \ 704 707 _Configure_From_workspace(sizeof(Scheduler_priority_Per_thread)) ) … … 710 713 */ 711 714 #if defined(CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP) 712 #include <rtems/score/schedulerpriorityaffinitysmp.h> 713 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_PRIORITY_AFFINITY_SMP_ENTRY_POINTS 715 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 716 #define CONFIGURE_SCHEDULER_CONTEXT \ 717 RTEMS_SCHEDULER_CONTEXT_PRIORITY_AFFINITY_SMP( \ 718 dflt, \ 719 CONFIGURE_MAXIMUM_PRIORITY + 1 \ 720 ) 721 722 #define CONFIGURE_SCHEDULER_CONTROLS \ 723 RTEMS_SCHEDULER_CONTROL_PRIORITY_AFFINITY_SMP(dflt) 724 #endif 714 725 715 726 /** 716 727 * This defines the memory used by the priority scheduler. 717 728 */ 718 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \719 _Configure_From_workspace( \720 sizeof(Scheduler_SMP_Control) + \721 ((CONFIGURE_MAXIMUM_PRIORITY) * sizeof(Chain_Control)) ) \722 )723 729 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER ( \ 724 730 _Configure_From_workspace(sizeof(Scheduler_priority_Per_thread)) ) … … 729 735 */ 730 736 #if defined(CONFIGURE_SCHEDULER_SIMPLE) 731 #include <rtems/score/schedulersimple.h> 732 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_SIMPLE_ENTRY_POINTS 737 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 738 #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_SIMPLE(dflt) 739 740 #define CONFIGURE_SCHEDULER_CONTROLS RTEMS_SCHEDULER_CONTROL_SIMPLE(dflt) 741 #endif 733 742 734 743 /** 735 744 * define the memory used by the simple scheduler 736 745 */ 737 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \738 _Configure_From_workspace( sizeof( Scheduler_simple_Control ) ) \739 )740 746 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER (0) 741 747 #endif … … 745 751 */ 746 752 #if defined(CONFIGURE_SCHEDULER_SIMPLE_SMP) 747 #include <rtems/score/schedulersimplesmp.h> 748 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_SIMPLE_SMP_ENTRY_POINTS 753 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 754 #define CONFIGURE_SCHEDULER_CONTEXT \ 755 RTEMS_SCHEDULER_CONTEXT_SIMPLE_SMP(dflt) 756 757 #define CONFIGURE_SCHEDULER_CONTROLS \ 758 RTEMS_SCHEDULER_CONTROL_SIMPLE_SMP(dflt) 759 #endif 749 760 750 761 /** … … 753 764 * NOTE: This is the same as the Simple Scheduler 754 765 */ 755 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \756 _Configure_From_workspace( sizeof( Scheduler_simple_SMP_Control ) ) \757 )758 766 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER (0) 759 767 #endif … … 763 771 */ 764 772 #if defined(CONFIGURE_SCHEDULER_EDF) 765 #include <rtems/score/scheduleredf.h> 766 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_EDF_ENTRY_POINTS 773 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 774 #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_EDF(dflt) 775 776 #define CONFIGURE_SCHEDULER_CONTROLS RTEMS_SCHEDULER_CONTROL_EDF(dflt) 777 #endif 767 778 768 779 /** 769 780 * define the memory used by the EDF scheduler 770 781 */ 771 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \772 _Configure_From_workspace(sizeof(Scheduler_EDF_Control)))773 782 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER ( \ 774 783 _Configure_From_workspace(sizeof(Scheduler_EDF_Per_thread))) … … 779 788 */ 780 789 #if defined(CONFIGURE_SCHEDULER_CBS) 781 #include <rtems/score/schedulercbs.h> 782 #define CONFIGURE_SCHEDULER_ENTRY_POINTS SCHEDULER_CBS_ENTRY_POINTS 790 #if !defined(CONFIGURE_SCHEDULER_CONTROLS) 791 #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_CBS(dflt) 792 793 #define CONFIGURE_SCHEDULER_CONTROLS RTEMS_SCHEDULER_CONTROL_CBS(dflt) 794 #endif 783 795 784 796 #ifndef CONFIGURE_CBS_MAXIMUM_SERVERS … … 787 799 788 800 #ifdef CONFIGURE_INIT 789 uint32_t _Scheduler_CBS_Maximum_servers = CONFIGURE_CBS_MAXIMUM_SERVERS; 801 const uint32_t _Scheduler_CBS_Maximum_servers = 802 CONFIGURE_CBS_MAXIMUM_SERVERS; 803 804 Scheduler_CBS_Server 805 _Scheduler_CBS_Server_list[ CONFIGURE_CBS_MAXIMUM_SERVERS ]; 790 806 #endif 791 807 … … 793 809 * define the memory used by the CBS scheduler 794 810 */ 795 #define CONFIGURE_MEMORY_FOR_SCHEDULER ( \796 _Configure_From_workspace(sizeof(Scheduler_EDF_Control)) + \797 _Configure_From_workspace(CONFIGURE_CBS_MAXIMUM_SERVERS * \798 sizeof(Scheduler_CBS_Server *)) + \799 CONFIGURE_CBS_MAXIMUM_SERVERS * \800 _Configure_From_workspace(sizeof(Scheduler_CBS_Server)))801 811 #define CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER ( \ 802 812 _Configure_From_workspace(sizeof(Scheduler_CBS_Per_thread))) … … 808 818 */ 809 819 #ifdef CONFIGURE_INIT 810 Scheduler_Control _Scheduler = { 811 NULL, /* Scheduler Specific Data Pointer */ 812 CONFIGURE_SCHEDULER_ENTRY_POINTS /* Scheduler Operations */ 820 CONFIGURE_SCHEDULER_CONTEXT; 821 822 const Scheduler_Control _Scheduler_Table[] = { 823 CONFIGURE_SCHEDULER_CONTROLS 813 824 }; 825 826 #if defined(RTEMS_SMP) 827 const size_t _Scheduler_Count = 828 RTEMS_ARRAY_SIZE( _Scheduler_Table ); 829 #endif 814 830 815 831 #if defined(CONFIGURE_SCHEDULER_EDF) … … 2208 2224 #define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \ 2209 2225 ( CONFIGURE_MEMORY_FOR_IDLE_TASK + /* IDLE and stack */ \ 2210 CONFIGURE_MEMORY_FOR_SCHEDULER + /* Scheduler */ \2211 2226 CONFIGURE_INTERRUPT_VECTOR_TABLE + /* interrupt vectors */ \ 2212 2227 CONFIGURE_INTERRUPT_STACK_MEMORY + /* interrupt stack */ \ … … 2476 2491 #endif 2477 2492 #ifdef RTEMS_SMP 2478 CONFIGURE_SMP_MAXIMUM_PROCESSORS 2493 CONFIGURE_SMP_MAXIMUM_PROCESSORS, 2479 2494 #endif 2480 2495 }; … … 2558 2573 uint32_t INTERRUPT_STACK_MEMORY; 2559 2574 uint32_t MEMORY_FOR_IDLE_TASK; 2560 uint32_t MEMORY_FOR_SCHEDULER;2561 2575 uint32_t MEMORY_PER_TASK_FOR_SCHEDULER; 2562 2576 … … 2615 2629 CONFIGURE_INTERRUPT_STACK_MEMORY, 2616 2630 CONFIGURE_MEMORY_FOR_IDLE_TASK, 2617 CONFIGURE_MEMORY_FOR_SCHEDULER,2618 2631 CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER, 2619 2632 -
cpukit/sapi/preinstall.am
rdc18190 re1598a6 85 85 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rbtree.h 86 86 87 $(PROJECT_INCLUDE)/rtems/scheduler.h: include/rtems/scheduler.h $(PROJECT_INCLUDE)/rtems/$(dirstamp) 88 $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/scheduler.h 89 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/scheduler.h 90 87 91 $(PROJECT_INCLUDE)/rtems/sptables.h: include/rtems/sptables.h $(PROJECT_INCLUDE)/rtems/$(dirstamp) 88 92 $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/sptables.h
Note: See TracChangeset
for help on using the changeset viewer.