1    /* 
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     * 
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     * 
    11     * */
    12    /*!
    13     *  ======== Model ========
    14     *  The ROV Model is the core of ROV. The Model must be started in order to
    15     *  retrieve ROV views for any modules.
    16     *
    17     *  The Model has a compatibility key. Any changes or additions to the public
    18     *  interfaces of the ROV core will result in a bump of the model version 
    19     *  number.
    20     */
    21    metaonly module Model {
    22    
    23        /*!
    24         *  ======== vers ========
    25         *  ROV API version number
    26         *  
    27         *  Model.start will throw an exception if the version parameter does not
    28         *  equal the Model's current version. The version number is changed based
    29         *  on modifications to the public APIs (in xdc.rov.Program) that would
    30         *  potentially break compatibility with clients.
    31         *
    32         *  This allows the Model to verify compatibility with its client. 
    33         */
    34        config Int vers = 4;
    35        
    36        /*!
    37         *  ======== start ========
    38         *  Start the ROV Model
    39         *
    40         *  The ROV Model requires instances of an ISymbolTable, an IMemoryImage, 
    41         *  and an ICallBack. It also requires the ROV recap file, which can be
    42         *  located using the xdc.rov.Recap module.
    43         *
    44         *  @param(vers) Model.start will throw an exception if the version
    45         *                parameter does not equal the Model's current
    46         *                `{@link #vers version}`. 
    47         *
    48         *  @param(recap) Capsule of the ROV recap file. Retrieve this with
    49         *                `xdc.loadCapsule(recapFilePath)`.
    50         *
    51         *  @param(executable) The path to the executable file
    52         *
    53         *  @param(sym)        an object that implements the xdc.rov.ISymbolTable
    54         *                     interface used to read symbols defined by the
    55         *                     executable
    56         *
    57         *  @param(mem)        an object that implements the xdc.rov.IMemoryImage
    58         *                     interface used to read target memory
    59         *
    60         *  @param(callBack)   an object that implements the xdc.rov.ICallback
    61         *                     interface used to report progress status
    62         */
    63        Void start(Int vers, String executable, Any recap, 
    64                   ISymbolTable.Instance sym, Any mem, 
    65                   ICallBack.Instance callBack);
    66    
    67        /*
    68         *  ======== getICallStackInst ========
    69         *  Called by clients to get the optional call stack parser.
    70         *
    71         *  Returns `null` in the event that there is no call stack parser; i.e.,
    72         *  there is no implementation of this functionality in the current
    73         *  `{@link Model}` context.
    74         */
    75        ICallStack.Instance getICallStackInst();
    76    
    77        /*!
    78         *  ======== setICallStackInst ========
    79         *  Called only during Model initialization
    80         *
    81         *  This method is called to "bind" an optional stack call stack parser
    82         *  and is called by the same client that calls 
    83         * `{@link #start Model.start()}`.
    84         */
    85        void setICallStackInst(ICallStack.Instance cs);
    86        
    87        /*!
    88         *  ======== getISymbolTableInst ========
    89         */
    90        ISymbolTable.Instance getISymbolTableInst();
    91    
    92        /*!
    93         *  ======== getMemoryImageInst ========
    94         */
    95        function getMemoryImageInst();
    96        
    97        /*!
    98         *  ======== getICallBackInst ========
    99         */
   100        ICallBack.Instance getICallBackInst();
   101        
   102        /*!
   103         *  ======== getIOFReaderInst ========
   104         */
   105        function getIOFReaderInst();
   106    
   107        /*!
   108         *  ======== getModuleList ========
   109         */
   110        Any getModuleList();
   111    }
   112    /*
   113     *  @(#) xdc.rov; 1, 0, 1,472; 3-20-2014 17:05:37; /db/ztree/library/trees/xdc/xdc-A32x/src/packages/
   114     */
   115