package xdc.runtime

Basic runtime support for RTSC programs

The modules and interfaces in the xdc.runtime package form the "core" RTSC target runtime support library which provides basic system services required by virtually all applications. [ more ... ]
XDCspec declarations sourced in xdc/runtime/package.xdc
package xdc.runtime [2, 1, 0] {
    interface IFilterLogger;
    // Interface for supporting filtering of Log events by detail level
    interface IGateProvider;
    // Interface implemented by all gate providers
    interface IHeap;
    // Interface to heap functions
    interface IInstance;
    // Common instance params
    interface ILogger;
    // Interface to service Log events
    interface IModule;
    // Base interface for all modules
    interface ISystemSupport;
    // Interface to core system functions
    interface ITimestampClient;
    // Timestamp Client Interface
    interface ITimestampProvider;
    // Timestamp provider interface
    module Assert;
    // Runtime assertion manager
    module Defaults;
    // Default attributes inherited by all target modules
    module Diags;
    // Diagnostics manager
    module Error;
    // Runtime error manager
    module Gate;
    // Critical section support
    module GateNull;
    // Empty implementation of IGateProvider
    module HeapMin;
    // Growth-only based heap implementation
    module HeapStd;
    // Malloc/free based heap implementation
    module Log;
    // Event logging manager
    module LoggerBuf;
    // A logger which stores Log events in a buffer
    module LoggerSys;
    // A logger which routes events to the System_printf function
    module Main;
    // Configuration "stand-in" for application code
    module Memory;
    // Static and run-time memory manager
    module Registry;
    // Register modules that are not statically configured
    module Reset;
    // Startup reset function manager
    module Rta;
    // The Rta module contains target and configuration code for providing RTA support
    module Startup;
    // The xdc.runtime startup bootstrap
    module SysMin;
    // Minimal implementation of ISystemSupport
    module SysStd;
    // Implementation of ISystemSupport using ANSI C Standard Library
    module System;
    // Basic system services
    module Text;
    // Runtime text handling services
    module Timestamp;
    // Timestamp services
    module TimestampNull;
    // Empty implementation of ITimestampProvider
    module TimestampStd;
    // Implementation of ITimestampProvider using ANSI C clock()
    module Types;
    // Basic constants and types
The modules and interfaces in the xdc.runtime package form the "core" RTSC target runtime support library which provides basic system services required by virtually all applications.
Since this package's services are intended to be available to any C/C++ client, this package does not contain any pre-compiled libraries. Instead, this package provides complete sources which are built and supplied by a target-specific package named by the rts parameter of the target used to build the client sources. This "indirection" make it possible for new targets to be added by interested parties whithout ever having to update this package.
The functionality provided by this package can be roughly partitioned into four categories:
  1. Diagnostics and Logs
  2. Memory Management
  3. Concurrency Support
  4. Startup and Shutdown
This package provides for diagnostics with a set of modules that operate together to configure and implement diagnostics.
The modules can be partitioned into three groups: modules that generate events, a module that allows precise control over when (or if) various events are generated, and modules that manage the output or display of the events.
Assert, Error, and Log provide methods that are added to source code and generate events. The Diags module provides both configuration and runtime methods to selectively enable or disable different types of events on a per module basis. Finally, LoggerBuf and LoggerSys are simple alternative implementations of the ILogger event "handler" interface. You can provide more sophisticated or platform-specific implementations of ILogger without making any changes to code that uses Assert, Log, Error, or Diags.
The diagnostics and logger modules include the following:
  • Assert - Add integrity checks to the code.
  • Diags - Manage a module's diagnostics mask.
  • Error - Raise error events.
  • Log - Generate log events in realtime.
  • LoggerBuf - A logger using a buffer for log events.
  • LoggerSys - A logger using printf for log events.
  • Types - Define diagnostics configuration parameters.
  • Timestamp - Simple timestamp service
The memory management modules include the following:
  • Memory - module used by clients to allocate and free memory
  • HeapMin - Deterministic implementation that minimizes code size footprint by not supporting reuse of allocated memory.
  • HeapStd - Implementation that builds atop ANSI C malloc() and free()
The concurency support modules include the following:
  • Gate - module used by clients to serialize access to shared data structures
  • GateNull - "null" implementation for applications that don't need serialization; e.g., single threaded applications
The system startup and shutdown support modules include:
  • Reset - Manages platform-specific startup initialization before main() is called
  • Startup - Manages "portable" startup initialization before main() is called
  • System - In addition to other basic services (such as printf), this module provides an atexit capability that allows modules to cleanly exit during normal application terminiation.
  • SysMin - Minimal implementation of ISystemSupport, required by the System module, suitable for deeply embedded applications.
  • SysStd - Implementation of ISystemSupport that relies on ANSI C Standard I/O Library functions.
generated on Thu, 01 Mar 2012 16:58:41 GMT