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,373; 3-21-2012 10:48:14; /db/ztree/library/trees/xdc/xdc-y23x/src/packages/
   134     */
   135