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