source: rtems/cpukit/libmisc/monitor/mon-task.c @ 2cc9367

4.104.114.84.95
Last change on this file since 2cc9367 was 550c3df7, checked in by Ralf Corsepius <ralf.corsepius@…>, on 07/08/03 at 08:39:16

2003-07-08 Ralf Corsepius <corsepiu@…>

  • capture/capture-cli.c: Add config-header support.
  • capture/capture.c: Add config-header support.
  • cpuuse/cpuuse.c: Add config-header support.
  • devnull/devnull.c: Add config-header support.
  • dummy/dummy.c: Add config-header support.
  • dumpbuf/dumpbuf.c: Add config-header support.
  • monitor/mon-command.c: Add config-header support.
  • monitor/mon-config.c: Add config-header support.
  • monitor/mon-dname.c: Add config-header support.
  • monitor/mon-driver.c: Add config-header support.
  • monitor/mon-extension.c: Add config-header support.
  • monitor/mon-itask.c: Add config-header support.
  • monitor/mon-manager.c: Add config-header support.
  • monitor/mon-monitor.c: Add config-header support.
  • monitor/mon-mpci.c: Add config-header support.
  • monitor/mon-object.c: Add config-header support.
  • monitor/mon-prmisc.c: Add config-header support.
  • monitor/mon-queue.c: Add config-header support.
  • monitor/mon-server.c: Add config-header support.
  • monitor/mon-symbols.c: Add config-header support.
  • monitor/mon-task.c: Add config-header support.
  • mw-fb/mw_fb.c: Add config-header support.
  • mw-fb/mw_uid.c: Add config-header support.
  • rtmonuse/rtmonuse.c: Add config-header support.
  • serdbg/serdbg.c: Add config-header support.
  • serdbg/serdbgio.c: Add config-header support.
  • serdbg/termios_printk.c: Add config-header support.
  • shell/cmds.c: Add config-header support.
  • stackchk/check.c: Add config-header support.
  • untar/untar.c: Add config-header support.
  • Property mode set to 100644
File size: 3.0 KB
Line 
1/*
2 * RTEMS Monitor task support
3 *
4 *  $Id$
5 */
6
7#ifdef HAVE_CONFIG_H
8#include "config.h"
9#endif
10
11#include <rtems.h>
12#include <rtems/monitor.h>
13
14#include <stdio.h>
15#include <string.h>    /* memcpy() */
16
17void
18rtems_monitor_task_canonical(
19    rtems_monitor_task_t  *canonical_task,
20    void                  *thread_void
21)
22{
23    Thread_Control       *rtems_thread = (Thread_Control *) thread_void;
24    RTEMS_API_Control    *api;
25
26    api = rtems_thread->API_Extensions[ THREAD_API_RTEMS ];
27   
28    canonical_task->entry = rtems_thread->Start.entry_point;
29    canonical_task->argument = rtems_thread->Start.numeric_argument;
30    canonical_task->stack = rtems_thread->Start.Initial_stack.area;
31    canonical_task->stack_size = rtems_thread->Start.Initial_stack.size;
32    canonical_task->priority = rtems_thread->current_priority;
33    canonical_task->state = rtems_thread->current_state;
34    canonical_task->wait_id = rtems_thread->Wait.id;
35    canonical_task->events = api->pending_events;
36
37/* XXX modes and attributes only exist in the RTEMS API .. */
38/* XXX not directly in the core thread.. they will have to be derived */
39/* XXX if they are important enough to include anymore.   */
40    canonical_task->modes = 0; /* XXX FIX ME.... rtems_thread->current_modes; */
41    canonical_task->attributes = 0 /* XXX FIX ME rtems_thread->API_Extensions[ THREAD_API_RTEMS ]->attribute_set */;
42    (void) memcpy(canonical_task->notepad, api ->Notepads, sizeof(canonical_task->notepad));
43/* XXX more to fix */
44/*
45    (void) memcpy(&canonical_task->wait_args, &rtems_thread->Wait.Extra, sizeof(canonical_task->wait_args));
46*/
47}
48
49
50void
51rtems_monitor_task_dump_header(
52    boolean verbose
53)
54{
55    printf("\
56  ID       NAME   PRIO   STAT   MODES  EVENTS   WAITID  WAITARG  NOTES\n");
57/*23456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
580         1         2         3         4         5         6         7       */
59           
60    rtems_monitor_separator();
61}
62
63/*
64 */
65
66void
67rtems_monitor_task_dump(
68    rtems_monitor_task_t *monitor_task,
69    boolean  verbose
70)
71{
72    int length = 0;
73
74    length += rtems_monitor_dump_id(monitor_task->id);
75    length += rtems_monitor_pad(11, length);
76    length += rtems_monitor_dump_name(monitor_task->name);
77    length += rtems_monitor_pad(18, length);
78    length += rtems_monitor_dump_priority(monitor_task->priority);
79    length += rtems_monitor_pad(24, length);
80    length += rtems_monitor_dump_state(monitor_task->state);
81    length += rtems_monitor_pad(31, length);
82    length += rtems_monitor_dump_modes(monitor_task->modes);
83    length += rtems_monitor_pad(39, length);
84    length += rtems_monitor_dump_events(monitor_task->events);
85    if (monitor_task->wait_id)
86    {
87        length += rtems_monitor_pad(47, length);
88        length += rtems_monitor_dump_id(monitor_task->wait_id);
89        length += rtems_monitor_pad(57, length);
90        length += rtems_monitor_dump_hex(monitor_task->wait_args);
91    }
92
93    length += rtems_monitor_pad(65, length);
94    length += rtems_monitor_dump_notepad(monitor_task->notepad);
95    printf("\n");
96}
97
Note: See TracBrowser for help on using the repository browser.