Linux: tests - Clear Fault Request After Processing
[ipc/ipcdev.git] / linux / include / _MultiProc.h
1 /*
2  *  Copyright (c) 2008-2015 Texas Instruments Incorporated - http://www.ti.com
3  *  All rights reserved.
4  *
5  *  Redistribution and use in source and binary forms, with or without
6  *  modification, are permitted provided that the following conditions
7  *  are met:
8  *
9  *  *  Redistributions of source code must retain the above copyright
10  *     notice, this list of conditions and the following disclaimer.
11  *
12  *  *  Redistributions in binary form must reproduce the above copyright
13  *     notice, this list of conditions and the following disclaimer in the
14  *     documentation and/or other materials provided with the distribution.
15  *
16  *  *  Neither the name of Texas Instruments Incorporated nor the names of
17  *     its contributors may be used to endorse or promote products derived
18  *     from this software without specific prior written permission.
19  *
20  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /** ============================================================================
33  *  @file   _MultiProc.h
34  *
35  *  @brief  Header file for_MultiProc on HLOS side
36  *  ============================================================================
37  */
40 #ifndef _MULTIPROC_H_0XB522
41 #define _MULTIPROC_H_0XB522
44 #if defined (__cplusplus)
45 extern "C" {
46 #endif
49 /*!
50  *  @brief  Max name length for a processor name.
51  */
52 #define MultiProc_MAXNAMELENGTH 32
54 /*!
55  *  @brief  Max number of processors supported.
56  */
57 #define MultiProc_MAXPROCESSORS 10
60 /*!
61  *  @brief  Configuration structure for MultiProc module
62  */
63 typedef struct MultiProc_Config_tag {
64     Int32  numProcessors;
65     /*!< Max number of procs for particular system */
66     Char   nameList [MultiProc_MAXPROCESSORS][MultiProc_MAXNAMELENGTH];
67     /*!< Name List for processors in the system */
68     Int32  rprocList[MultiProc_MAXPROCESSORS];
69     /*!< Linux "remoteproc index" for processors in the system */
70     UInt16 id;
71     /*!< Local Proc ID. This needs to be set before calling any other APIs */
72     UInt16 numProcsInCluster;
73     /*!< number of processors in the cluster */
74     UInt16 baseIdOfCluster;
75     /*!< processor ID of first entry in cluster */
76 } MultiProc_Config;
78 /* =============================================================================
79  *  APIs
80  * =============================================================================
81  */
83 /* Internal variable to enable/disable tracing throughout MultiProc */
84 extern Bool _MultiProc_verbose;
86 /*!
87  *  @brief      Get the default configuration for the MultiProc module.
88  *
89  *              This function can be called by the application to setup and get
90  *              configuration parameter for MultiProc with the default parameters.
91  *
92  *  @param      cfg        Pointer to the MultiProc module configuration
93  *                         structure in which the default config is to be
94  *                         returned.
95  */
96 Void MultiProc_getConfig (MultiProc_Config * cfg);
98 /*!
99  *  @brief      Initialize the configuration for the MultiProc module.
100  *
101  *              This function is called to initialize the configuration for
102  *              MultiProc.
103  *
104  *  @param      cfg        Pointer to a populated MultiProc configuration
105  *                         structure.
106  */
107 Void _MultiProc_initCfg(MultiProc_Config * cfg);
109 /* This exported from daemon/MultiProcCfg_<PLATFORM>.c: */
110 extern MultiProc_Config _MultiProc_cfg;
112 #if defined (__cplusplus)
114 #endif
116 #endif