source: rtems/cpukit/libmisc/monitor/mon-itask.c @ 6b4e448

4.115
Last change on this file since 6b4e448 was ed8be1ae, checked in by Sebastian Huber <sebastian.huber@…>, on 11/06/12 at 12:46:03

monitor: Add const qualifier

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*
2 * RTEMS Monitor init task support
3 */
4
5#ifdef HAVE_CONFIG_H
6#include "config.h"
7#endif
8
9#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__
10#include <rtems.h>
11#include <rtems/monitor.h>
12
13#include <inttypes.h>
14#include <stdio.h>
15
16/*
17 * As above, but just for init tasks
18 */
19void
20rtems_monitor_init_task_canonical(
21    rtems_monitor_init_task_t *canonical_itask,
22    const void                *itask_void
23)
24{
25    const rtems_initialization_tasks_table *rtems_itask = itask_void;
26
27    rtems_monitor_symbol_canonical_by_value(&canonical_itask->entry,
28                                            (void *) rtems_itask->entry_point);
29
30    canonical_itask->argument = rtems_itask->argument;
31    canonical_itask->stack_size = rtems_itask->stack_size;
32    canonical_itask->priority = rtems_itask->initial_priority;
33    canonical_itask->modes = rtems_itask->mode_set;
34    canonical_itask->attributes = rtems_itask->attribute_set;
35}
36
37const void *
38rtems_monitor_init_task_next(
39    void                  *object_info __attribute__((unused)),
40    rtems_monitor_init_task_t *canonical_init_task,
41    rtems_id              *next_id
42)
43{
44    rtems_initialization_tasks_table *itask;
45    uint32_t   n = rtems_object_id_get_index(*next_id);
46
47    if (n >= Configuration_RTEMS_API.number_of_initialization_tasks)
48        goto failed;
49
50    _Thread_Disable_dispatch();
51
52    itask = Configuration_RTEMS_API.User_initialization_tasks_table + n;
53
54    /*
55     * dummy up a fake id and name for this item
56     */
57
58    canonical_init_task->id = n;
59    canonical_init_task->name = itask->name;
60
61    *next_id += 1;
62    return (const void *) itask;
63
64failed:
65    *next_id = RTEMS_OBJECT_ID_FINAL;
66    return 0;
67}
68
69
70void
71rtems_monitor_init_task_dump_header(
72    bool verbose __attribute__((unused))
73)
74{
75    fprintf(stdout,"\
76  #    NAME   ENTRY        ARGUMENT    PRIO   MODES  ATTRIBUTES   STACK SIZE\n");
77/*23456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
780         1         2         3         4         5         6         7       */
79    rtems_monitor_separator();
80}
81
82/*
83 */
84
85void
86rtems_monitor_init_task_dump(
87    rtems_monitor_init_task_t *monitor_itask,
88    bool  verbose
89)
90{
91    int length = 0;
92
93    length += rtems_monitor_dump_decimal(monitor_itask->id);
94
95    length += rtems_monitor_pad(7, length);
96    length += rtems_monitor_dump_name(monitor_itask->id);
97
98    length += rtems_monitor_pad(14, length);
99    length += rtems_monitor_symbol_dump(&monitor_itask->entry, verbose);
100
101    length += rtems_monitor_pad(25, length);
102    length += fprintf(stdout,"%" PRId32 " [0x%" PRIx32 "]",
103      monitor_itask->argument, monitor_itask->argument);
104
105    length += rtems_monitor_pad(39, length);
106    length += rtems_monitor_dump_priority(monitor_itask->priority);
107
108    length += rtems_monitor_pad(46, length);
109    length += rtems_monitor_dump_modes(monitor_itask->modes);
110
111    length += rtems_monitor_pad(54, length);
112    length += rtems_monitor_dump_attributes(monitor_itask->attributes);
113
114    length += rtems_monitor_pad(66, length);
115    length += fprintf(stdout,"%" PRId32 " [0x%" PRIx32 "]",
116      monitor_itask->stack_size, monitor_itask->stack_size);
117
118    fprintf(stdout,"\n");
119}
Note: See TracBrowser for help on using the repository browser.