source: rtems/c/src/lib/libbsp/shared/include/stackalloc.h @ 296c74e6

4.11
Last change on this file since 296c74e6 was 296c74e6, checked in by Daniel Ramirez <javamonn@…>, on Dec 9, 2013 at 7:37:48 PM

doxygen: refactored doxygen in libbsp to illustrate new rule set

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup bsp_stack
5 *
6 * @brief Task stack initialization, allocation and free functions.
7 */
8
9/*
10 * Copyright (c) 2009-2012 embedded brains GmbH.  All rights reserved.
11 *
12 *  embedded brains GmbH
13 *  Obere Lagerstr. 30
14 *  82178 Puchheim
15 *  Germany
16 *  <rtems@embedded-brains.de>
17 *
18 * The license and distribution terms for this file may be
19 * found in the file LICENSE in this distribution or at
20 * http://www.rtems.com/license/LICENSE.
21 */
22
23#ifndef LIBBSP_SHARED_STACK_ALLOC_H
24#define LIBBSP_SHARED_STACK_ALLOC_H
25
26#include <stddef.h>
27#include <stdint.h>
28
29#ifdef __cplusplus
30extern "C" {
31#endif /* __cplusplus */
32
33/**
34 * @defgroup bsp_stack Task Stack Allocator
35 *
36 * @ingroup bsp_shared
37 *
38 * @brief Task stack initialization, allocation and free functions.
39 *
40 * Initialize the task stack allocator with bsp_stack_initialize().  To enable
41 * the task stack allocator use the following in the system configuration:
42 *
43 * @code
44 * #include <bsp/stackalloc.h>
45 *
46 * #define CONFIGURE_INIT
47 *
48 * #include <confdefs.h>
49 * @endcode
50 *
51 * @{
52 */
53
54/**
55 * @brief Task stack allocator initialization for
56 * @ref CONFIGURE_TASK_STACK_ALLOCATOR_INIT.
57 */
58void bsp_stack_allocate_init(size_t stack_space_size);
59
60/**
61 * @brief Task stack allocator for @ref CONFIGURE_TASK_STACK_ALLOCATOR.
62 *
63 * In case the designated task stack space from bsp_stack_initialize() is
64 * completely in use the work space will be used to allocate the stack.
65 */
66void *bsp_stack_allocate(size_t size);
67
68/**
69 * @brief Task stack free function for @ref CONFIGURE_TASK_STACK_DEALLOCATOR.
70 */
71void bsp_stack_free(void *stack);
72
73/**
74 * @brief Task stack allocator initialization configuration option.
75 */
76#define CONFIGURE_TASK_STACK_ALLOCATOR_INIT bsp_stack_allocate_init
77
78/**
79 * @brief Task stack allocator configuration option.
80 */
81#define CONFIGURE_TASK_STACK_ALLOCATOR bsp_stack_allocate
82
83/**
84 * @brief Task stack deallocator configuration option.
85 */
86#define CONFIGURE_TASK_STACK_DEALLOCATOR bsp_stack_free
87
88/** @} */
89
90#ifdef __cplusplus
91}
92#endif /* __cplusplus */
93
94#endif /* LIBBSP_SHARED_STACK_ALLOC_H */
Note: See TracBrowser for help on using the repository browser.