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}`, `{@link LoggerSys}` and `{@link LoggerCallback}` are
52 * simple alternative implementations of the `{@link ILogger}` event "handler"
53 * interface. You 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 LoggerCallback}` - A logger using user defined callback function
65 * for log events.
66 * - `{@link LoggerSys}` - A logger using printf for log events.
67 * - `{@link Types}` - Define diagnostics configuration parameters.
68 * - `{@link Timestamp}` - Simple timestamp service
69 * @p
70 *
71 * @a(Memory Management)
72 * The memory management modules include the following:
73 * @p(blist)
74 * - `{@link Memory}` - module used by clients to allocate and free memory
75 * - `{@link HeapMin}` - Deterministic implementation that minimizes code
76 * size footprint by not supporting reuse of allocated
77 * memory.
78 * - `{@link HeapStd}` - Implementation that builds atop ANSI C `malloc()`
79 * and `free()`
80 * @p
81 *
82 * @a(Concurrency Support)
83 * The concurency support modules include the following:
84 * @p(blist)
85 * - `{@link Gate}` - module used by clients to serialize access to
86 * shared data structures
87 * - `{@link GateNull}` - "null" implementation for applications that
88 * don't need serialization; e.g., single threaded
89 * applications
90 * @p
91 *
92 * @a(Startup and Shutdown)
93 * The system startup and shutdown support modules include:
94 * @p(blist)
95 * - `{@link Reset}` - Manages platform-specific startup initialization
96 * before `main()` is called
97 * - `{@link Startup}` - Manages "portable" startup initialization before
98 * `main()` is called
99 * - `{@link System}` - In addition to other basic services (such as
100 * `printf`), this module provides an `atexit`
101 * capability that allows modules to cleanly exit
102 * during normal application terminiation.
103 * - `{@link SysCallback}` - Implementation of `{@link ISystemSupport}`
104 * that calls back user defined functions.
105 * - `{@link SysMin}` - Minimal implementation of `{@link ISystemSupport}`
106 * required by the `System` module, suitable for
107 * deeply embedded applications.
108 * - `{@link SysStd}` - Implementation of `{@link ISystemSupport}`
109 * that relies on ANSI C Standard I/O Library
110 * functions.
111 * @p
112 */
113 package xdc.runtime [2, 1, 0] {
114 interface IModule, IInstance;
115 interface IHeap, ILogger, IFilterLogger;
116 interface ISystemSupport;
117 interface IGateProvider;
118 interface ITimestampClient, ITimestampProvider;
119 module Assert;
120 module Core;
121 module Defaults;
122 module Diags;
123 module Error;
124 module Gate, GateNull;
125 module Log, LoggerBuf, LoggerCallback, LoggerSys;
126 module Main;
127 module Memory, HeapMin, HeapStd;
128 module Registry;
129 module Rta;
130 module Startup, Reset;
131 module System, SysCallback, SysMin, SysStd;
132 module Text;
133 module Timestamp, TimestampNull, TimestampStd;
134 module Types;
135 }
136 137 138
139