diff options
Diffstat (limited to 'docs/TCF Linux Agent Prototype.html')
-rw-r--r-- | docs/TCF Linux Agent Prototype.html | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/docs/TCF Linux Agent Prototype.html b/docs/TCF Linux Agent Prototype.html new file mode 100644 index 000000000..50ec8e8fe --- /dev/null +++ b/docs/TCF Linux Agent Prototype.html @@ -0,0 +1,199 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> +<HEAD> + <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1251"> + <TITLE>This is a brief description of the TCF Linux user-mode agent prototype implementation</TITLE> + <META NAME="GENERATOR" CONTENT="OpenOffice.org 2.2 (Win32)"> + <META NAME="CREATED" CONTENT="20070830;12381303"> + <META NAME="CHANGED" CONTENT="16010101;0"> + <STYLE TYPE="text/css"> + <!-- + H1 { color: #000000 } + P { color: #000000 } + P.western { font-size: 13pt } + H2 { color: #000000 } + --> + </STYLE> +</HEAD> +<BODY LANG="en-US" TEXT="#000000" DIR="LTR"> + +<P>This is a brief description of the TCF Linux +user-mode agent prototype implementation. The agent is implemented as +an event driven program. The main event queue is handled by a single +thread – the event dispatch thread. Some sub-systems are using +other threads locally, but will never call other sub-systems using +these threads. Instead an event will be placed on the main event +queue to handle the inter sub-system communication.</P> + +<H1>Main Program</H1> + +<P>Main program parses command line options and initialized sub-systems</P> +<P>Files:</P> +<P>main.c</P> + +<H1>Target Communication Framework</H1> + +<H2>Command and Event Registration and Dispatch</H2> + +<P>This module handles registration of command and +event handlers. It is called when new messages are received and will +dispatch messages to the appropriate handler. It has no knowledge of +what transport protocol is used and what services do.</P> +<P>Files:</P> +<P>protocol.c</P> +<P>protocol.h</P> + +<H2>Transport Layer</H2> + +<P>Implements input and output stream over TCP/IP +transport and UDP based server side auto discovery.</P> +<P>Files:</P> +<P>channel.c</P> +<P>channel.h</P> +<P>tcf.h</P> + +<H2>Input and Output Stream Interface and Library</H2> + +<P>This module defines the input and output stream +interface and support library functions.</P> +<P>Files:</P> +<P>streams.c</P> +<P>streams.h</P> + +<H1>Services</H1> + +<H2>Breakpoint</H2> + +<P>The breakpoint services implements a global +breakpoint list.</P> +<P>Files:</P> +<P>breakpoints.c</P> +<P>breakpoints.h</P> + +<H2>Run Control</H2> + +<P>This module implements the run control service. It +builds uses the context module to do low level control of contexts. +It implements a “safe queue” which contains events that +that should be processed then their context is suspended. Incoming +TCF messages are suspended while the safe queue is non-empty and are +resumed when the last safe queue entry is handled.</P> +<P>Files:</P> +<P>runctrl.c</P> +<P>runctrl.h</P> + +<H2>System Monitoring</H2> + +<P>This module provides system level monitoring +information, similar to the UNIX top or Windows task manager.</P> +<P>Files:</P> +<P>sysmon.c</P> +<P>sysmon.h</P> + +<H2>Agent Diagnostics</H2> + +<P>This service is used to do end-to-end self test +from the host to the target.</P> +<P>Files:</P> +<P>diagnostics.c</P> +<P>diagnostics.h</P> + +<H1>OS Context Handling</H1> + +<P>This module handles process/thread OS contexts and +their state machine. All ptrace() handling is isolated to here.</P> +<P>Files:</P> +<P>context.c</P> +<P>context.h</P> + +<H1>Agent Event Queue</H1> + +<P>This module implements the main event queue +dispatch and queuing. All events are processed by a single thread. +Any thread can queue new events.</P> +<P>Files:</P> +<P>events.c</P> +<P>events.h</P> + +<H1>Misc</H1> + +<H2>Command line interpreter</H2> + +<P>The module allows a user to interact with agent. Current implementation of command line interpreter is incomplete.</P> +<P>Files:</P> +<P>cmdline.c</P> +<P>cmdline.h</P> + +<H2>Error message display</H2> + +<P>This module defines agent error codes in addition to system codes defined in errno.h</P> +<P>Files:</P> +<P>errors.c</P> +<P>errors.h</P> + +<H2>Exception Handling</H2> + +<P>Exception handling. Functionality is similar to C++ try/catch.</P> +<P>Files:</P> +<P>exceptions.c</P> +<P>exceptions.h</P> + +<H2>JSON Library</H2> + +<P>The module contains utility functions for parsing and generating of JSON text. +TCF standard services use JSON as messages format. See <a href='TCF Specification.html#JSON'>JSON - Preferred Marshaling</a> +for JSON description.</P> +<P>Files:</P> +<P>json.c</P> +<P>json.h</P> + +<H2>Double Linked List</H2> + +<P>Utilitity module to support double linked lists.</P> +<P>Files:</P> +<P>link.h</P> + +<H2>Host OS Abstraction</H2> + +<P>Machine and OS dependend definitions. +This module implements host OS abstraction layer that helps make +agent code portable between Linux, Windows, VxWorks and potentially other OSes.</P> +<P>Files:</P> +<P>mdep.c</P> +<P>mdep.h</P> + +<H2>Malloc Abstraction</H2> + +<P>Provides local versions of malloc(), realloc() and free().</P> +<P>Files:</P> +<P>myalloc.c</P> +<P>myalloc.h</P> + +<H2>Proxy</H2> + +<P>Proxy service should allow tunneling of TCF messages to another target on behalf of a client. +This service intended to be used when a client has no direct access to a target.</P> +<P>Files:</P> +<P>proxy.c</P> +<P>proxy.h</P> + +<H2>Test Application</H2> + +<P>Test application is used by Diagnostics service to run various tests.</P> +<P>Files:</P> +<P>test.c</P> +<P>test.h</P> + +<H2>Debug Logging</H2> + +<P>The module implements logging and tracing that is mostly intended for debugging of the agent.</P> +<P>Files:</P> +<P>trace.c</P> +<P>trace.h</P> + +<H1>Architecture</H1> + +<P><IMG SRC="TCF%20Architecture.png" NAME="graphics1" ALIGN=BOTTOM WIDTH=647 HEIGHT=359 BORDER=0></P> + +</BODY> +</HTML> |