PDK API Guide for J721E
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
SwiP.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018, Texas Instruments Incorporated
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  */
47 #ifndef ti_osal_SwiP__include
48 #define ti_osal_SwiP__include
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #include <stdint.h>
55 #include <stdbool.h>
56 #include <stddef.h>
57 
63 typedef void *SwiP_Handle;
64 
68 typedef enum SwiP_Status_e {
69  SwiP_OK = 0,
70  SwiP_FAILURE = (-(int32_t)1)
71 } SwiP_Status;
72 
76 typedef void (*SwiP_Fxn)(uintptr_t arg0, uintptr_t arg1);
77 
87 typedef struct SwiP_Params_s {
88  uintptr_t arg0;
89  uintptr_t arg1;
91 } SwiP_Params;
92 
104 extern SwiP_Handle SwiP_create(SwiP_Fxn swiFxn, const SwiP_Params *swiPparams);
105 
113 extern SwiP_Status SwiP_delete(SwiP_Handle *pHandle);
114 
120 extern void SwiP_Params_init(SwiP_Params *swiPparams);
121 
129 extern SwiP_Status SwiP_post(SwiP_Handle swiPhandle);
130 
131 #ifdef __cplusplus
132 }
133 #endif
134 
135 #endif /* ti_osal_SwiP__include */
136 /* @} */
Definition: SwiP.h:70
void SwiP_Params_init(SwiP_Params *swiPparams)
Initialize params structure to default values.
SwiP_Status
Status codes for SwiP APIs.
Definition: SwiP.h:68
SwiP_Handle SwiP_create(SwiP_Fxn swiFxn, const SwiP_Params *swiPparams)
Function to create a software interrupt.
void(* SwiP_Fxn)(uintptr_t arg0, uintptr_t arg1)
Prototype for the entry function for a software interrupt.
Definition: SwiP.h:76
SwiP_Status SwiP_delete(SwiP_Handle *pHandle)
Function to delete an interrupt on CortexM devices.
void * SwiP_Handle
SwiP handle of an instance.
Definition: SwiP.h:63
Definition: SwiP.h:69
Basic SwiP Parameters.
Definition: SwiP.h:87
uintptr_t arg0
Definition: SwiP.h:88
SwiP_Status SwiP_post(SwiP_Handle swiPhandle)
Function to post the Swi interrupt.
uintptr_t arg1
Definition: SwiP.h:89