Proactive Safety Framework  1.0
NvPSSCom.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11 */
12 
13 #ifndef _NVPSS_COM_H_
14 #define _NVPSS_COM_H_
15 
16 #include <stdint.h>
17 
18 #include "NvPSSErr.h"
19 
20 #define MAX_DATA_SIZE 2048
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 typedef enum NvPSSComCmd_t
27 {
33  DATA,
42  BYE,
45  PING,
46  PING_ACK
48 
55 typedef struct NvPSSComPacket_t
56 {
57  uint32_t pktSrNo;
59  uint32_t size;
60  uint8_t data[MAX_DATA_SIZE];
61  uint32_t ackSrNo;
62  uint64_t checksum;
64 
71 {
73  NvPSSComErr (*onPause)(void);
74  NvPSSComErr (*onResume)(void);
75  NvPSSComErr (*onStop)(void);
77 
84 {
86  NvPSSComErr (*onFlowRateChange)(uint8_t flowRate);
87  NvPSSComErr (*onStop)(void);
89 
90 
94 typedef struct NvPSSComCtx* NvPSSComCtx_t ;
95 
101 NvPSSComCtx* NvPSSComCreateContext();
102 
113 NvPSSComErr NvPSSComDataSrcInit(NvPSSComCtx* ctx, const char* writeChannel, const char* readChannel);
114 
115 
127 NvPSSComErr NvPSSComDataSinkInit(NvPSSComCtx* ctx, const char* writeChannel, const char* readChannel );
128 
129 
139 
149 
157 NvPSSComErr NvPSSComStart(NvPSSComCtx* ctx);
158 
166 NvPSSComErr NvPSSComSetFlowRate(NvPSSComCtx* ctx, uint8_t flowRate);
167 
176 
183 NvPSSComErr NvPSSComPause(NvPSSComCtx* ctx);
184 
191 NvPSSComErr NvPSSComResume(NvPSSComCtx* ctx);
192 
199 NvPSSComErr NvPSSComStop(NvPSSComCtx* ctx);
200 
208 
216 
222 void NvPSSComDestroyContext(NvPSSComCtx* ctx);
223 
224 
225 #ifdef __cplusplus
226 }
227 #endif
228 
229 #endif //_NVPSS_COM_H_
NvPSSComErr NvPSSComDataSrcExit(NvPSSComCtx *ctx)
Exits the PSS communication for the data source.
NvPSSComErr NvPSSComPushData(NvPSSComCtx *ctx, NvPSSComPacket *pkt)
Pushes data to the PSS communication channel.
struct NvPSSComCtx * NvPSSComCtx_t
Definition: NvPSSCom.h:94
NvPSSComCtx * NvPSSComCreateContext()
Creates a new NvPSSCom context.
NvPSSComErr NvPSSComSetFlowRate(NvPSSComCtx *ctx, uint8_t flowRate)
Sets the flow rate for PSS communication.
NvPSSComErr NvPSSComStart(NvPSSComCtx *ctx)
Starts the PSS communication.
NvPSSComCmd
Definition: NvPSSCom.h:27
@ BAD_RESPONSE
Definition: NvPSSCom.h:44
@ PAUSE_ACK
Definition: NvPSSCom.h:39
@ CRC_MISMATCH
Definition: NvPSSCom.h:37
@ PSS_RDY
Definition: NvPSSCom.h:29
@ BYE
Definition: NvPSSCom.h:42
@ START_PSS
Definition: NvPSSCom.h:28
@ FLOW_RATE_ACK
Definition: NvPSSCom.h:32
@ BYE_ACK
Definition: NvPSSCom.h:43
@ PING
Definition: NvPSSCom.h:45
@ RESUME
Definition: NvPSSCom.h:40
@ FLOW_RATE
Definition: NvPSSCom.h:31
@ PSS_NOT_RDY
Definition: NvPSSCom.h:30
@ PAUSE
Definition: NvPSSCom.h:38
@ BAD_DATA
Definition: NvPSSCom.h:35
@ DATA
Definition: NvPSSCom.h:33
@ DATA_ACK
Definition: NvPSSCom.h:34
@ PING_ACK
Definition: NvPSSCom.h:46
@ RESUME_ACK
Definition: NvPSSCom.h:41
@ BAD_DATA_ACK
Definition: NvPSSCom.h:36
NvPSSComErr NvPSSComStop(NvPSSComCtx *ctx)
Stops the PSS communication.
#define MAX_DATA_SIZE
Definition: NvPSSCom.h:20
NvPSSComErr NvPSSComDataSinkInit(NvPSSComCtx *ctx, const char *writeChannel, const char *readChannel)
Initializes the NvPSSCom data sink.
NvPSSComErr NvPSSComPause(NvPSSComCtx *ctx)
Pauses the PSS communication.
NvPSSComErr NvPSSDataSrcRegisterCallbacks(NvPSSComCtx *ctx, NvPSSComDataSrcCallbacks *srcCallbacks)
Registers callbacks for the data source.
void NvPSSComDestroyContext(NvPSSComCtx *ctx)
Destroys the NvPSSCom context.
NvPSSComErr NvPSSComResume(NvPSSComCtx *ctx)
Resumes the PSS communication.
NvPSSComErr NvPSSComDataSrcInit(NvPSSComCtx *ctx, const char *writeChannel, const char *readChannel)
Initializes the NvPSSCom data source.
NvPSSComErr NvPSSComDataSinkExit(NvPSSComCtx *ctx)
Exits the PSS communication for the data sink.
NvPSSComErr NvPSSDataSinkRegisterCallbacks(NvPSSComCtx *ctx, NvPSSComDataSinkCallbacks *sinkCallbacks)
Registers callbacks for the data sink.
NvPSSComErr
Enumeration of PSS communication error codes.
Definition: NvPSSErr.h:23
Structure for data sink callbacks.
Definition: NvPSSCom.h:84
NvPSSComErr(* onDataAvailable)(NvPSSComPacket *pkt)
Definition: NvPSSCom.h:85
NvPSSComErr(* onFlowRateChange)(uint8_t flowRate)
Definition: NvPSSCom.h:86
NvPSSComErr(* onStop)(void)
Definition: NvPSSCom.h:87
Structure for data source callbacks.
Definition: NvPSSCom.h:71
NvPSSComErr(* onPause)(void)
Definition: NvPSSCom.h:73
NvPSSComErr(* onResume)(void)
Definition: NvPSSCom.h:74
NvPSSComErr(* onStop)(void)
Definition: NvPSSCom.h:75
NvPSSComErr(* onDataRequest)(NvPSSComPacket *pkt)
Definition: NvPSSCom.h:72
Structure representing a PSS communication packet.
Definition: NvPSSCom.h:56
NvPSSComCmd cmd
Definition: NvPSSCom.h:58
uint32_t ackSrNo
Definition: NvPSSCom.h:61
uint32_t pktSrNo
Definition: NvPSSCom.h:57
uint32_t size
Definition: NvPSSCom.h:59
uint64_t checksum
Definition: NvPSSCom.h:62