1 2 3 4 5 6 7 8 9 10 11 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 134
135