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