summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/bspcmdline.h
blob: 51916ff26a2746d88ab65b3fc18298e067e87de9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/**
 * @file rtems/bspcmdline.h
 *
 * @defgroup BSPCommandLine BSP Command Line Helpers
 *
 * @ingroup libmisc
 * @brief BSP Command Line Handler
 *
 * This include file contains all prototypes and specifications
 * related to the BSP Command Line String and associated helper
 * routines. The helpers are useful for locating command line
 * type arguments (e.g. --mode) and their associated right
 * hand side (e.g. FAST in --mode=FAST).
 */

/*
 *  COPYRIGHT (c) 1989-2009.
 *  On-Line Applications Research Corporation (OAR).
 *
 *  The license and distribution terms for this file may be
 *  found in the file LICENSE in this distribution or at
 *  http://www.rtems.org/license/LICENSE.
 */

#ifndef __BSP_COMMAND_LINE_h
#define __BSP_COMMAND_LINE_h

/**
 * @defgroup BSPCommandLine BSP Command Line Helpers
 *
 * The BSP Command Line Handler provides a set of routines which assist
 * in examining and decoding the Command Line String passed to the BSP
 * at boot time.
 */
/**@{*/

#include <stddef.h> /* for size_t */

#ifdef __cplusplus
extern "C" {
#endif


/**
 * @brief Obtain Pointer to BSP Boot Command String
 *
 * This method returns a pointer to the BSP Boot Command String. It
 * is as likely to be NULL as point to a string as most BSPs do not
 * have a start environment that provides a boot string.
 *
 * @retval This method returns the pointer to the BSP Boot Command String.
 */
const char *rtems_bsp_cmdline_get(void);

/**
 * @brief Obtain COPY of the Entire Matching Argument
 *
 * This method searches for the argument @a name in the BSP Boot Command
 * String and returns a copy of the entire string associated with it in
 * @a value up to a string of @a length. This will include the argument
 * and any right hand side portion of the string. For example, one might
 * be returned --mode=FAST if
 * searching for --mode.
 *
 * @param[in] name is the arugment to search for
 * @param[in] value points to where the contents will
 *            be placed if located.
 * @param[in] length is the maximum length to copy
 *
 * @return This method returns NULL if not found and
 *         @a value if found.
 */
const char *rtems_bsp_cmdline_get_param(
  const char *name,
  char       *value,
  size_t      length
);


/**
 * @brief Obtain COPY of the Right Hand Side of the Matching Argument
 *
 * This method searches for the argument @a name in
 * the BSP Boot Command String and returns the right hand side
 * associated with it in @a value up to a maximum string @a length.
 * This will NOT include the argument but only any right hand side
 * portion of the string. *  For example, one might be returned FAST if
 * searching for --mode.
 *
 * @param[in] name is the arugment to search for
 * @param[in] value points to where the contents will
 *            be placed if located.
 * @param[in] length is the maximum length to copy
 *
 * @retval This method returns NULL if not found and
 *         @a value if found.
 */
const char *rtems_bsp_cmdline_get_param_rhs(
  const char *name,
  char       *value,
  size_t      length
);

/**
 * @brief Obtain Pointer to the Entire Matching Argument
 *
 * This method searches for the argument @a name in
 * the BSP Boot Command String and returns a pointer to the
 * entire string associated with it. This will include the
 * argument and any right hand side portion of the string.
 * For example, one might be returned --mode=FAST if
 * searching for --mode.
 *
 * @param[in] name is the arugment to search for
 *
 * @retval This method returns NULL if not found and a pointer
 *         into the BSP Boot Command String if found.
 *
 * @note The pointer will be to the original BSP Command
 *       Line string. Exercise caution when using this.
 */
const char *rtems_bsp_cmdline_get_param_raw(
  const char *name
);

#ifdef __cplusplus
}
#endif

/**@}*/
#endif