1 /*
2 * Copyright (c) 2008 Texas Instruments. All rights reserved.
3 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License
5 * v. 1.0 which accompanies this distribution. The Eclipse Public License is
6 * available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
7 * Distribution License is available at
8 * http://www.eclipse.org/org/documents/edl-v10.php.
9 *
10 * Contributors:
11 * Texas Instruments - initial implementation
12 * */
13 /*!
14 * ======== xdc.runtime ========
15 * Basic runtime support for RTSC programs
16 *
17 * The modules and interfaces in the `xdc.runtime` package form the "core"
18 * RTSC target runtime support library which provides basic system services
19 * required by virtually all applications.
20 *
21 * Since this package's services are intended to be available to any
22 * C/C++ client, this package does not contain any pre-compiled libraries.
23 * Instead, this package provides complete sources which are built and
24 * supplied by a target-specific package named by the
25 * `{@link xdc.bld.ITarget#rts rts}` parameter of the target used to build
26 * the client sources. This "indirection" make it possible for new targets
27 * to be added by interested parties whithout ever having to update this
28 * package.
29 *
30 * The functionality provided by this package can be roughly partitioned
31 * into four categories:
32 * @p(nlist) 33 * - Diagnostics and Logs
34 * - Memory Management
35 * - Concurrency Support
36 * - Startup and Shutdown
37 * @p 38 * @a(Diagnostics and Logs) 39 * This package provides for diagnostics with a set of modules that operate
40 * together to configure and implement diagnostics.
41 *
42 * The modules can be partitioned into three groups: modules that
43 * generate events, a module that allows precise control over when
44 * (or if) various events are generated, and modules that manage the
45 * output or display of the events.
46 *
47 * `{@link Assert}`, `{@link Error}`, and `{@link Log}` provide methods that
48 * are added to source code and generate events. The `{@link Diags}` module
49 * provides both configuration and runtime methods to selectively enable or
50 * disable different types of events on a per module basis. Finally,
51 * `{@link LoggerBuf}` and `{@link LoggerSys}` are simple alternative
52 * implementations of the `{@link ILogger}` event "handler" interface. You
53 * can provide more sophisticated or platform-specific
54 * implementations of `ILogger` without making any changes to code that
55 * uses `Assert`, `Log`, `Error`, or `Diags`.
56 *
57 * The diagnostics and logger modules include the following:
58 * @p(blist) 59 * - `{@link Assert}` - Add integrity checks to the code.
60 * - `{@link Diags}` - Manage a module's diagnostics mask.
61 * - `{@link Error}` - Raise error events.
62 * - `{@link Log}` - Generate log events in realtime.
63 * - `{@link LoggerBuf}` - A logger using a buffer for log events.
64 * - `{@link LoggerSys}` - A logger using printf for log events.
65 * - `{@link Types}` - Define diagnostics configuration parameters.
66 * - `{@link Timestamp}` - Simple timestamp service
67 * @p 68 *
69 * @a(Memory Management) 70 * The memory management modules include the following:
71 * @p(blist) 72 * - `{@link Memory}` - module used by clients to allocate and free memory
73 * - `{@link HeapMin}` - Deterministic implementation that minimizes code
74 * size footprint by not supporting reuse of allocated
75 * memory.
76 * - `{@link HeapStd}` - Implementation that builds atop ANSI C `malloc()`
77 * and `free()`
78 * @p 79 *
80 * @a(Concurrency Support) 81 * The concurency support modules include the following:
82 * @p(blist) 83 * - `{@link Gate}` - module used by clients to serialize access to
84 * shared data structures
85 * - `{@link GateNull}` - "null" implementation for applications that
86 * don't need serialization; e.g., single threaded
87 * applications
88 * @p 89 *
90 * @a(Startup and Shutdown) 91 * The system startup and shutdown support modules include:
92 * @p(blist) 93 * - `{@link Reset}` - Manages platform-specific startup initialization
94 * before `main()` is called
95 * - `{@link Startup}` - Manages "portable" startup initialization before
96 * `main()` is called
97 * - `{@link System}` - In addition to other basic services (such as
98 * `printf`), this module provides an `atexit`
99 * capability that allows modules to cleanly exit
100 * during normal application terminiation.
101 * - `{@link SysMin}` - Minimal implementation of `{@link ISystemSupport}`,
102 * required by the `System` module, suitable for
103 * deeply embedded applications.
104 * - `{@link SysStd}` - Implementation of `{@link ISystemSupport}`
105 * that relies on ANSI C Standard I/O Library
106 * functions.
107 * @p 108 */
109 package xdc.runtime [2,1,0] {
110 interface IModule, IInstance;
111 interface IHeap, ILogger, IFilterLogger;
112 interface ISystemSupport;
113 interface IGateProvider;
114 interface ITimestampClient, ITimestampProvider;
115 module Assert;
116 module Core;
117 module Defaults;
118 module Diags;
119 module Error;
120 module Gate, GateNull;
121 module Log, LoggerBuf, LoggerSys;
122 module Main;
123 module Memory, HeapMin, HeapStd;
124 module Registry;
125 module Rta;
126 module Startup, Reset;
127 module System, SysStd, SysMin;
128 module Text;
129 module Timestamp, TimestampNull, TimestampStd;
130 module Types;
131 }
132 /*
133 * @(#) xdc.runtime; 2, 1, 0,279; 5-27-2010 16:42:31; /db/ztree/library/trees/xdc/xdc-v38x/src/packages/
134 */
135