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 */
32typedef 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 */
44typedef enum QOS_TI_GetSharedScratchMsgArg1 {
45
46	ESharedScratchAllHeaps,
47
48	ESharedScratchDaram,
49
50	ESharedScratchSaram
51} QOS_TI_GetSharedScratchMsgArg1;
52
53void 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
61DSP_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
70DSP_STATUS QosTI_Create();
71
72/* ========================================================================
73  func   Delete
74  desc   Delete Qos service.
75  ========================================================================*/
76
77void 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
96DSP_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    ======================================================================== */
110DSP_STATUS QosTI_GetProcLoadStat(UINT *currentLoad, UINT *predLoad,
111									    UINT *currDspFreq, UINT *predictedFreq);
112
113#endif				/* _RQOSTI_H*/
114
115