dsdp/tm/tcf_0_3_x/org.eclipse.tm.tcf.docs/TCF Linux Agent Prototype.html
author timkelly
Thu, 27 Aug 2009 14:02:03 -0500
changeset 78 f17d142f8a47
parent 70 11a6943ebeb2
permissions -rw-r--r--
merge commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
70
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     2
<html>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     3
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     4
<head>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     5
        <TITLE>TCF Agent Prototype Implementation</TITLE>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     6
</head>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     7
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     8
<body LANG="EN-US">
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
     9
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    10
<h1>TCF Agent Prototype Implementation</h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    11
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    12
<p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    13
    Copyright (c) 2009 Wind River Systems, Inc. Made available under the EPL v1.0
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    14
</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    15
<p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    16
    Direct comments, questions to the <a href="mailto:dsdp-tcf-dev@eclipse.org">dsdp-tcf-dev@eclipse.org</a> mailing list
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    17
</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    18
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    19
<h2>Table of Contents</h2>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    20
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    21
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    22
        <a href='#Introduction'>Introduction</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    23
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    24
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    25
        <a href='#Framework'>Target Communication Framework</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    26
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    27
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    28
        <a href='#Services'>Services</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    29
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    30
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    31
        <a href='#Context'>Executable Context Handling</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    32
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    33
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    34
        <a href='#EventQueue'>Agent Event Queue</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    35
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    36
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    37
        <a href='#Misc'>Misc</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    38
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    39
    <li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    40
        <a href='#Architecture'>Architecture</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    41
    </li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    42
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    43
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    44
<h1><a name='Introduction'>Inroduction<a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    45
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    46
<p>This is a brief description of the TCF
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    47
agent prototype implementation.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    48
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    49
<p>The agent is implemented in C.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    50
The code mostly uses POSIX APIs to improve portability.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    51
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    52
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    53
<p>The agent is implemented as
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    54
an event driven program. The main event queue is handled by a single
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    55
thread &ndash; the event dispatch thread. Some sub-systems are using
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    56
other threads locally, but will never call other sub-systems using
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    57
these threads. Instead an event will be placed on the main event
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    58
queue to handle the inter sub-system communication.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    59
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    60
<p>Main program parses command line options and initialized sub-systems</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    61
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    62
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    63
        <li>main.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    64
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    65
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    66
<h1><a name='Framework'>Target Communication Framework</a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    67
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    68
<h3>Command and Event Registration and Dispatch</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    69
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    70
<p>This module handles registration of command and
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    71
event handlers. It is called when new messages are received and will
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    72
dispatch messages to the appropriate handler. It has no knowledge of
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    73
what transport protocol is used and what services do.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    74
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    75
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    76
        <li>protocol.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    77
        <li>protocol.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    78
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    79
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    80
<h3>Transport Layer</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    81
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    82
<p>Implements input and output stream over TCP/IP
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    83
transport and UDP based auto discovery.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    84
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    85
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    86
        <li>channel.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    87
        <li>channel.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    88
        <li>channel_tcp.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    89
        <li>channel_tcp.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    90
        <li>discovery.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    91
        <li>discovery.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    92
        <li>discovery_udp.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    93
        <li>discovery_udp.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    94
        <li>tcf.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    95
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    96
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    97
<h3>Input and Output Stream Interface and Library</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    98
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
    99
<p>This module defines generic input and output stream
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   100
interfaces and supporting library functions.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   101
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   102
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   103
        <li>streams.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   104
        <li>streams.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   105
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   106
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   107
<h1><a name='Services'>Services</a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   108
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   109
<h3>Breakpoint</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   110
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   111
<p>The breakpoint services implements a global
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   112
breakpoint list.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   113
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   114
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   115
        <li>breakpoints.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   116
        <li>breakpoints.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   117
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   118
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   119
<h3>Run Control</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   120
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   121
<p>This module implements the run control service. It
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   122
builds uses the context module to do low level control of contexts.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   123
It implements a &ldquo;safe queue&rdquo; which contains events that
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   124
that should be processed then executable contexts are suspended. Incoming
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   125
TCF messages are suspended while the safe queue is non-empty and are
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   126
resumed when the last safe queue entry is handled.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   127
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   128
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   129
        <li>runctrl.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   130
        <li>runctrl.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   131
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   132
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   133
<h3>System Monitoring</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   134
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   135
<p>This module provides system level monitoring
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   136
information, similar to the UNIX top or Windows task manager.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   137
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   138
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   139
        <li>sysmon.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   140
        <li>sysmon.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   141
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   142
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   143
<h3>Agent Diagnostics</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   144
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   145
<p>This service is used to do end-to-end self test
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   146
from the host to the target.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   147
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   148
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   149
        <li>diagnostics.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   150
        <li>diagnostics.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   151
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   152
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   153
<h1><a name='Context'>Executable Context Handling</a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   154
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   155
<p>This module handles process/thread OS contexts and
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   156
their state machine. All ptrace() handling is isolated to here.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   157
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   158
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   159
        <li>context.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   160
        <li>context.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   161
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   162
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   163
<h1><a name='EventQueue'>Agent Event Queue<a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   164
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   165
<p>This module implements the main event queue
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   166
dispatch and queuing. All events are processed by a single thread.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   167
Any thread can queue new events.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   168
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   169
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   170
        <li>events.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   171
        <li>events.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   172
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   173
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   174
<h1><a name='Misc'>Misc</a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   175
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   176
<h3>Command line interpreter</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   177
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   178
<p>The module allows a user to interact with agent. Current implementation of command line interpreter is incomplete.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   179
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   180
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   181
        <li>cmdline.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   182
        <li>cmdline.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   183
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   184
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   185
<h3>Error message display</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   186
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   187
<p>This module defines agent error codes in addition to system codes defined in errno.h</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   188
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   189
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   190
        <li>errors.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   191
        <li>errors.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   192
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   193
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   194
<h3>Exception Handling</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   195
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   196
<p>Exception handling. Functionality is similar to C++ try/catch.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   197
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   198
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   199
        <li>exceptions.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   200
        <li>exceptions.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   201
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   202
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   203
<h3>JSON Library</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   204
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   205
<p>The module contains utility functions for parsing and generating of JSON text.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   206
TCF standard services use JSON as messages format. See <a href='TCF Specification.html#JSON'>JSON - Preferred Marshaling</a>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   207
for JSON description.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   208
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   209
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   210
        <li>json.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   211
        <li>json.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   212
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   213
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   214
<h3>Double Linked List</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   215
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   216
<p>Utilitity module to support double linked lists.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   217
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   218
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   219
        <li>link.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   220
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   221
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   222
<h3>Host OS Abstraction</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   223
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   224
<p>Machine and OS dependend definitions.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   225
This module implements host OS abstraction layer that helps make
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   226
agent code portable between Linux, Windows, VxWorks and potentially other OSes.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   227
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   228
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   229
        <li>mdep.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   230
        <li>mdep.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   231
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   232
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   233
<h3>Malloc Abstraction</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   234
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   235
<p>Provides local versions of malloc(), realloc() and free().</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   236
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   237
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   238
        <li>myalloc.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   239
        <li>myalloc.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   240
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   241
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   242
<h3>Proxy</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   243
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   244
<p>Proxy service should allow tunneling of TCF messages to another target on behalf of a client.
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   245
This service intended to be used when a client has no direct access to a target.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   246
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   247
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   248
        <li>proxy.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   249
        <li>proxy.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   250
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   251
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   252
<h3>Test Application</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   253
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   254
<p>Test application is used by Diagnostics service to run various tests.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   255
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   256
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   257
        <li>test.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   258
        <li>test.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   259
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   260
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   261
<h3>Debug Logging</h3>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   262
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   263
<p>The module implements logging and tracing that is mostly intended for debugging of the agent.</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   264
<p>Files:</p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   265
<ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   266
        <li>trace.c</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   267
        <li>trace.h</li>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   268
</ul>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   269
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   270
<h1><a name='Architecture'>Architecture</a></h1>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   271
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   272
<p><img SRC="TCF%20Architecture.png" NAME="graphics1" ALIGN=BOTTOM WIDTH=647 HEIGHT=359 BORDER=0></p>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   273
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   274
</body>
11a6943ebeb2 add dsdp/tm/tcf_0_3_x
duane.cawthron@nokia.com
parents:
diff changeset
   275
</html>