summaryrefslogtreecommitdiffstats
path: root/c/src/libmisc/capture/capture.h
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2002-12-12 03:59:25 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2002-12-12 03:59:25 +0000
commit7fe03217c8facf2fd90b29c31928e6d090f4e19c (patch)
treee7dfd9e9146944f1529dc5edab5b25dc4c22cd9f /c/src/libmisc/capture/capture.h
parent2002-12-12 Ralf Corsepius <corsepius@faw.uni-ulm.de> (diff)
downloadrtems-7fe03217c8facf2fd90b29c31928e6d090f4e19c.tar.bz2
2002-12-12 Ralf Corsepius <corsepius@faw.uni-ulm.de>
* .cvsignore: Moved to rtems/cpukit/libmisc. * ChangeLog: Moved to rtems/cpukit/libmisc. * Makefile.am: Moved to rtems/cpukit/libmisc. * README: Moved to rtems/cpukit/libmisc. * configure.ac: Moved to rtems/cpukit/libmisc. * capture/Makefile.am: Moved to rtems/cpukit/libmisc. * capture/README: Moved to rtems/cpukit/libmisc. * capture/capture-cli.c: Moved to rtems/cpukit/libmisc. * capture/capture-cli.h: Moved to rtems/cpukit/libmisc. * capture/capture.c: Moved to rtems/cpukit/libmisc. * capture/capture.h: Moved to rtems/cpukit/libmisc. * cpuuse/Makefile.am: Moved to rtems/cpukit/libmisc. * cpuuse/README: Moved to rtems/cpukit/libmisc. * cpuuse/cpuuse.c: Moved to rtems/cpukit/libmisc. * cpuuse/cpuuse.h: Moved to rtems/cpukit/libmisc. * devnull/.cvsignore: Moved to rtems/cpukit/libmisc. * devnull/Makefile.am: Moved to rtems/cpukit/libmisc. * devnull/devnull.c: Moved to rtems/cpukit/libmisc. * devnull/devnull.h: Moved to rtems/cpukit/libmisc. * dummy/.cvsignore: Moved to rtems/cpukit/libmisc. * dummy/Makefile.am: Moved to rtems/cpukit/libmisc. * dummy/README: Moved to rtems/cpukit/libmisc. * dummy/dummy.c: Moved to rtems/cpukit/libmisc. * dumpbuf/.cvsignore: Moved to rtems/cpukit/libmisc. * dumpbuf/Makefile.am: Moved to rtems/cpukit/libmisc. * dumpbuf/dumpbuf.c: Moved to rtems/cpukit/libmisc. * dumpbuf/dumpbuf.h: Moved to rtems/cpukit/libmisc. * monitor/.cvsignore: Moved to rtems/cpukit/libmisc. * monitor/Makefile.am: Moved to rtems/cpukit/libmisc. * monitor/README: Moved to rtems/cpukit/libmisc. * monitor/mon-command.c: Moved to rtems/cpukit/libmisc. * monitor/mon-config.c: Moved to rtems/cpukit/libmisc. * monitor/mon-dname.c: Moved to rtems/cpukit/libmisc. * monitor/mon-driver.c: Moved to rtems/cpukit/libmisc. * monitor/mon-extension.c: Moved to rtems/cpukit/libmisc. * monitor/mon-itask.c: Moved to rtems/cpukit/libmisc. * monitor/mon-manager.c: Moved to rtems/cpukit/libmisc. * monitor/mon-monitor.c: Moved to rtems/cpukit/libmisc. * monitor/mon-mpci.c: Moved to rtems/cpukit/libmisc. * monitor/mon-object.c: Moved to rtems/cpukit/libmisc. * monitor/mon-prmisc.c: Moved to rtems/cpukit/libmisc. * monitor/mon-queue.c: Moved to rtems/cpukit/libmisc. * monitor/mon-server.c: Moved to rtems/cpukit/libmisc. * monitor/mon-symbols.c: Moved to rtems/cpukit/libmisc. * monitor/mon-task.c: Moved to rtems/cpukit/libmisc. * monitor/monitor.h: Moved to rtems/cpukit/libmisc. * monitor/symbols.h: Moved to rtems/cpukit/libmisc. * mw-fb/.cvsignore: Moved to rtems/cpukit/libmisc. * mw-fb/Makefile.am: Moved to rtems/cpukit/libmisc. * mw-fb/mw_fb.c: Moved to rtems/cpukit/libmisc. * mw-fb/mw_fb.h: Moved to rtems/cpukit/libmisc. * mw-fb/mw_uid.c: Moved to rtems/cpukit/libmisc. * mw-fb/mw_uid.h: Moved to rtems/cpukit/libmisc. * rtmonuse/.cvsignore: Moved to rtems/cpukit/libmisc. * rtmonuse/Makefile.am: Moved to rtems/cpukit/libmisc. * rtmonuse/rtmonuse.c: Moved to rtems/cpukit/libmisc. * rtmonuse/rtmonuse.h: Moved to rtems/cpukit/libmisc. * serdbg/.cvsignore: Moved to rtems/cpukit/libmisc. * serdbg/Makefile.am: Moved to rtems/cpukit/libmisc. * serdbg/README: Moved to rtems/cpukit/libmisc. * serdbg/serdbg.c: Moved to rtems/cpukit/libmisc. * serdbg/serdbg.h: Moved to rtems/cpukit/libmisc. * serdbg/serdbgcnf.h: Moved to rtems/cpukit/libmisc. * serdbg/serdbgio.c: Moved to rtems/cpukit/libmisc. * serdbg/termios_printk.c: Moved to rtems/cpukit/libmisc. * serdbg/termios_printk.h: Moved to rtems/cpukit/libmisc. * serdbg/termios_printk_cnf.h: Moved to rtems/cpukit/libmisc. * shell/.cvsignore: Moved to rtems/cpukit/libmisc. * shell/Makefile.am: Moved to rtems/cpukit/libmisc. * shell/README: Moved to rtems/cpukit/libmisc. * shell/cmds.c: Moved to rtems/cpukit/libmisc. * shell/shell.c: Moved to rtems/cpukit/libmisc. * shell/shell.h: Moved to rtems/cpukit/libmisc. * stackchk/.cvsignore: Moved to rtems/cpukit/libmisc. * stackchk/Makefile.am: Moved to rtems/cpukit/libmisc. * stackchk/README: Moved to rtems/cpukit/libmisc. * stackchk/check.c: Moved to rtems/cpukit/libmisc. * stackchk/internal.h: Moved to rtems/cpukit/libmisc. * stackchk/stackchk.h: Moved to rtems/cpukit/libmisc. * untar/.cvsignore: Moved to rtems/cpukit/libmisc. * untar/Makefile.am: Moved to rtems/cpukit/libmisc. * untar/README: Moved to rtems/cpukit/libmisc. * untar/untar.c: Moved to rtems/cpukit/libmisc. * untar/untar.h: Moved to rtems/cpukit/libmisc. * wrapup/.cvsignore: Moved to rtems/cpukit/libmisc. * wrapup/Makefile.am: Moved to rtems/cpukit/libmisc.
Diffstat (limited to 'c/src/libmisc/capture/capture.h')
-rw-r--r--c/src/libmisc/capture/capture.h869
1 files changed, 0 insertions, 869 deletions
diff --git a/c/src/libmisc/capture/capture.h b/c/src/libmisc/capture/capture.h
deleted file mode 100644
index 7e5bfea9a8..0000000000
--- a/c/src/libmisc/capture/capture.h
+++ /dev/null
@@ -1,869 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- Copyright Objective Design Systems Pty Ltd, 2002
- All rights reserved Objective Design Systems Pty Ltd, 2002
- Chris Johns (ccj@acm.org)
-
- COPYRIGHT (c) 1989-1998.
- On-Line Applications Research Corporation (OAR).
-
- The license and distribution terms for this file may be
- found in the file LICENSE in this distribution.
-
- This software with is provided ``as is'' and with NO WARRANTY.
-
- ------------------------------------------------------------------------
-
- RTEMS Performance Monitoring and Measurement Framework.
-
- This is the Capture Engine component.
-
-*/
-
-#ifndef __CAPTURE_H_
-#define __CAPTURE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems.h>
-
-/*
- * The number of tasks in a trigger group.
- */
-#define RTEMS_CAPTURE_TRIGGER_TASKS (32)
-
-/*
- * rtems_capture_control_t
- *
- * DESCRIPTION:
- *
- * RTEMS control holds the trigger and watch configuration for a group of
- * tasks with the same name.
- */
-typedef struct rtems_capture_control_s
-{
- rtems_name name;
- rtems_id id;
- rtems_unsigned32 flags;
- rtems_name from[RTEMS_CAPTURE_TRIGGER_TASKS];
- rtems_id from_id[RTEMS_CAPTURE_TRIGGER_TASKS];
- struct rtems_capture_control_s* next;
-} rtems_capture_control_t;
-
-/*
- * Control flags.
- */
-#define RTEMS_CAPTURE_WATCH (1 << 0)
-#define RTEMS_CAPTURE_FROM_ANY (1 << 1)
-#define RTEMS_CAPTURE_TO_ANY (1 << 2)
-#define RTEMS_CAPTURE_FROM_TO (1 << 3)
-
-/*
- * rtems_capture_control_t
- *
- * DESCRIPTION:
- *
- * RTEMS capture control provdes the information about a task, along
- * with its trigger state. The control is referenced by each
- * capture record. This is* information neeed by the decoder. The
- * capture record cannot assume the task will exist when the record is
- * dumped via the target interface so task info needed for tracing is
- * copied and held here.
- *
- * The inline heper functions provide more details about the info
- * contained in this structure.
- *
- * Note, the tracer code exploits the fact an rtems_name is a
- * 32bit value.
- */
-typedef struct rtems_capture_task_s
-{
- rtems_name name;
- rtems_id id;
- rtems_unsigned32 flags;
- rtems_tcb* tcb;
- rtems_unsigned32 in;
- rtems_unsigned32 out;
- rtems_task_priority start_priority;
- rtems_unsigned32 stack_size;
- rtems_unsigned32 stack_clean;
- rtems_unsigned32 ticks;
- rtems_unsigned32 tick_offset;
- rtems_unsigned32 ticks_in;
- rtems_unsigned32 tick_offset_in;
- rtems_unsigned32 last_ticks;
- rtems_unsigned32 last_tick_offset;
- rtems_capture_control_t* control;
- struct rtems_capture_task_s* next;
-} rtems_capture_task_t;
-
-/*
- * Task flags.
- */
-#define RTEMS_CAPTURE_TRACED (1 << 0)
-
-/*
- * rtems_capture_record_t
- *
- * DESCRIPTION:
- *
- * RTEMS capture record. This is a record that is written into
- * the buffer. The events includes the priority of the task
- * at the time of the context switch.
- */
-typedef struct rtems_capture_record_s
-{
- rtems_capture_task_t* task;
- rtems_unsigned32 events;
- rtems_unsigned32 ticks;
- rtems_unsigned32 tick_offset;
-} rtems_capture_record_t;
-
-/*
- * The capture record event flags.
- */
-#define RTEMS_CAPTURE_REAL_PRI_EVENT_MASK (0x000000ff)
-#define RTEMS_CAPTURE_CURR_PRI_EVENT_MASK (0x0000ff00)
-#define RTEMS_CAPTURE_REAL_PRIORITY_EVENT (0)
-#define RTEMS_CAPTURE_CURR_PRIORITY_EVENT (8)
-#define RTEMS_CAPTURE_EVENT_START (16)
-#define RTEMS_CAPTURE_CREATED_BY_EVENT (1 << 16)
-#define RTEMS_CAPTURE_CREATED_EVENT (1 << 17)
-#define RTEMS_CAPTURE_STARTED_BY_EVENT (1 << 18)
-#define RTEMS_CAPTURE_STARTED_EVENT (1 << 19)
-#define RTEMS_CAPTURE_RESTARTED_BY_EVENT (1 << 20)
-#define RTEMS_CAPTURE_RESTARTED_EVENT (1 << 21)
-#define RTEMS_CAPTURE_DELETED_BY_EVENT (1 << 22)
-#define RTEMS_CAPTURE_DELETED_EVENT (1 << 23)
-#define RTEMS_CAPTURE_BEGIN_EVENT (1 << 24)
-#define RTEMS_CAPTURE_EXITTED_EVENT (1 << 25)
-#define RTEMS_CAPTURE_SWITCHED_OUT_EVENT (1 << 26)
-#define RTEMS_CAPTURE_SWITCHED_IN_EVENT (1 << 27)
-#define RTEMS_CAPTURE_TIMESTAMP (1 << 28)
-#define RTEMS_CAPTURE_EVENT_END (28)
-
-/*
- * rtems_capture_trigger_t
- *
- * DESCRIPTION:
- *
- * The types of triggers that exist. FIXME: add more here.
- */
-typedef enum rtems_capture_trigger_t
-{
- rtems_capture_to_any,
- rtems_capture_from_any,
- rtems_capture_from_to
-} rtems_capture_trigger_t;
-
-/*
- * rtems_capture_timestamp
- *
- * DESCRIPTION:
- *
- * This defines the callout handler to obtain a time stamp. The
- * value returned is time count since the last read.
- *
- */
-
-typedef void (*rtems_capture_timestamp)
- (rtems_unsigned32* ticks, rtems_unsigned32* micro);
-
-/*
- * rtems_capture_open
- *
- * DESCRIPTION:
- *
- * This function initialises the realtime trace manager allocating the capture
- * buffer. It is assumed we have a working heap at stage of initialisation.
- *
- */
-rtems_status_code
-rtems_capture_open (rtems_unsigned32 size,
- rtems_capture_timestamp timestamp);
-
-/*
- * rtems_capture_close
- *
- * DESCRIPTION:
- *
- * This function shutdowns the tracer and release any claimed
- * resources.
- */
-rtems_status_code
-rtems_capture_close ();
-
-/*
- * rtems_capture_control
- *
- * DESCRIPTION:
- *
- * This function allows control of tracing at a global level.
- */
-rtems_status_code
-rtems_capture_control (rtems_boolean enable);
-
-/*
- * rtems_capture_flush
- *
- * DESCRIPTION:
- *
- * This function flushes the trace buffer. The prime parameter allows the
- * capture engine to also be primed again.
- */
-rtems_status_code
-rtems_capture_flush (rtems_boolean prime);
-
-/*
- * rtems_capture_watch_add
- *
- * DESCRIPTION:
- *
- * This function defines a watch for a specific task given a name. A watch
- * causes it to be traced either in or out of context. The watch can be
- * optionally enabled or disabled with the set routine. It is disabled by
- * default.
- */
-rtems_status_code
-rtems_capture_watch_add (rtems_name name, rtems_id id);
-
-/*
- * rtems_capture_watch_del
- *
- * DESCRIPTION:
- *
- * This function removes a watch for a specific task given a name. The task
- * description will still exist if referenced by a trace record in the trace
- * buffer or a global watch is defined.
- */
-rtems_status_code
-rtems_capture_watch_del (rtems_name name, rtems_id id);
-
-/*
- * rtems_capture_watch_set
- *
- * DESCRIPTION:
- *
- * This function allows control of a watch. The watch can be enabled or
- * disabled.
- */
-rtems_status_code
-rtems_capture_watch_ctrl (rtems_name name, rtems_id id, rtems_boolean enable);
-
-/*
- * rtems_capture_watch_global
- *
- * DESCRIPTION:
- *
- * This function allows control of a global watch. The watch can be enabled or
- * disabled. A global watch configures all tasks below the ceiling and above
- * the floor to be traced.
- */
-rtems_status_code
-rtems_capture_watch_global (rtems_boolean enable);
-
-/*
- * rtems_capture_watch_global_on
- *
- * DESCRIPTION:
- *
- * This function returns the global watch state.
- */
-rtems_boolean
-rtems_capture_watch_global_on ();
-
-/*
- * rtems_capture_watch_ceiling
- *
- * DESCRIPTION:
- *
- * This function sets a watch ceiling. Tasks at or greating that the
- * ceiling priority are not watched. This is a simple way to monitor
- * an application and exclude system tasks running at a higher
- * priority level.
- */
-rtems_status_code
-rtems_capture_watch_ceiling (rtems_task_priority ceiling);
-
-/*
- * rtems_capture_watch_get_ceiling
- *
- * DESCRIPTION:
- *
- * This function gets the watch ceiling.
- */
-rtems_task_priority
-rtems_capture_watch_get_ceiling ();
-
-/*
- * rtems_capture_watch_floor
- *
- * DESCRIPTION:
- *
- * This function sets a watch floor. Tasks at or less that the
- * floor priority are not watched. This is a simple way to monitor
- * an application and exclude system tasks running at a lower
- * priority level.
- */
-rtems_status_code
-rtems_capture_watch_floor (rtems_task_priority floor);
-
-/*
- * rtems_capture_watch_get_floor
- *
- * DESCRIPTION:
- *
- * This function gets the watch floor.
- */
-rtems_task_priority
-rtems_capture_watch_get_floor ();
-
-/*
- * rtems_capture_set_trigger
- *
- * DESCRIPTION:
- *
- * This function sets an edge trigger. Left is the left side of
- * the edge and right is right side of the edge. The trigger type
- * can be -
- *
- * FROM_ANY : a switch from any task to the right side of the edge.
- * TO_ANY : a switch from the left side of the edge to any task.
- * FROM_TO : a switch from the left side of the edge to the right
- * side of the edge.
- *
- * This set trigger routine will create a trace control for the
- * target task. The task list is searched and any existing tasks
- * are linked to the new control.
- *
- * We can have a number of tasks that have the same name so we
- * search using names. This means a number of tasks can be
- * linked to single control.
- */
-rtems_status_code
-rtems_capture_set_trigger (rtems_name from,
- rtems_id from_id,
- rtems_name to,
- rtems_id to_id,
- rtems_capture_trigger_t trigger);
-
-/*
- * rtems_capture_read
- *
- * DESCRIPTION:
- *
- * This function reads a number of records from the capture buffer.
- * The user can optionally block and wait until the buffer as a
- * specific number of records available or a specific time has
- * elasped.
- *
- * The function returns the number of record that is has that are
- * in a continous block of memory. If the number of available records
- * wrap then only those records are provided. This removes the need for
- * caller to be concerned about buffer wrappings. If the number of
- * requested records cannot be met due to the wrapping of the records
- * less than the specified number will be returned.
- *
- * The user must release the records. This is achieved with a call to
- * rtems_capture_release. Calls this function without a release will
- * result in at least the same number of records being released.
- *
- * The 'threshold' parameter is the number of records that must be
- * captured before returning. If a timeout period is specified (non-0)
- * any captured records will be returned. These parameters stop
- * thrashing occuring for a small number of records, yet allows
- * a user configured latiency to be applied for single events.
- *
- * The 'timeout' parameter is in micro-seconds. A value of 0 will disable
- * the timeout.
- *
- */
-rtems_status_code
-rtems_capture_read (rtems_unsigned32 threshold,
- rtems_unsigned32 timeout,
- rtems_unsigned32* read,
- rtems_capture_record_t** recs);
-
-/*
- * rtems_capture_release
- *
- * DESCRIPTION:
- *
- * This function releases the requested number of record slots back
- * to the capture engine. The count must match the number read.
- */
-rtems_status_code
-rtems_capture_release (rtems_unsigned32 count);
-
-/*
- * rtems_capture_tick_time
- *
- * DESCRIPTION:
- *
- * This function returns the tick period in micro-seconds.
- */
-rtems_unsigned32
-rtems_capture_tick_time ();
-
-/*
- * rtems_capture_tick_time
- *
- * DESCRIPTION:
- *
- * This function returns the tick period in micro-seconds.
- */
-rtems_unsigned32
-rtems_capture_tick_time ();
-
-/*
- * rtems_capture_event_text
- *
- * DESCRIPTION:
- *
- * This function returns a string for an event based on the bit in the
- * event. The functions takes the bit offset as a number not the bit
- * set in a bit map.
- */
-const char*
-rtems_capture_event_text (int event);
-
-/*
- * rtems_capture_get_task_list
- *
- * DESCRIPTION:
- *
- * This function returns the head of the list of tasks that the
- * capture engine has detected.
- */
-rtems_capture_task_t*
-rtems_capture_get_task_list ();
-
-/*
- * rtems_capture_next_task
- *
- * DESCRIPTION:
- *
- * This function returns the pointer to the next task in the list. The
- * pointer NULL terminates the list.
- */
-static inline rtems_capture_task_t*
-rtems_capture_next_task (rtems_capture_task_t* task)
-{
- return task->next;
-}
-
-/*
- * rtems_capture_task_valid
- *
- * DESCRIPTION:
- *
- * This function returns true if the task control block points to
- * a valid task.
- */
-static inline rtems_boolean
-rtems_capture_task_valid (rtems_capture_task_t* task)
-{
- return task->tcb != NULL;
-}
-
-/*
- * rtems_capture_task_id
- *
- * DESCRIPTION:
- *
- * This function returns the task id.
- */
-static inline rtems_id
-rtems_capture_task_id (rtems_capture_task_t* task)
-{
- return task->id;
-}
-
-/*
- * rtems_capture_task_state
- *
- * DESCRIPTION:
- *
- * This function returns the task state.
- */
-static inline States_Control
-rtems_capture_task_state (rtems_capture_task_t* task)
-{
- if (rtems_capture_task_valid (task))
- return task->tcb->current_state;
- return 0;
-}
-
-/*
- * rtems_capture_task_name
- *
- * DESCRIPTION:
- *
- * This function returns the task name.
- */
-static inline rtems_name
-rtems_capture_task_name (rtems_capture_task_t* task)
-{
- return task->name;
-}
-
-/*
- * rtems_capture_task_flags
- *
- * DESCRIPTION:
- *
- * This function returns the task flags.
- */
-static inline rtems_unsigned32
-rtems_capture_task_flags (rtems_capture_task_t* task)
-{
- return task->flags;
-}
-
-/*
- * rtems_capture_task_control
- *
- * DESCRIPTION:
- *
- * This function returns the task control if present.
- */
-static inline rtems_capture_control_t*
-rtems_capture_task_control (rtems_capture_task_t* task)
-{
- return task->control;
-}
-
-/*
- * rtems_capture_task_control_flags
- *
- * DESCRIPTION:
- *
- * This function returns the task control flags if a control is present.
- */
-static inline rtems_unsigned32
-rtems_capture_task_control_flags (rtems_capture_task_t* task)
-{
- if (!task->control)
- return 0;
- return task->control->flags;
-}
-
-/*
- * rtems_capture_task_switched_in
- *
- * DESCRIPTION:
- *
- * This function returns the number of times the task has
- * been switched into context.
- */
-static inline rtems_unsigned32
-rtems_capture_task_switched_in (rtems_capture_task_t* task)
-{
- return task->in;
-}
-
-/*
- * rtems_capture_task_switched_out
- *
- * DESCRIPTION:
- *
- * This function returns the number of times the task has
- * been switched out of context.
- */
-static inline rtems_unsigned32
-rtems_capture_task_switched_out (rtems_capture_task_t* task)
-{
- return task->out;
-}
-
-/*
- * rtems_capture_task_curr_priority
- *
- * DESCRIPTION:
- *
- * This function returns the tasks start priority. The tracer needs this
- * to track where the task's priority goes.
- */
-static inline rtems_task_priority
-rtems_capture_task_start_priority (rtems_capture_task_t* task)
-{
- return task->start_priority;
-}
-
-/*
- * rtems_capture_task_real_priority
- *
- * DESCRIPTION:
- *
- * This function returns the tasks real priority.
- */
-static inline rtems_task_priority
-rtems_capture_task_real_priority (rtems_capture_task_t* task)
-{
- if (rtems_capture_task_valid (task))
- return task->tcb->real_priority;
- return 0;
-}
-
-/*
- * rtems_capture_task_curr_priority
- *
- * DESCRIPTION:
- *
- * This function returns the tasks current priority.
- */
-static inline rtems_task_priority
-rtems_capture_task_curr_priority (rtems_capture_task_t* task)
-{
- if (rtems_capture_task_valid (task))
- return task->tcb->current_priority;
- return 0;
-}
-
-/*
- * rtems_capture_task_stack_usage
- *
- * DESCRIPTION:
- *
- * This function updates the stack usage. The task control block
- * is updated.
- */
-rtems_unsigned32
-rtems_capture_task_stack_usage (rtems_capture_task_t* task);
-
-/*
- * rtems_capture_task_stack_size
- *
- * DESCRIPTION:
- *
- * This function returns the task's stack size.
- */
-static inline rtems_unsigned32
-rtems_capture_task_stack_size (rtems_capture_task_t* task)
-{
- return task->stack_size;
-}
-
-/*
- * rtems_capture_task_stack_used
- *
- * DESCRIPTION:
- *
- * This function returns the amount of stack used.
- */
-static inline rtems_unsigned32
-rtems_capture_task_stack_used (rtems_capture_task_t* task)
-{
- return task->stack_size - task->stack_clean;
-}
-
-/*
- * rtems_capture_task_ticks
- *
- * DESCRIPTION:
- *
- * This function returns the current execution time as ticks.
- */
-static inline rtems_unsigned32
-rtems_capture_task_ticks (rtems_capture_task_t* task)
-{
- return task->ticks;
-}
-
-/*
- * rtems_capture_task_tick_offset
- *
- * DESCRIPTION:
- *
- * This function returns the current execution time tick offset.
- */
-static inline rtems_unsigned32
-rtems_capture_task_tick_offset (rtems_capture_task_t* task)
-{
- return task->tick_offset;
-}
-
-/*
- * rtems_capture_task_time
- *
- * DESCRIPTION:
- *
- * This function returns the current execution time.
- */
-static inline unsigned long long
-rtems_capture_task_time (rtems_capture_task_t* task)
-{
- unsigned long long t = task->ticks;
- return (t * rtems_capture_tick_time ()) + task->tick_offset;;
-}
-
-/*
- * rtems_capture_task_delta_time
- *
- * DESCRIPTION:
- *
- * This function returns the execution time as a different between the
- * last time the detla time was and now.
- */
-static inline unsigned long long
-rtems_capture_task_delta_time (rtems_capture_task_t* task)
-{
- unsigned long long t = task->ticks - task->last_ticks;
- rtems_unsigned32 o = task->tick_offset - task->last_tick_offset;
-
- task->last_ticks = task->ticks;
- task->last_tick_offset = task->tick_offset;
-
- return (t * rtems_capture_tick_time ()) + o;
-}
-
-/*
- * rtems_capture_task_count
- *
- * DESCRIPTION:
- *
- * This function returns the number of tasks the capture
- * engine knows about.
- */
-static inline rtems_unsigned32
-rtems_capture_task_count ()
-{
- rtems_capture_task_t* task = rtems_capture_get_task_list ();
- rtems_unsigned32 count = 0;
-
- while (task)
- {
- count++;
- task = rtems_capture_next_task (task);
- }
-
- return count;
-}
-
-/*
- * rtems_capture_get_control_list
- *
- * DESCRIPTION:
- *
- * This function returns the head of the list of controls in the
- * capture engine.
- */
-rtems_capture_control_t*
-rtems_capture_get_control_list ();
-
-/*
- * rtems_capture_next_control
- *
- * DESCRIPTION:
- *
- * This function returns the pointer to the next control in the list. The
- * pointer NULL terminates the list.
- */
-static inline rtems_capture_control_t*
-rtems_capture_next_control (rtems_capture_control_t* control)
-{
- return control->next;
-}
-
-/*
- * rtems_capture_control_id
- *
- * DESCRIPTION:
- *
- * This function returns the control id.
- */
-static inline rtems_id
-rtems_capture_control_id (rtems_capture_control_t* control)
-{
- return control->id;
-}
-
-/*
- * rtems_capture_control_name
- *
- * DESCRIPTION:
- *
- * This function returns the control name.
- */
-static inline rtems_name
-rtems_capture_control_name (rtems_capture_control_t* control)
-{
- return control->name;
-}
-
-/*
- * rtems_capture_control_flags
- *
- * DESCRIPTION:
- *
- * This function returns the control flags.
- */
-static inline rtems_unsigned32
-rtems_capture_control_flags (rtems_capture_control_t* control)
-{
- return control->flags;
-}
-
-/*
- * rtems_capture_control_from_name
- *
- * DESCRIPTION:
- *
- * This function returns the control from task name.
- */
-static inline rtems_name
-rtems_capture_control_from_name (rtems_capture_control_t* control, int from)
-{
- if (from < RTEMS_CAPTURE_TRIGGER_TASKS)
- return control->from[from];
- return control->from[0];
-}
-
-/*
- * rtems_capture_control_from_id
- *
- * DESCRIPTION:
- *
- * This function returns the control from task id.
- */
-static inline rtems_id
-rtems_capture_control_from_id (rtems_capture_control_t* control, int from)
-{
- if (from < RTEMS_CAPTURE_TRIGGER_TASKS)
- return control->from_id[from];
- return control->from_id[0];
-}
-
-/*
- * rtems_capture_control_count
- *
- * DESCRIPTION:
- *
- * This function returns the number of controls the capture
- * engine has.
- */
-static inline rtems_unsigned32
-rtems_capture_control_count ()
-{
- rtems_capture_control_t* control = rtems_capture_get_control_list ();
- rtems_unsigned32 count = 0;
-
- while (control)
- {
- count++;
- control = rtems_capture_next_control (control);
- }
-
- return count;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif