• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
3  * Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice, this list of
9  *    conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice, this list
12  *    of conditions and the following disclaimer in the documentation and/or other materials
13  *    provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its contributors may be used
16  *    to endorse or promote products derived from this software without specific prior written
17  *    permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
26  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
28  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
29  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 /**
33  * @defgroup los_config System configuration items
34  * @ingroup kernel
35  */
36 
37 #ifndef _LOS_CONFIG_H
38 #define _LOS_CONFIG_H
39 
40 #include "target_config.h"
41 #include "los_compiler.h"
42 
43 #ifdef __cplusplus
44 #if __cplusplus
45 extern "C" {
46 #endif /* __cplusplus */
47 #endif /* __cplusplus */
48 
49 /* =============================================================================
50                                         System clock module configuration
51 ============================================================================= */
52 /**
53  * @ingroup los_config
54  * System clock (unit: HZ)
55  */
56 #ifndef OS_SYS_CLOCK
57 #define OS_SYS_CLOCK 1000000
58 #endif
59 
60 /**
61  * @ingroup los_config
62  * Number of Ticks in one second
63  */
64 #ifndef LOSCFG_BASE_CORE_TICK_PER_SECOND
65 #define LOSCFG_BASE_CORE_TICK_PER_SECOND                    (100UL)
66 #endif
67 
68 /**
69  * @ingroup los_config
70  * Minimum response error accuracy of tick interrupts, number of ticks in one second.
71  */
72 #ifndef LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI
73 #define LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI               (1000UL) /* 1ms */
74 #endif
75 
76 #if (LOSCFG_BASE_CORE_TICK_PER_SECOND > LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI)
77     #error "LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI must be greater than LOSCFG_BASE_CORE_TICK_PER_SECOND"
78 #endif
79 
80 #if (LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI > 1000UL)
81     #error "LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI must be less than or equal to 1000"
82 #endif
83 
84 #if defined(LOSCFG_BASE_CORE_TICK_PER_SECOND) && \
85     ((LOSCFG_BASE_CORE_TICK_PER_SECOND < 1UL) || (LOSCFG_BASE_CORE_TICK_PER_SECOND > 1000000000UL))
86     #error "LOSCFG_BASE_CORE_TICK_PER_SECOND SHOULD big than 0, and less than 1000000000UL"
87 #endif
88 
89 
90 #if (LOSCFG_BASE_CORE_TICK_PER_SECOND <= 1000UL)
91 /**
92  * @ingroup los_config
93  * How much time one tick spent (unit:ms)
94  */
95 #ifndef LOSCFG_BASE_CORE_TICK_PERIOD_MS
96 #define LOSCFG_BASE_CORE_TICK_PERIOD_MS                     (1000UL / LOSCFG_BASE_CORE_TICK_PER_SECOND)
97 #endif
98 
99 #elif (LOSCFG_BASE_CORE_TICK_PER_SECOND <= 1000000UL)
100 /**
101  * @ingroup los_config
102  * How much time one tick spent (unit:us)
103  */
104 #ifndef LOSCFG_BASE_CORE_TICK_PERIOD_US
105 #define LOSCFG_BASE_CORE_TICK_PERIOD_US                     (1000000UL / LOSCFG_BASE_CORE_TICK_PER_SECOND)
106 #endif
107 
108 #else
109 /**
110  * @ingroup los_config
111  * How much time one tick spent (unit:ns)
112  */
113 #ifndef LOSCFG_BASE_CORE_TICK_PERIOD_NS
114 #define LOSCFG_BASE_CORE_TICK_PERIOD_NS                     (1000000000UL / LOSCFG_BASE_CORE_TICK_PER_SECOND)
115 #endif
116 #endif
117 
118 /**
119  * @ingroup los_config
120  * System timer is a 64/128 bit timer
121  */
122 #ifndef LOSCFG_BASE_CORE_TICK_WTIMER
123 #define LOSCFG_BASE_CORE_TICK_WTIMER                        0
124 #endif
125 
126 /**
127  * @ingroup los_config
128  * System timer count maximum
129  */
130 #ifndef LOSCFG_BASE_CORE_TICK_RESPONSE_MAX
131 #define LOSCFG_BASE_CORE_TICK_RESPONSE_MAX                       0
132 #endif
133 
134 /* =============================================================================
135                                         Hardware interrupt module configuration
136 ============================================================================= */
137 /**
138  * @ingroup los_config
139  * Configuration item for hardware interrupt tailoring
140  */
141 #ifndef LOSCFG_PLATFORM_HWI
142 #define LOSCFG_PLATFORM_HWI                                 1
143 #endif
144 
145 /**
146  * @ingroup los_config
147  * Configuration item for using system defined vector base address and interrupt handlers.
148  * If LOSCFG_USE_SYSTEM_DEFINED_INTERRUPT is set to 0, vector base address will not be
149  * modified by system. In arm, it should be noted that PendSV_Handler and SysTick_Handler should
150  * be redefined to HalPendSV and OsTickHandler respectly in this case, because system depends on
151  * these interrupt handlers to run normally. What's more, LOS_HwiCreate will not register handler.
152  */
153 #ifndef LOSCFG_USE_SYSTEM_DEFINED_INTERRUPT
154 #define LOSCFG_USE_SYSTEM_DEFINED_INTERRUPT                 1
155 #endif
156 
157 #if (LOSCFG_USE_SYSTEM_DEFINED_INTERRUPT == 1)
158     #if (LOSCFG_PLATFORM_HWI == 0)
159         #error "if LOSCFG_USE_SYSTEM_DEFINED_INTERRUPT is set to 1, then LOSCFG_PLATFORM_HWI must also be set to 1"
160     #endif
161 #endif
162 
163 /**
164  * @ingroup los_config
165  * Maximum number of used hardware interrupts, including Tick timer interrupts.
166  */
167 #ifndef LOSCFG_PLATFORM_HWI_LIMIT
168 #define LOSCFG_PLATFORM_HWI_LIMIT                           32
169 #endif
170 
171 /* =============================================================================
172                                        Task module configuration
173 ============================================================================= */
174 /**
175  * @ingroup los_config
176  * Minimum stack size.
177  *
178  * 0x80 bytes, aligned on a boundary of 8.
179  */
180 #ifndef LOSCFG_BASE_CORE_TSK_MIN_STACK_SIZE
181 #define LOSCFG_BASE_CORE_TSK_MIN_STACK_SIZE                 (ALIGN(0x80, 4))
182 #endif
183 
184 /**
185  * @ingroup los_config
186  * Default task priority
187  */
188 #ifndef LOSCFG_BASE_CORE_TSK_DEFAULT_PRIO
189 #define LOSCFG_BASE_CORE_TSK_DEFAULT_PRIO                   10
190 #endif
191 
192 /**
193  * @ingroup los_config
194  * Maximum supported number of tasks except the idle task rather than the number of usable tasks
195  */
196 #ifndef LOSCFG_BASE_CORE_TSK_LIMIT
197 #define LOSCFG_BASE_CORE_TSK_LIMIT                          5
198 #endif
199 
200 /**
201  * @ingroup los_config
202  * Size of the idle task stack
203  */
204 #ifndef LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE
205 #define LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE                0x180UL
206 #endif
207 
208 /**
209  * @ingroup los_config
210  * Default task stack size
211  */
212 #ifndef LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
213 #define LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE             0x400UL
214 #endif
215 
216 /**
217  * @ingroup los_config
218  * Configuration item for task Robin tailoring
219  */
220 #ifndef LOSCFG_BASE_CORE_TIMESLICE
221 #define LOSCFG_BASE_CORE_TIMESLICE                         1
222 #endif
223 
224 /**
225  * @ingroup los_config
226  * Longest execution time of tasks with the same priorities
227  */
228 #ifndef LOSCFG_BASE_CORE_TIMESLICE_TIMEOUT
229 #define LOSCFG_BASE_CORE_TIMESLICE_TIMEOUT                  20000 /* 20ms */
230 #endif
231 
232 /**
233  * @ingroup los_config
234  * Configuration item for task (stack) monitoring module tailoring
235  */
236 #ifndef LOSCFG_BASE_CORE_TSK_MONITOR
237 #define LOSCFG_BASE_CORE_TSK_MONITOR                        0
238 #endif
239 
240 /**
241  * @ingroup los_config
242  * Configuration item for task perf task filter hook
243  */
244 #ifndef LOSCFG_BASE_CORE_EXC_TSK_SWITCH
245 #define LOSCFG_BASE_CORE_EXC_TSK_SWITCH                     0
246 #endif
247 
248 /*
249  * @ingroup los_config
250  * Configuration item for task context switch hook
251  */
252 #ifndef LOSCFG_BASE_CORE_TSK_SWITCH_HOOK
253 #define LOSCFG_BASE_CORE_TSK_SWITCH_HOOK()
254 #endif
255 
256 /**
257  * @ingroup los_config
258  * Define a usable task priority.Highest task priority.
259  */
260 #ifndef LOS_TASK_PRIORITY_HIGHEST
261 #define LOS_TASK_PRIORITY_HIGHEST                           0
262 #endif
263 
264 /**
265  * @ingroup los_config
266  * Define a usable task priority.Lowest task priority.
267  */
268 #ifndef LOS_TASK_PRIORITY_LOWEST
269 #define LOS_TASK_PRIORITY_LOWEST                            31
270 #endif
271 
272 /**
273  * @ingroup los_config
274  * Configuration item for task stack independent
275  */
276 #ifndef LOSCFG_BASE_CORE_TASKSTACK_INDEPENDENT
277 #define LOSCFG_BASE_CORE_TASKSTACK_INDEPENDENT              0
278 #endif
279 
280 /**
281  * @ingroup los_config
282  * SP align size
283  */
284 #ifndef LOSCFG_STACK_POINT_ALIGN_SIZE
285 #define LOSCFG_STACK_POINT_ALIGN_SIZE                       8
286 #endif
287 
288 /* =============================================================================
289                                        Semaphore module configuration
290 ============================================================================= */
291 /**
292  * @ingroup los_config
293  * Configuration item for semaphore module tailoring
294  */
295 #ifndef LOSCFG_BASE_IPC_SEM
296 #define LOSCFG_BASE_IPC_SEM                                 1
297 #endif
298 
299 /**
300  * @ingroup los_config
301  * Maximum supported number of semaphores
302  */
303 #ifndef LOSCFG_BASE_IPC_SEM_LIMIT
304 #define LOSCFG_BASE_IPC_SEM_LIMIT                           6
305 #endif
306 
307 /**
308  * @ingroup los_config
309  * Maximum number of semaphores.
310  */
311 #ifndef OS_SEM_COUNTING_MAX_COUNT
312 #define OS_SEM_COUNTING_MAX_COUNT                           0xFFFF
313 #endif
314 
315 /* =============================================================================
316                                        Mutex module configuration
317 ============================================================================= */
318 /**
319  * @ingroup los_config
320  * Configuration item for mutex module tailoring
321  */
322 #ifndef LOSCFG_BASE_IPC_MUX
323 #define LOSCFG_BASE_IPC_MUX                                 1
324 #endif
325 
326 /**
327  * @ingroup los_config
328  * Maximum supported number of mutexes
329  */
330 #ifndef LOSCFG_BASE_IPC_MUX_LIMIT
331 #define LOSCFG_BASE_IPC_MUX_LIMIT                           6
332 #endif
333 
334 /* =============================================================================
335                                        Queue module configuration
336 ============================================================================= */
337 /**
338  * @ingroup los_config
339  * Configuration item for queue module tailoring
340  */
341 #ifndef LOSCFG_BASE_IPC_QUEUE
342 #define LOSCFG_BASE_IPC_QUEUE                               1
343 #endif
344 
345 /**
346  * @ingroup los_config
347  * Maximum supported number of queues rather than the number of usable queues
348  */
349 #ifndef LOSCFG_BASE_IPC_QUEUE_LIMIT
350 #define LOSCFG_BASE_IPC_QUEUE_LIMIT                         6
351 #endif
352 
353 
354 /* =============================================================================
355                                        Software timer module configuration
356 ============================================================================= */
357 /**
358  * @ingroup los_config
359  * Configuration item for software timer module tailoring
360  */
361 #ifndef LOSCFG_BASE_CORE_SWTMR
362 #define LOSCFG_BASE_CORE_SWTMR                              1
363 #endif
364 
365 /**
366  * @ingroup los_config
367  * Maximum supported number of software timers rather than the number of usable software timers
368  */
369 #ifndef LOSCFG_BASE_CORE_SWTMR_LIMIT
370 #define LOSCFG_BASE_CORE_SWTMR_LIMIT                        5
371 #endif
372 
373 /**
374  * @ingroup los_config
375  * Software timer task stack size
376  */
377 #ifndef LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE
378 #define LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE               LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
379 #endif
380 
381 /**
382  * @ingroup los_config
383  * Configurate item for software timer align tailoring
384  */
385 #ifndef LOSCFG_BASE_CORE_SWTMR_ALIGN
386 #define LOSCFG_BASE_CORE_SWTMR_ALIGN                        0
387 #endif
388 
389 #if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1)
390     #if (LOSCFG_BASE_CORE_SWTMR == 0)
391         #error "if LOSCFG_BASE_CORE_SWTMR_ALIGN is set to 1, then LOSCFG_BASE_CORE_SWTMR must also be set to 1"
392     #endif
393 #endif
394 
395 /**
396  * @ingroup los_config
397  * Maximum size of a software timer queue
398  */
399 #ifndef OS_SWTMR_HANDLE_QUEUE_SIZE
400 #define OS_SWTMR_HANDLE_QUEUE_SIZE                          (LOSCFG_BASE_CORE_SWTMR_LIMIT + 0)
401 #endif
402 
403 /**
404  * @ingroup los_config
405  * Minimum divisor of software timer multiple alignment
406  */
407 #ifndef LOS_COMMON_DIVISOR
408 #define LOS_COMMON_DIVISOR                                  10
409 #endif
410 
411 #if (LOSCFG_BASE_CORE_SWTMR == 1)
412     #if (LOSCFG_BASE_IPC_QUEUE == 0)
413         #error "if LOSCFG_BASE_CORE_SWTMR is set to 1, then LOSCFG_BASE_IPC_QUEUE must also be set to 1"
414     #endif
415 #endif
416 /* =============================================================================
417                                        Memory module configuration ---- to be refactored
418 ============================================================================= */
419 extern UINT8 *m_aucSysMem0;
420 
421 /**
422  * @ingroup los_config
423  * Configure whether the kernel uses external heap memory
424  */
425 #ifndef LOSCFG_SYS_EXTERNAL_HEAP
426 #define LOSCFG_SYS_EXTERNAL_HEAP                            0
427 #endif
428 
429 /**
430  * @ingroup los_config
431  * Starting address of the memory
432  */
433 #ifndef LOSCFG_SYS_HEAP_ADDR
434 #define LOSCFG_SYS_HEAP_ADDR                                (&m_aucSysMem0[0])
435 #endif
436 
437 /**
438  * @ingroup los_config
439  * Starting address of the task stack
440  */
441 #ifndef OS_TASK_STACK_ADDR
442 #define OS_TASK_STACK_ADDR                                  LOSCFG_SYS_HEAP_ADDR
443 #endif
444 
445 /**
446  * @ingroup los_config
447  * Memory size
448  */
449 #ifndef LOSCFG_SYS_HEAP_SIZE
450 #define LOSCFG_SYS_HEAP_SIZE                                0x10000UL
451 #endif
452 
453 /**
454  * @ingroup los_config
455  * Configuration module tailoring of more mempry pool checking
456  */
457 #ifndef LOSCFG_MEM_MUL_POOL
458 #define LOSCFG_MEM_MUL_POOL                                 1
459 #endif
460 
461 /**
462  * @ingroup los_config
463  * Configuration module tailoring of memory released by task id
464  */
465 #ifndef LOSCFG_MEM_FREE_BY_TASKID
466 #define LOSCFG_MEM_FREE_BY_TASKID                           0
467 #endif
468 
469 /**
470  * @ingroup los_config
471  * Configuration module tailoring of mem node integrity checking
472  */
473 #ifndef LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK
474 #define LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK                0
475 #endif
476 
477 /**
478  * @ingroup los_config
479  * The default is 4, which means that the function call stack is recorded from the kernel interface,
480  * such as LOS_MemAlloc/LOS_MemAllocAlign/LOS_MemRealloc/LOS_MemFree. If you want to further ignore
481  * the number of function call layers, you can increase this value appropriately.
482  * @attention
483  * The default is in the IAR tool. Under different compilation environments, this value needs to be adjusted.
484  */
485 #ifndef LOSCFG_MEM_OMIT_LR_CNT
486 #define LOSCFG_MEM_OMIT_LR_CNT                              4
487 #endif
488 
489 /**
490  * @ingroup los_config
491  * The record number of layers of the function call relationship starting from the number of
492  * ignored layers(LOSCFG_MEM_OMIT_LR_CNT).
493  */
494 #ifndef LOSCFG_MEM_RECORD_LR_CNT
495 #define LOSCFG_MEM_RECORD_LR_CNT                            3
496 #endif
497 
498 /**
499  * @ingroup los_config
500  * Configuration memory leak recorded num
501  */
502 #ifndef LOSCFG_MEM_LEAKCHECK_RECORD_MAX_NUM
503 #define LOSCFG_MEM_LEAKCHECK_RECORD_MAX_NUM                 1024
504 #endif
505 
506 /**
507  * @ingroup los_config
508  * Configuration of memory pool record memory consumption waterline
509  */
510 #ifndef LOSCFG_MEM_WATERLINE
511 #define LOSCFG_MEM_WATERLINE                                1
512 #endif
513 
514 /**
515  * @ingroup los_config
516  * Number of memory checking blocks
517  */
518 #ifndef OS_SYS_MEM_NUM
519 #define OS_SYS_MEM_NUM                                      20
520 #endif
521 
522 /**
523  * @ingroup los_config
524  * Size of unaligned memory
525  */
526 #ifndef OS_SYS_NOCACHEMEM_SIZE
527 #define OS_SYS_NOCACHEMEM_SIZE                              0x0UL
528 #endif
529 
530 /**
531  * @ingroup los_config
532  * Starting address of the unaligned memory
533  */
534 #if (OS_SYS_NOCACHEMEM_SIZE > 0)
535 #define OS_SYS_NOCACHEMEM_ADDR                              (&g_sysNoCacheMem0[0])
536 #endif
537 
538 /**
539  * @ingroup los_config
540  * Configuration of multiple non-continuous memory regions as one memory pool
541  */
542 #ifndef LOSCFG_MEM_MUL_REGIONS
543 #define LOSCFG_MEM_MUL_REGIONS                              0
544 #endif
545 
546 /* =============================================================================
547                                         Exception module configuration
548 ============================================================================= */
549 /**
550  * @ingroup los_config
551  * Configuration of hardware stack protection
552  */
553 #ifndef LOSCFG_EXC_HARDWARE_STACK_PROTECTION
554 #define LOSCFG_EXC_HARDWARE_STACK_PROTECTION                0
555 #endif
556 
557 /* =============================================================================
558                                        KAL module configuration
559 ============================================================================= */
560 /**
561  * @ingroup los_config
562  * Configuration CMSIS_OS_VER
563  */
564 #ifndef CMSIS_OS_VER
565 #define CMSIS_OS_VER                                        2
566 #endif
567 
568 /* =============================================================================
569                                        Trace module configuration
570 ============================================================================= */
571 /**
572  * @ingroup los_config
573  * Configuration trace tool
574  */
575 
576 #if (LOSCFG_KERNEL_TRACE == 1)
577 
578 #ifndef NUM_HAL_INTERRUPT_UART
579 #define NUM_HAL_INTERRUPT_UART                              0xff
580 #endif
581 
582 #ifndef OS_TICK_INT_NUM
583 #define OS_TICK_INT_NUM                                     0xff
584 #endif
585 
586 #endif
587 
588 /* =============================================================================
589                                        printf configuration
590 ============================================================================= */
591 /**
592  * @ingroup los_config
593  * Configuration liteos printf
594  */
595 #ifndef LOSCFG_KERNEL_PRINTF
596 #define LOSCFG_KERNEL_PRINTF                                1
597 #endif
598 
599 /* =============================================================================
600                                        misc configuration
601 ============================================================================= */
602 /**
603  * @ingroup los_config
604  * Configuration item for mpu.
605  */
606 #ifndef LOSCFG_MPU_ENABLE
607 #define LOSCFG_MPU_ENABLE                                    0
608 #endif
609 
610 #if (LOSCFG_EXC_HARDWARE_STACK_PROTECTION == 1) && (LOSCFG_MPU_ENABLE == 0)
611 #error "if hardware stack protection is enabled, then MPU should be supported and enabled"
612 #endif
613 
614 /**
615  * @ingroup los_config
616  * Configuration item to get task used memory.
617  */
618 #ifndef LOSCFG_TASK_MEM_USED
619 #define LOSCFG_TASK_MEM_USED                                 0
620 #endif
621 
622 /* *
623  * @ingroup los_interrupt
624  * Configuration item for interrupt with argument
625  */
626 #ifndef LOSCFG_PLATFORM_HWI_WITH_ARG
627 #define LOSCFG_PLATFORM_HWI_WITH_ARG                       0
628 #endif
629 
630 /**
631  * @ingroup los_config
632  * Configuration item to set interrupt vector align size.
633  */
634 #ifndef LOSCFG_ARCH_HWI_VECTOR_ALIGN
635 #define LOSCFG_ARCH_HWI_VECTOR_ALIGN                         0x100
636 #endif
637 
638 /**
639  * @ingroup los_config
640  * Task extension field additional functions, such as IAR TLS.
641  */
642 #ifndef LOSCFG_TASK_STRUCT_EXTENSION
643 #define LOSCFG_TASK_STRUCT_EXTENSION
644 #endif
645 #ifndef LOSCFG_TASK_CREATE_EXTENSION_HOOK
646 #define LOSCFG_TASK_CREATE_EXTENSION_HOOK(taskCB)
647 #endif
648 #ifndef LOSCFG_TASK_DELETE_EXTENSION_HOOK
649 #define LOSCFG_TASK_DELETE_EXTENSION_HOOK(taskCB)
650 #endif
651 
652 /**
653  * @ingroup los_config
654  * Configuration item to enable kernel signal.
655  */
656 #ifndef LOSCFG_KERNEL_SIGNAL
657 #define LOSCFG_KERNEL_SIGNAL                          0
658 #endif
659 
660 #ifdef __cplusplus
661 #if __cplusplus
662 }
663 #endif /* __cplusplus */
664 #endif /* __cplusplus */
665 
666 
667 #endif /* _LOS_CONFIG_H */
668