Home | History | Annotate | Download | only in inc
      1 /*
      2  * dspbridge/mpu_api/inc/qosti.h
      3  *
      4  * DSP-BIOS Bridge driver support functions for TI OMAP processors.
      5  *
      6  * Copyright (C) 2007 Texas Instruments, Inc.
      7  *
      8  * This program is free software; you can redistribute it and/or modify it
      9  * under the terms of the GNU Lesser General Public License as published
     10  * by the Free Software Foundation version 2.1 of the License.
     11  *
     12  * This program is distributed .as is. WITHOUT ANY WARRANTY of any kind,
     13  * whether express or implied; without even the implied warranty of
     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15  * Lesser General Public License for more details.
     16  */
     17 
     18 
     19 #ifndef _RQOSTI_H
     20 #define _RQOSTI_H
     21 #include <dbapi.h>
     22 #include <qosti_dspdecl.h>
     23 #include <stdio.h>
     24 /* This must match QOS_TI_GetMemStatArg1::ALLHEAPS */
     25 #define KAllHeaps 0x100
     26 /* This must match QOS_TI_GetSharedScratchMsgArg2::ALL_SCRATCHGROUPS */
     27 #define KAllScratchGroups 0
     28 /*
     29  *  ======== QOS_TI_GetDynLoaderMemStatArg1 ========
     30  *  The enumeration defines the memory heap resources available for querying.
     31  */
     32 typedef enum QOS_TI_GetDynLoaderMemStatArg1 {
     33 	EDynloadDaram = 0,
     34 	EDynloadSaram = 1,
     35 	EDynloadExternal = 2,
     36 	EDynloadSram = 3
     37 } QOS_TI_GetDynLoaderMemStatArg1;
     38 
     39 /*
     40  *  ======== QOS_TI_GetSharedScratchMsgArg1 ========
     41  *  The enumeration defines the control command selector for *arg1*
     42  *  of the QOS_TI_GETSHAREDSCRATCH message.
     43  */
     44 typedef enum QOS_TI_GetSharedScratchMsgArg1 {
     45 
     46 	ESharedScratchAllHeaps,
     47 
     48 	ESharedScratchDaram,
     49 
     50 	ESharedScratchSaram
     51 } QOS_TI_GetSharedScratchMsgArg1;
     52 
     53 void DbgMsg(DWORD dwZone, char *szFormat, ...);
     54 
     55 /*  ============================================================================
     56   func   MsgToDsp
     57   desc   Send Message to DSP
     58   ret    DSP_SOK if Message was transferred to DSP successfully.
     59  ============================================================================*/
     60 
     61 DSP_STATUS QosTI_DspMsg(DWORD dwCmd, DWORD dwArg1, DWORD dwArg2, DWORD *dwOut1,
     62 																DWORD *dwOut2);
     63 
     64 /*  ========================================================================
     65   func   Create
     66   desc   Create the Qos service.
     67   ret    DSP_SOK if successfully created.
     68   ========================================================================*/
     69 
     70 DSP_STATUS QosTI_Create();
     71 
     72 /* ========================================================================
     73   func   Delete
     74   desc   Delete Qos service.
     75   ========================================================================*/
     76 
     77 void QosTI_Delete();
     78 
     79 /*  ========================================================================
     80   func   GetDynLoaderMemStat
     81   desc   Get the current memory utilization for heaps used in dynamic loading.
     82   arg   IN heapDesc:  value in range 0..4 => Heap Identifier
     83                   Valid values:
     84                         EDynloadDaram    = DYN_DARAM heap (internal)
     85                         EDynloadSaram    = DYN_SARAM heap (internal)
     86                         EDynloadExternal = DYN_EXTERNAL heap (external)
     87                         EDynloadSram     = DYN_SRAM heap (internal)
     88   arg   OUT memInitSize:             initially configured size of heap
     89   arg   OUT memUsed:                 size of heap in use (not free)
     90   arg   OUT memLargestFreeBlockSize: size of largest contiguous free memory
     91   arg   OUT memFreeBlocks:           number of free blocks in heap
     92   arg   OUT memAllocBlocks:          number of allocated blocks in heap
     93   ret   DSP_SOK if successful.
     94   ========================================================================*/
     95 
     96 DSP_STATUS QosTI_GetDynLoaderMemStat(UINT heapDesc, UINT *memInitSize,
     97 								UINT *memUsed, UINT *memLargestFreeBlockSize,
     98 								UINT *memFreeBlocks, UINT *memAllocBlocks);
     99 
    100 
    101 /*  ========================================================================
    102     func   QosTI_GetProcLoadStat
    103     desc   Get the Processor load statistics
    104     arg   OUT currentLoad:
    105     arg   OUT predLoad:
    106     arg   OUT currDspFreq:
    107     arg   OUT predictedFreq:
    108     ret   DSP_SOK if successful.
    109     ======================================================================== */
    110 DSP_STATUS QosTI_GetProcLoadStat(UINT *currentLoad, UINT *predLoad,
    111 									    UINT *currDspFreq, UINT *predictedFreq);
    112 
    113 #endif				/* _RQOSTI_H*/
    114 
    115