Updates to enable Yocto parallel build
[keystone-rtos/fault_mgmt.git] / include / fm_exclusionloc.h
1 /*
2  *  file  fm_exclusionloc.h
3  *
4  *  Internal prototypes and data structures for Fault Management resource
5  *  exclusion from IO halt and fault recovery features.
6  *
7  *  ============================================================================
8  *      (C) Copyright 2014, Texas Instruments, Inc.
9  * 
10  *  Redistribution and use in source and binary forms, with or without 
11  *  modification, are permitted provided that the following conditions 
12  *  are met:
13  *
14  *    Redistributions of source code must retain the above copyright 
15  *    notice, this list of conditions and the following disclaimer.
16  *
17  *    Redistributions in binary form must reproduce the above copyright
18  *    notice, this list of conditions and the following disclaimer in the 
19  *    documentation and/or other materials provided with the   
20  *    distribution.
21  *
22  *    Neither the name of Texas Instruments Incorporated nor the names of
23  *    its contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
27  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
28  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
30  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
31  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
32  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
35  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
36  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37  *
38  *  \par
39 */
41 #ifndef FM_EXCLUSIONLOC_H_
42 #define FM_EXCLUSIONLOC_H_
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
48 #if (!defined(DEVICE_K2H) && !defined(DEVICE_K2K) && !defined(DEVICE_K2L) && !defined(DEVICE_K2E)) 
49 /* CSL Includes */
50 #include <ti/csl/csl_cppi.h>
51 #else
52 #include <ti/drv/cppi/cppi_drv.h>
53 #endif
55 /* FM external includes */
56 #include <ti/instrumentation/fault_mgmt/fault_mgmt.h>
58 typedef struct {
59     Cppi_CpDma dma;
60 } Fm_ExclusionCpdmaParams;
62 typedef struct {
63     CSL_InstNum edma3Num;
64 } Fm_ExclusionEdma3Params;
66 typedef struct {
67     int32_t lutInst;
68 } Fm_ExclusionLutEntryParams;
70 typedef struct {
71     int32_t cic;
72 } Fm_ExclusionCicParams;
74 typedef struct {
75     Fm_ResType           resType;
76     Fm_ExcludedResource *exclusionList;
77     uint32_t             numListEntries;
78     uint32_t             resourceNum;
79     union {
80         Fm_ExclusionCpdmaParams    cpdmaParams;
81         Fm_ExclusionEdma3Params    edma3Params;
82         Fm_ExclusionLutEntryParams lutParams;
83         Fm_ExclusionCicParams      cicParams;
84     } u;
85 } Fm_ExclusionParams;
87 uint32_t fmExclusionValidateList(Fm_GlobalConfigParams *fmGblCfgParams, Fm_ExcludedResource *exResList, 
88                                  int32_t *status);
89 uint32_t fmExclusionIsExcluded(Fm_ExclusionParams *exParams);
91 #ifdef __cplusplus
92 }
93 #endif
95 #endif /* FM_EXCLUSIONLOC_H_ */