comparison packages/kernel/current/include/pkgconf/kernel.h @ 2:443894e2e912 ecos-v1_2_1-release

Block commit of eCos version 1.2.1
author jlarmour
date Tue, 11 May 1999 12:24:34 +0000
parents 3111d98ba7b3
children d376b777e2ce
comparison
equal deleted inserted replaced
1:72f549f0d891 2:443894e2e912
1 #ifndef CYGONCE_PKGCONF_KERNEL_H 1 #ifndef CYGONCE_PKGCONF_KERNEL_H
2 #define CYGONCE_PKGCONF_KERNEL_H 2 #define CYGONCE_PKGCONF_KERNEL_H
3 // ==================================================================== 3 // ====================================================================
4 // 4 //
5 // pkgconf/kernel.h 5 // pkgconf/kernel.h
6 // 6 //
7 // Kernel configuration file 7 // Kernel configuration file
8 // 8 //
9 // ==================================================================== 9 // ====================================================================
10 //####COPYRIGHTBEGIN#### 10 //####COPYRIGHTBEGIN####
11 // 11 //
12 // ------------------------------------------- 12 // -------------------------------------------
22 // 22 //
23 // The Original Code is eCos - Embedded Cygnus Operating System, released 23 // The Original Code is eCos - Embedded Cygnus Operating System, released
24 // September 30, 1998. 24 // September 30, 1998.
25 // 25 //
26 // The Initial Developer of the Original Code is Cygnus. Portions created 26 // The Initial Developer of the Original Code is Cygnus. Portions created
27 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. 27 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved.
28 // ------------------------------------------- 28 // -------------------------------------------
29 // 29 //
30 //####COPYRIGHTEND#### 30 //####COPYRIGHTEND####
31 // ==================================================================== 31 // ====================================================================
32 //#####DESCRIPTIONBEGIN#### 32 //#####DESCRIPTIONBEGIN####
33 // 33 //
34 // Author(s): nickg 34 // Author(s): nickg
35 // Contributors: nickg 35 // Contributors: nickg
36 // Date: 1997-09-29 36 // Date: 1997-09-29
37 // Purpose: To allow the user to edit kernel configuration options. 37 // Purpose: To allow the user to edit kernel configuration options.
38 // Description: 38 // Description:
39 // 39 //
40 //####DESCRIPTIONEND#### 40 //####DESCRIPTIONEND####
41 // 41 //
42 // ==================================================================== 42 // ====================================================================
413 range of legal values therefore depends on the target hardware, 413 range of legal values therefore depends on the target hardware,
414 and the hardware documentation should be consulted for further 414 and the hardware documentation should be consulted for further
415 details. In addition the clock resolution numerator and 415 details. In addition the clock resolution numerator and
416 denominator values should be updated. Typical values for 416 denominator values should be updated. Typical values for
417 this option would be 150000 on the MN10300 stdeval1 board, 417 this option would be 150000 on the MN10300 stdeval1 board,
418 15625 on the tx39 jmr3904 board, and 20625 on the powerpc 418 15625 on the tx39 jmr3904 board, and 20833 on the powerpc
419 cogent board." 419 cogent board."
420 } 420 }
421 421
422 cdl_option CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_NUMERATOR { 422 cdl_option CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_NUMERATOR {
423 display "Clock resolution numerator" 423 display "Clock resolution numerator"
510 place whenever the timer goes off, but requires extra 510 place whenever the timer goes off, but requires extra
511 memory." 511 memory."
512 doc ref/ecos-ref/counters-clocks-and-alarms.html 512 doc ref/ecos-ref/counters-clocks-and-alarms.html
513 } 513 }
514 514
515 cdl_option CYGIMP_KERNEL_COUNTERS_SORT_LIST {
516 display "Sort the counter list"
517 parent CYGPKG_KERNEL_COUNTERS
518 type bool
519 description "
520 Sorting the counter lists reduces the amount of work that
521 has to be done when a counter tick is processed, since the
522 next alarm to expire is always at the front of the list.
523 However, it makes adding an alarm to the list more expensive
524 since a search must be done for the correct place to put it.
525 Many alarms are used to implement timeouts, which seldom trigger,
526 so it is worthwhile optimizing this case. For this reason
527 sorted list are disabled by default."
528 }
529
530 cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY {
531 display "Measure real-time [clock] interrupt latency"
532 parent CYGPKG_KERNEL_COUNTERS
533 requires CYGVAR_KERNEL_COUNTERS_CLOCK
534 description "
535 Measure the interrupt latency as seen by the real-time clock
536 timer interrupt. This requires hardware support, defined by
537 the HAL_CLOCK_LATENCY() macro."
538 doc ref/ecos-ref/counters-clocks-and-alarms.html
539 }
540
515 }}CFG_DATA */ 541 }}CFG_DATA */
516 542
517 #define CYGVAR_KERNEL_COUNTERS_CLOCK 543 #define CYGVAR_KERNEL_COUNTERS_CLOCK
518 #undef CYGPKG_KERNEL_COUNTERS_CLOCK_OVERRIDE 544 #undef CYGPKG_KERNEL_COUNTERS_CLOCK_OVERRIDE
519 #define CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_PERIOD 9999 545 #define CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_PERIOD 9999
520 #define CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_NUMERATOR 1000000000 546 #define CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_NUMERATOR 1000000000
521 #define CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_DENOMINATOR 100 547 #define CYGNUM_KERNEL_COUNTERS_CLOCK_OVERRIDE_DENOMINATOR 100
522 #define CYGIMP_KERNEL_COUNTERS_SINGLE_LIST 548 #define CYGIMP_KERNEL_COUNTERS_SINGLE_LIST
523 #undef CYGIMP_KERNEL_COUNTERS_MULTI_LIST 549 #undef CYGIMP_KERNEL_COUNTERS_MULTI_LIST
524 #define CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE 8 550 #define CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE 8
551 #undef CYGIMP_KERNEL_COUNTERS_SORT_LIST
552 #undef CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
525 553
526 /* --------------------------------------------------------------------- 554 /* ---------------------------------------------------------------------
527 * Thread-related options 555 * Thread-related options
528 {{CFG_DATA 556 {{CFG_DATA
529 557
624 for the idle thread. Unless the HAL is configured to use a 652 for the idle thread. Unless the HAL is configured to use a
625 separate interrupt stack this size must be sufficient to meet 653 separate interrupt stack this size must be sufficient to meet
626 the requirements of all interrupt handlers - these 654 the requirements of all interrupt handlers - these
627 requirements are cumulative if nested interrupted are 655 requirements are cumulative if nested interrupted are
628 enabled. Depending on the target architecture, the stack size 656 enabled. Depending on the target architecture, the stack size
629 typically has to be a multiple of eight or sixteen bytes." 657 typically has to be a multiple of eight or sixteen bytes.
630 658 This will be overridden where it is used if the
659 architectural HAL requires a minimum stack size
660 to handle interrupts correctly."
661
631 doc ref/ecos-ref/thread-operations.html 662 doc ref/ecos-ref/thread-operations.html
632 } 663 }
633 664
634 }}CFG_DATA */ 665 }}CFG_DATA */
635 666
713 } 744 }
714 745
715 cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT { 746 cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT {
716 display "Condition variable timed-wait support" 747 display "Condition variable timed-wait support"
717 parent CYGPKG_KERNEL_SYNCH 748 parent CYGPKG_KERNEL_SYNCH
718 requires CYGVAR_KERNEL_COUNTERS_CLOCK 749 requires CYGFUN_KERNEL_THREADS_TIMER
719 description " 750 description "
720 This option enables the condition variable timed wait 751 This option enables the condition variable timed wait
721 facility." 752 facility."
722 doc ref/ecos-ref/synchronization.html#CONDITION-VARIABLES 753 doc ref/ecos-ref/synchronization.html#CONDITION-VARIABLES
723 } 754 }
998 parent CYGPKG_KERNEL 1029 parent CYGPKG_KERNEL
999 description " 1030 description "
1000 The eCos kernel is implemented in C++, so a C++ interface 1031 The eCos kernel is implemented in C++, so a C++ interface
1001 to the kernel is always available. There is also an optional 1032 to the kernel is always available. There is also an optional
1002 C API. Additional API's may be provided in future versions." 1033 C API. Additional API's may be provided in future versions."
1003 doc ref/ecos-ref/kernel-apis.html 1034 doc ref/ecos-ref/kernel-apis.html
1004 } 1035 }
1005 1036
1006 cdl_option CYGFUN_KERNEL_API_C { 1037 cdl_option CYGFUN_KERNEL_API_C {
1007 display "Provide C API" 1038 display "Provide C API"
1008 parent CYGPKG_KERNEL_API 1039 parent CYGPKG_KERNEL_API
1090 #endif 1121 #endif
1091 1122
1092 #if defined(CYG_HAL_MIPS_JMR3904) 1123 #if defined(CYG_HAL_MIPS_JMR3904)
1093 1124
1094 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} 1125 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1095 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 15360 1126 #if (CYGHWR_HAL_MIPS_CPU_FREQ == 50)
1096 1127 # define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 15360
1128 #elif (CYGHWR_HAL_MIPS_CPU_FREQ == 66)
1129 # define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 20736
1130 #else
1131 #error Unsupported clock frequency
1132 #endif
1097 #endif 1133 #endif
1098 1134
1099 #if defined(CYG_HAL_MIPS_SIM) 1135 #if defined(CYG_HAL_MIPS_SIM)
1100 1136
1101 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} 1137 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1102 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 999 1138 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 999
1103 1139
1104 #endif 1140 #endif
1105 1141
1106 #if defined(CYG_HAL_POWERPC_MP860) 1142 #if defined(CYG_HAL_POWERPC_MPC860)
1107 1143
1144 // Period is busclock/16/100.
1108 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} 1145 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1109 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 20625 1146 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 20833
1110 1147
1111 #endif 1148 #endif
1112 1149
1150 #if defined(CYG_HAL_ARM_PID)
1151 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1152 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 12500
1153 #endif
1154 #if defined(CYG_HAL_ARM_AEB)
1155 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1156 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD (240000/16)
1157 #endif
1158
1159 #if defined(CYG_HAL_I386_LINUX)
1160 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1161 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 10000
1162 #endif
1113 1163
1114 #ifndef CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION 1164 #ifndef CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION
1115 1165
1116 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100} 1166 #define CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {1000000000, 100}
1117 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 9999 1167 #define CYGNUM_KERNEL_COUNTERS_RTC_PERIOD 9999
1131 * If the option is not defined, no assert is included. Whether asserts 1181 * If the option is not defined, no assert is included. Whether asserts
1132 * are themselves included depends on infrastructure configury in infra.h 1182 * are themselves included depends on infrastructure configury in infra.h
1133 * 1183 *
1134 * It is hoped that these defaults are helpful rather than interfering. 1184 * It is hoped that these defaults are helpful rather than interfering.
1135 */ 1185 */
1136 #define CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT (500) 1186 #define CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT (500)
1137 #define CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT (500) 1187 #define CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT (500)
1138 1188
1139 /* 1189 /*
1140 * If the scheduler configuration only has a single priority level, 1190 * If the scheduler configuration only has a single priority level,
1141 * then the idle thread must yield each time around its loop. 1191 * then the idle thread must yield each time around its loop.
1142 */ 1192 */
1208 #undef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING 1258 #undef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
1209 #undef CYGIMP_KERNEL_INTERRUPTS_CHAIN 1259 #undef CYGIMP_KERNEL_INTERRUPTS_CHAIN
1210 #undef CYGVAR_KERNEL_COUNTERS_CLOCK 1260 #undef CYGVAR_KERNEL_COUNTERS_CLOCK
1211 #undef CYGFUN_KERNEL_THREADS_TIMER 1261 #undef CYGFUN_KERNEL_THREADS_TIMER
1212 #undef CYGPKG_KERNEL_EXCEPTIONS 1262 #undef CYGPKG_KERNEL_EXCEPTIONS
1263 #undef CYGSEM_KERNEL_SCHED_TIMESLICE
1213 #undef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE 1264 #undef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE
1214 #undef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE 1265 #undef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE
1215 #undef CYGPKG_KERNEL_INSTRUMENT 1266 #undef CYGPKG_KERNEL_INSTRUMENT
1216 #undef CYGDBG_INFRA_DIAG_USE_DEVICE // now lives in infra 1267 #undef CYGDBG_INFRA_DIAG_USE_DEVICE // now lives in infra
1217 1268
1218 #define CYGDBG_KERNEL_DEBUG_GDB_INCLUDE_STUBS 1269 #define CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
1219 1270
1220 #endif 1271 #endif
1221 */ 1272 */
1222 1273
1223 /* -------------------------------------------------------------------*/ 1274 /* -------------------------------------------------------------------*/