blob: 299c5beec0539457ccb1d8b4af1316b9bfe7dcac [file] [log] [blame]
/* --COPYRIGHT--,EPL
* Copyright (c) 2008-2020 Texas Instruments Incorporated
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Texas Instruments - initial implementation
*
* --/COPYRIGHT--*/
/*!
* ======== Model ========
* The ROV Model is the core of ROV. The Model must be started in order to
* retrieve ROV views for any modules.
*
* The Model has a compatibility key. Any changes or additions to the public
* interfaces of the ROV core will result in a bump of the model version
* number.
*/
metaonly module Model {
/*!
* ======== vers ========
* ROV API version number
*
* Model.start will throw an exception if the version parameter does not
* equal the Model's current version. The version number is changed based
* on modifications to the public APIs (in xdc.rov.Program) that would
* potentially break compatibility with clients.
*
* This allows the Model to verify compatibility with its client.
*/
config Int vers = 5;
/*!
* ======== start ========
* Start the ROV Model
*
* The ROV Model requires instances of an ISymbolTable, an IMemoryImage,
* and an ICallBack. It also requires the ROV recap file, which can be
* located using the xdc.rov.Recap module.
*
* @param(vers) Model.start will throw an exception if the version
* parameter does not equal the Model's current
* `{@link #vers version}`.
*
* @param(recap) Capsule of the ROV recap file. Retrieve this with
* `xdc.loadCapsule(recapFilePath)`.
*
* @param(executable) The path to the executable file
*
* @param(sym) an object that implements the xdc.rov.ISymbolTable
* interface used to read symbols defined by the
* executable
*
* @param(mem) an object that implements the xdc.rov.IMemoryImage
* interface used to read target memory
*
* @param(callBack) an object that implements the xdc.rov.ICallback
* interface used to report progress status
*/
Void start(Int vers, String executable, Any recap,
ISymbolTable.Instance sym, Any mem, ICallBack.Instance callBack);
/*
* ======== getICallStackInst ========
* Called by clients to get the optional call stack parser.
*
* Returns `null` in the event that there is no call stack parser; i.e.,
* there is no implementation of this functionality in the current
* `{@link Model}` context.
*/
ICallStack.Instance getICallStackInst();
/*!
* ======== setICallStackInst ========
* Called only during Model initialization
*
* This method is called to "bind" an optional stack call stack parser
* and is called by the same client that calls
* `{@link #start Model.start()}`.
*/
void setICallStackInst(ICallStack.Instance cs);
/*!
* ======== getISymbolTableInst ========
*/
ISymbolTable.Instance getISymbolTableInst();
/*!
* ======== getMemoryImageInst ========
*/
function getMemoryImageInst();
/*!
* ======== getICallBackInst ========
*/
ICallBack.Instance getICallBackInst();
/*!
* ======== getIOFReaderInst ========
*/
function getIOFReaderInst();
/*!
* ======== getModuleList ========
*/
Any getModuleList();
/*!
* ======== getRecap ========
*/
function getRecap(execPath);
}