NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvscistream_api.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020-2025 NVIDIA Corporation. All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property and
5  * proprietary rights in and to this software, related documentation and any
6  * modifications thereto. Any use, reproduction, disclosure or distribution
7  * of this software and related documentation without an express license
8  * agreement from NVIDIA Corporation is strictly prohibited.
9  */
19 #ifndef NVSCISTREAM_API_H
20 #define NVSCISTREAM_API_H
21 
22 #ifdef __cplusplus
23 #include <cstdint>
24 #else
25 #include <stdint.h>
26 #endif
27 #if defined(NV_QNX)
28 #include "nvdvms_client.h"
29 #include "nvdvms_types.h"
30 #endif
31 #include "nvscierror.h"
32 #include "nvscibuf.h"
33 #include "nvscisync.h"
34 #include "nvsciipc.h"
35 #include "nvscievent.h"
36 #include "nvscistream_types.h"
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
162 #if (defined(NV_QNX))
163 /*
164  * - API is called in runtime state
165  */
166 #endif
167 /*
168  * - @a upstream argument represents a multicast block which is not ready
169  * for late consumer connections.
170  */
171 #if (NV_IS_SAFETY == 1)
172 
175 #endif
176 
200  NvSciStreamBlock const upstream,
201  NvSciStreamBlock const downstream
202 );
203 
229 #if (defined(NV_QNX))
230 /*
231  * - ::NvSciError_InvalidState API is called in runtime state.
232  */
233 #endif
234 /*
235  * - ::NvSciError_BadParameter If any of the following occurs:
236  * - the output parameter @a producer is a null pointer
237  * - the @a pool parameter does not reference a pool block
238  * - ::NvSciError_StreamBadBlock If block referenced by @a pool is invalid.
239  * - ::NvSciError_InsufficientResource If the pool block is already
240  * associated with another producer.
241  * - ::NvSciError_StreamInternalError If any of the following occurs:
242  * - block registration fails
243  * - the producer block cannot be initialized properly
244  * - ::NvSciError_InsufficientMemory Memory allocation fails.
245  */
246 #if (NV_IS_SAFETY == 1)
247 
250 #endif
251 
274  NvSciStreamBlock const pool,
275  NvSciStreamBlock *const producer
276 );
277 
278 
309 #if (defined(NV_QNX))
310 /*
311  * - ::NvSciError_InvalidState API is called in runtime state.
312  */
313 #endif
314 /*
315  * - ::NvSciError_BadParameter If any of the following occurs:
316  * - the output parameter @a producer is a null pointer
317  * - the @a pool parameter does not reference a pool block
318  * - ::NvSciError_StreamBadBlock If block referenced by @a pool is invalid
319  * - ::NvSciError_InsufficientResource If the pool block is already
320  * associated with another producer.
321  * - ::NvSciError_StreamInternalError If any of the following occurs:
322  * - block registration fails
323  * - the producer block cannot be initialized properly
324  * - ::NvSciError_InsufficientMemory Memory allocation fails.
325  */
326 #if (NV_IS_SAFETY == 1)
327 
330 #endif
331 
354  NvSciStreamBlock const pool,
355  bool const crcValidate,
356  NvSciStreamBlock *const producer
357 );
358 
384 #if (defined(NV_QNX))
385 /*
386  * - ::NvSciError_InvalidState API is called in runtime state.
387  */
388 #endif
389 /*
390  * - ::NvSciError_BadParameter If any of the following occurs:
391  * - the output parameter @a consumer is a null pointer
392  * - the @a queue parameter does not reference a queue block
393  * - ::NvSciError_StreamBadBlock If block referenced by @a queue is invalid.
394  * - ::NvSciError_InsufficientResource If the queue block is already bound to
395  * another consumer.
396  * - ::NvSciError_StreamInternalError If any of the following occurs:
397  * - block registration fails
398  * - the consumer block cannot be initialized properly
399  * - ::NvSciError_InsufficientMemory Memory allocation fails.
400  */
401 #if (NV_IS_SAFETY == 1)
402 
405 #endif
406 
429  NvSciStreamBlock const queue,
430  NvSciStreamBlock *const consumer
431 );
432 
433 
467 #if (defined(NV_QNX))
468 /*
469  * - ::NvSciError_InvalidState API is called in runtime state.
470  */
471 #endif
472 /*
473  * - ::NvSciError_BadParameter If any of the following occurs:
474  * - the output parameter @a consumer is a null pointer
475  * - the @a queue parameter does not reference a queue block
476  * - ::NvSciError_StreamBadBlock If the block referenced by @a queue is
477  * invalid.
478  * - ::NvSciError_InsufficientResource If the queue block is already bound to
479  * another consumer.
480  * - ::NvSciError_StreamInternalError If any of the following occurs:
481  * - block registration fails
482  * - the consumer block cannot be initialized properly
483  * - ::NvSciError_InsufficientMemory Memory allocation fails.
484  */
485 #if (NV_IS_SAFETY == 1)
486 
489 #endif
490 
513  NvSciStreamBlock const queue,
514  bool const crcValidate,
515  NvSciStreamBlock *const consumer
516 );
517 
518 
544 #if (defined(NV_QNX))
545 /*
546  * - ::NvSciError_InvalidState API is called in runtime state.
547  */
548 #endif
549 /*
550  * - ::NvSciError_BadParameter The output parameter @a pool is a null pointer.
551  * - ::NvSciError_StreamInternalError If any of the following occurs:
552  * - block registration fails
553  * - the pool block cannot be initialized properly
554  * - ::NvSciError_InsufficientMemory Memory allocation fails.
555  */
556 #if (NV_IS_SAFETY == 1)
557 
560 #endif
561 
584  uint32_t const numPackets,
585  NvSciStreamBlock *const pool
586 );
587 
616 #if (defined(NV_QNX))
617 /*
618  * - ::NvSciError_InvalidState API is called in runtime state.
619  */
620 #endif
621 /*
622  * - ::NvSciError_BadParameter The output parameter @a queue is a null pointer.
623  * - ::NvSciError_StreamInternalError If any of the following occurs:
624  * - block registration fails
625  * - the mailbox queue block cannot be initialized properly
626  * - ::NvSciError_InsufficientMemory Memory allocation fails.
627  */
628 #if (NV_IS_SAFETY == 1)
629 
632 #endif
633 
656  NvSciStreamBlock *const queue
657 );
658 
686 #if (defined(NV_QNX))
687 /*
688  * - ::NvSciError_InvalidState API is called in runtime state.
689  */
690 #endif
691 /*
692  * - ::NvSciError_BadParameter The output parameter @a queue is a null pointer.
693  * - ::NvSciError_StreamInternalError If any of the following occurs:
694  * - block registration fails
695  * - the FIFO queue block cannot be initialized properly.
696  * - ::NvSciError_InsufficientMemory Memory allocation fails.
697  */
698 #if (NV_IS_SAFETY == 1)
699 
702 #endif
703 
726  NvSciStreamBlock *const queue
727 );
728 
754 #if (defined(NV_QNX))
755 /*
756  * - ::NvSciError_InvalidState API is called in runtime state.
757  */
758 #endif
759 /*
760  * - ::NvSciError_BadParameter If any of the following occurs:
761  * - the output parameter @a multicast is a null pointer
762  * - @a outputCount is larger than the number allowed
763  * - ::NvSciError_StreamInternalError If any of the following occurs:
764  * - block registration fails
765  * - the multicast block cannot be initialized properly
766  * - ::NvSciError_InsufficientMemory Memory allocation fails.
767  */
768 #if (NV_IS_SAFETY == 1)
769 
772 #endif
773 
796  uint32_t const outputCount,
797  NvSciStreamBlock *const multicast
798 );
799 
832 #if (defined(NV_QNX))
833 /*
834  * - ::NvSciError_InvalidState API is called in runtime state.
835  * - ::NvSciError_NotSupported for interVM endpoint backend type in QNX.
836  */
837 #endif
838 /*
839  * - ::NvSciError_StreamInternalError If any of the following occurs:
840  * - block registration fails
841  * - connection establishment through @a ipcEndpoint fails
842  * - IpcSrc block cannot be initialized properly
843  * - ::NvSciError_BadParameter The output parameter @a ipc is a null pointer.
844  * - ::NvSciError_NotInitialized @a ipcEndpoint is uninitialized.
845  * - ::NvSciError_InsufficientMemory Memory allocation fails.
846  */
847 #if (NV_IS_SAFETY == 1)
848 
851 #endif
852 
882  NvSciIpcEndpoint const ipcEndpoint,
883  NvSciSyncModule const syncModule,
884  NvSciBufModule const bufModule,
885  NvSciStreamBlock *const ipc
886 );
887 
933 #if (defined(NV_QNX))
934 /*
935  * - ::NvSciError_InvalidState API is called in runtime state.
936  * - ::NvSciError_NotSupported Inter-VM endpoint not supported in QNX.
937  */
938 #endif
939 /*
940  * - ::NvSciError_StreamInternalError If any of the following occurs:
941  * - block registration fails
942  * - connection establishment through @a ipcEndpoint fails
943  * - IpcSrc or C2CSrc block cannot be initialized properly
944  * - default FIFO queue cannot be initialized properly when queue is not
945  * provided by user if the @a ipcEndpoint is a C2C endpoint.
946  * - ::NvSciError_BadParameter If any of the following occurs:
947  * - the output parameter @a ipc is a null pointer
948  * - the input parameter @a queue does not reference a queue block when
949  * the @a ipcEndpoint is a C2C backend type
950  * - the input parameter @a queue is valid when the @a ipcEndpoint is
951  * a non-C2C backend type
952  * - ::NvSciError_StreamBadBlock If the input parameter @a queue is provided
953  * but invalid when the @a ipcEndpoint is a C2C backend type
954  * - ::NvSciError_InsufficientResource If the queue block is already
955  * associated with any other consumer or C2CSrc block.
956  * - ::NvSciError_NotInitialized @a ipcEndpoint is uninitialized.
957  * - ::NvSciError_InsufficientMemory Memory allocation fails.
958  */
959 #if (NV_IS_SAFETY == 1)
960 
963 #endif
964 
994  NvSciIpcEndpoint const ipcEndpoint,
995  NvSciSyncModule const syncModule,
996  NvSciBufModule const bufModule,
997  NvSciStreamBlock const queue,
998  NvSciStreamBlock *const ipc
999 );
1000 
1033 #if (defined(NV_QNX))
1034 /*
1035  * - ::NvSciError_InvalidState API is called in runtime state.
1036  * - ::NvSciError_NotSupported for interVM endpoint backend type in QNX.
1037  */
1038 #endif
1039 /*
1040  * - ::NvSciError_StreamInternalError If any of the following occurs:
1041  * - block registration fails
1042  * - connection establishment through @a ipcEndpoint fails
1043  * - IpcDst block can't be initialized properly
1044  * - ::NvSciError_BadParameter The output parameter @a ipc is a null pointer.
1045  * - ::NvSciError_NotInitialized @a ipcEndpoint is uninitialized.
1046  * - ::NvSciError_InsufficientMemory Memory allocation fails.
1047  */
1048 #if (NV_IS_SAFETY == 1)
1049 
1052 #endif
1053 
1083  NvSciIpcEndpoint const ipcEndpoint,
1084  NvSciSyncModule const syncModule,
1085  NvSciBufModule const bufModule,
1086  NvSciStreamBlock *const ipc
1087 );
1088 
1130 #if (defined(NV_QNX))
1131 /*
1132  * - ::NvSciError_InvalidState API is called in runtime state.
1133  * - ::NvSciError_NotSupported Inter-VM backend endpoint not supported in QNX
1134  */
1135 #endif
1136 /*
1137  * - ::NvSciError_StreamInternalError If any of the following occurs:
1138  * - block registration fails
1139  * - connection establishment through @a ipcEndpoint fails
1140  * - IpcDst or C2CDst block cannot be initialized properly
1141  * - ::NvSciError_BadParameter If any of the following occurs:
1142  * - the output parameter @a ipc is a null pointer
1143  * - the input parameter @a pool does not reference a pool block when the
1144  * @a ipcEndpoint is a C2C backend type
1145  * - the input parameter @a pool is valid when the @a ipcEndpoint
1146  * is a non-C2C backend type
1147  * - ::NvSciError_StreamBadBlock If the input parameter @a pool is provided
1148  * but invalid when the @a ipcEndpoint is a C2C backend type
1149  * - ::NvSciError_InsufficientResource If the pool block is already
1150  * associated with any other producer or C2CDst block.
1151  * - ::NvSciError_NotInitialized @a ipcEndpoint is uninitialized
1152  * - ::NvSciError_InsufficientMemory Memory allocation fails.
1153  */
1154 #if (NV_IS_SAFETY == 1)
1155 
1158 #endif
1159 
1189  NvSciIpcEndpoint const ipcEndpoint,
1190  NvSciSyncModule const syncModule,
1191  NvSciBufModule const bufModule,
1192  NvSciStreamBlock const pool,
1193  NvSciStreamBlock *const ipc
1194 );
1195 
1218 #if (defined(NV_QNX))
1219 /*
1220  * - ::NvSciError_InvalidState API is called in runtime state.
1221  */
1222 #endif
1223 /*
1224  * - ::NvSciError_BadParameter The output parameter @a limiter is a null
1225  * pointer.
1226  * - ::NvSciError_StreamInternalError If any of the following occurs:
1227  * - block registration fails
1228  * - the Limiter block can't be initialized properly
1229  * - ::NvSciError_InsufficientMemory Memory allocation fails.
1230  */
1231 #if (NV_IS_SAFETY == 1)
1232 
1235 #endif
1236 
1259  uint32_t const maxPackets,
1260  NvSciStreamBlock *const limiter
1261 );
1262 
1263 
1286 #if (defined(NV_QNX))
1287 /*
1288  * - ::NvSciError_InvalidState API is called in runtime state.
1289  */
1290 #endif
1291 /*
1292  * - ::NvSciError_BadParameter The output parameter @a returnSync is a null
1293  * pointer.
1294  * - ::NvSciError_StreamInternalError If any of the following occurs:
1295  * - block registration fails
1296  * - the ReturnSync block can't be initialized properly
1297  * - ::NvSciError_InsufficientMemory Memory allocation fails.
1298  */
1299 #if (NV_IS_SAFETY == 1)
1300 
1303 #endif
1304 
1328  NvSciSyncModule const syncModule,
1329  NvSciStreamBlock *const returnSync
1330 );
1331 
1353 #if (defined(NV_QNX))
1354 /*
1355  * - ::NvSciError_InvalidState API is called in runtime state.
1356  */
1357 #endif
1358 /*
1359  * - ::NvSciError_BadParameter The output parameter @a presentSync is a null
1360  * pointer.
1361  * - ::NvSciError_StreamInternalError If any of the following occurs:
1362  * - block registration fails
1363  * - the PresentSync block can't be initialized properly
1364  * - ::NvSciError_InsufficientMemory Memory allocation fails.
1365  */
1366 #if (NV_IS_SAFETY == 1)
1367 
1370 #endif
1371 
1394  NvSciSyncModule const syncModule,
1395  NvSciStreamBlock *const presentSync
1396 );
1397 
1440 #if (NV_IS_SAFETY == 1)
1441 
1444 #endif
1445 
1467  NvSciStreamBlock const block,
1468  int64_t const timeoutUsec,
1470 );
1471 
1490 #if (NV_IS_SAFETY == 1)
1491 
1494 #endif
1495 
1515 NvSciError
1517  NvSciStreamBlock const block,
1518  NvSciError* const status
1519 );
1520 
1538 #if (defined(NV_QNX))
1539 /*
1540  * - ::NvSciError_InvalidState API is called in runtime state.
1541  */
1542 #endif
1543 /*
1544  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
1545  * - ::NvSciError_BadAddress @a numConsumers is NULL.
1546  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
1547  * NvSciStreamEventType_Connected is not posted on the block or
1548  * NvSciStreamEventType_Disconnect is posted.
1549  */
1550 #if (NV_IS_SAFETY == 1)
1551 
1554 #endif
1555 
1576 NvSciError
1578  NvSciStreamBlock const block,
1579  uint32_t* const numConsumers
1580 );
1581 
1600 #if (defined(NV_QNX))
1601 /*
1602  * - ::NvSciError_InvalidState API is called in runtime state.
1603  */
1604 #endif
1605 /*
1606  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
1607  * - ::NvSciError_NotSupported Operation not supported on the block referenced
1608  * by @a block. Only supported on producer, consumer, pool and multicast
1609  * block.
1610  * - ::NvSciError_NotYetAvailable Prerequisites for marking the group
1611  * identified by @a setupType as complete have not been met.
1612  * - ::NvSciError_InsufficientData Not all data associated with the group
1613  * identified by @a setupType has been provided.
1614  * - ::NvSciError_AlreadyDone The group identified by @a setupType has
1615  * already been marked complete.
1616  * - ::NvSciError_BadParameter @a completed is not true.
1617  * - ::NvSciError_Busy An NvSciStream interface in another thread is
1618  * currently interacting with the group identified by @a setupType on
1619  * this @a block. The call can be tried again, but this typically
1620  * indicates a flaw in application design.
1621  * - ::NvSciError_InsufficientMemory Failed to allocate memory needed to
1622  * process the data.
1623  * - ::NvSciError_StreamNotConnected Stream is not fully connected when it is
1624  * called on producer, consumer or pool block, which means
1625  * NvSciStreamEventType_Connected is not yet queried by the application
1626  * by calling NvSciStreamBlockEventQuery() or
1627  * NvSciStreamEventType_Disconnect is posted.
1628  */
1629 #if (NV_IS_SAFETY == 1)
1630 
1633 #endif
1634 
1654 NvSciError
1656  NvSciStreamBlock const block,
1657  NvSciStreamSetup const setupType,
1658  bool const completed
1659 );
1660 
1683 #if (defined(NV_QNX))
1684 /*
1685  * - ::NvSciError_InvalidState API is called in runtime state.
1686  */
1687 #endif
1688 /*
1689  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
1690  * - ::NvSciError_NotSupported Operation not supported on the block referenced
1691  * by @a block. Only supported on producer, consumer and pool block.
1692  * - ::NvSciError_NotYetAvailable The prerequisite event has not yet arrived.
1693  * - ::NvSciError_NoLongerAvailable The element export phase was completed.
1694  * - ::NvSciError_Busy An NvSciStream interface in another thread is
1695  * currently interacting with the block's exported element information.
1696  * The call can be retried, but this typically indicates a flaw in
1697  * application design.
1698  * - ::NvSciError_Overflow The number of elements in the list has reached
1699  * the maximum allowed value.
1700  * - ::NvSciError_AlreadyInUse An element with the specified @a userType
1701  * already exists in the list.
1702  * - ::NvSciError_InsufficientMemory Unable to allocate storage for the new
1703  * element.
1704  * - ::NvSciError_BadParameter If @a bufAttrList is NULL.
1705  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
1706  * NvSciStreamEventType_Connected is not yet queried by the application
1707  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
1708  * is posted.
1709  * - Any error that NvSciBufAttrListClone() can generate.
1710  */
1711 #if (NV_IS_SAFETY == 1)
1712 
1715 #endif
1716 
1741 NvSciError
1743  NvSciStreamBlock const block,
1744  uint32_t const userType,
1745  NvSciBufAttrList const bufAttrList
1746 );
1747 
1776 #if (defined(NV_QNX))
1777 /*
1778  * - ::NvSciError_InvalidState API is called in runtime state.
1779  */
1780 #endif
1781 /*
1782  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
1783  * - ::NvSciError_NotSupported Operation not supported on the block referenced
1784  * by @a block. Only supported on producer, consumer and pool block.
1785  * - ::NvSciError_BadAddress @a numElements is NULL.
1786  * - ::NvSciError_BadParameter The @a queryBlockType is not valid for
1787  * the @a block.
1788  * - ::NvSciError_NotYetAvailable The requested element information has
1789  * not yet arrived.
1790  * - ::NvSciError_NoLongerAvailable The element import phase was completed.
1791  * - ::NvSciError_Busy An NvSciStream interface in another thread is
1792  * currently interacting with the block's imported element information.
1793  * The call can be retried.
1794  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
1795  * NvSciStreamEventType_Connected is not yet queried by the application
1796  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
1797  * is posted.
1798  */
1799 #if (NV_IS_SAFETY == 1)
1800 
1803 #endif
1804 
1827 NvSciError
1829  NvSciStreamBlock const block,
1830  NvSciStreamBlockType const queryBlockType,
1831  uint32_t* const numElements
1832 );
1833 
1871 #if (defined(NV_QNX))
1872 /*
1873  * - ::NvSciError_InvalidState API is called in runtime state.
1874  */
1875 #endif
1876 /*
1877  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
1878  * - ::NvSciError_NotSupported Operation not supported on the block referenced
1879  * by @a block. Only supported on producer, consumer and pool block.
1880  * - ::NvSciError_BadAddress @a userType and @a bufAttrList are both NULL.
1881  * - ::NvSciError_BadParameter The @a queryBlockType is not valid for
1882  * the @a block or the @a elemIndex is out of range.
1883  * - ::NvSciError_NotYetAvailable The requested element information has
1884  * not yet arrived.
1885  * - ::NvSciError_NoLongerAvailable The element import phase was completed.
1886  * - ::NvSciError_Busy An NvSciStream interface in another thread is
1887  * currently interacting with the block's imported element information.
1888  * The call can be retried.
1889  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
1890  * NvSciStreamEventType_Connected is not yet queried by the application
1891  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
1892  * is posted.
1893  * - ::NvSciError_IndexOutOfRange @a elemIndex out of range.
1894  * - Any error that NvSciBufAttrListClone() can generate.
1895  */
1896 #if (NV_IS_SAFETY == 1)
1897 
1900 #endif
1901 
1923 NvSciError
1925  NvSciStreamBlock const block,
1926  NvSciStreamBlockType const queryBlockType,
1927  uint32_t const elemIndex,
1928  uint32_t* const userType,
1929  NvSciBufAttrList* const bufAttrList
1930 );
1931 
1950 #if (defined(NV_QNX))
1951 /*
1952  * - ::NvSciError_InvalidState API is called in runtime state.
1953  */
1954 #endif
1955 /*
1956  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
1957  * - ::NvSciError_NotSupported Operation not supported on the block referenced
1958  * by @a block. Only supported on pool block.
1959  * - ::NvSciError_NotYetAvailable The requested element information has
1960  * not yet arrived.
1961  * - ::NvSciError_NoLongerAvailable The element export phase was completed.
1962  * - ::NvSciError_BadParameter The @a consumerIndex is out of range or
1963  * entry with @a userType not found in the allocated element list.
1964  * - ::NvSciError_StreamInternalError Inconsistency in internal data structures.
1965  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
1966  * NvSciStreamEventType_Connected is not yet queried by the application
1967  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
1968  * is posted.
1969  * - ::NvSciError_Busy An NvSciStream interface in another thread is
1970  * currently interacting with the block's imported element information.
1971  * The call can be retried.
1972  * - ::NvSciError_IndexOutOfRange @a consumerIndex out of range.
1973  */
1974 #if (NV_IS_SAFETY == 1)
1975 
1978 #endif
1979 
2005 NvSciError
2007  NvSciStreamBlock const pool,
2008  uint32_t const userType,
2009  uint32_t const consumerIndex
2010 );
2011 
2031 #if (defined(NV_QNX))
2032 /*
2033  * - ::NvSciError_InvalidState API is called in runtime state.
2034  */
2035 #endif
2036 /*
2037  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2038  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2039  * by @a block. Only supported on consumer block.
2040  * - ::NvSciError_NotYetAvailable The requested element information has
2041  * not yet arrived.
2042  * - ::NvSciError_NoLongerAvailable The element import phase was completed.
2043  * - ::NvSciError_BadParameter The @a elemIndex is out of range.
2044  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2045  * NvSciStreamEventType_Connected is not yet queried by the application
2046  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2047  * is posted.
2048  */
2049 #if (NV_IS_SAFETY == 1)
2050 
2053 #endif
2054 
2080 NvSciError
2082  NvSciStreamBlock const block,
2083  uint32_t const elemIndex,
2084  bool const used
2085 );
2086 
2106 #if (defined(NV_QNX))
2107 /*
2108  * - ::NvSciError_InvalidState API is called in runtime state.
2109  */
2110 #endif
2111 /*
2112  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
2113  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2114  * by @a pool. Only supported on pool block.
2115  * - ::NvSciError_BadAddress @a handle is NULL.
2116  * - ::NvSciError_NotYetAvailable Completion of element export has not
2117  * yet been signaled on the pool.
2118  * - ::NvSciError_StreamBadCookie @a cookie is invalid.
2119  * - ::NvSciError_AlreadyInUse @a cookie is already assigned to a packet.
2120  * - ::NvSciError_Overflow Pool already has maximum number of packets.
2121  * - ::NvSciError_InsufficientMemory Unable to allocate memory for the new
2122  * packet.
2123  * - ::NvSciError_StreamInternalError Inconsistency in internal data structures.
2124  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2125  * NvSciStreamEventType_Connected is not yet queried by the application
2126  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2127  * is posted.
2128  */
2129 #if (NV_IS_SAFETY == 1)
2130 
2133 #endif
2134 
2158  NvSciStreamBlock const pool,
2159  NvSciStreamCookie const cookie,
2160  NvSciStreamPacket *const handle
2161 );
2162 
2179 #if (defined(NV_QNX))
2180 /*
2181  * - ::NvSciError_InvalidState API is called in runtime state.
2182  */
2183 #endif
2184 /*
2185  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
2186  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2187  * by @a pool. Only supported on pool block.
2188  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2189  * - ::NvSciError_BadParameter @a bufObj is NULL.
2190  * - ::NvSciError_IndexOutOfRange @a index is out of range.
2191  * - ::NvSciError_NoLongerAvailable The packet has been marked complete.
2192  * - ::NvSciError_InconsistentData The element at @a index is unused by
2193  * the consumer.
2194  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2195  * NvSciStreamEventType_Connected is not yet queried by the application
2196  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2197  * is posted.
2198  * - Any error or panic behavior returned by NvSciBufObjRef().
2199  */
2200 #if (NV_IS_SAFETY == 1)
2201 
2204 #endif
2205 
2226  NvSciStreamBlock const pool,
2227  NvSciStreamPacket const handle,
2228  uint32_t const index,
2229  NvSciBufObj const bufObj
2230 );
2231 
2244 #if (defined(NV_QNX))
2245 /*
2246  * - ::NvSciError_InvalidState API is called in runtime state.
2247  */
2248 #endif
2249 /*
2250  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
2251  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2252  * by @a pool. Only supported on pool block.
2253  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2254  * - ::NvSciError_AlreadyDone The packet has already been marked complete.
2255  * - ::NvSciError_InsufficientData Buffers were not provided for all of the
2256  * packet's elements.
2257  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2258  * NvSciStreamEventType_Connected is not yet queried by the application
2259  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2260  * is posted.
2261  */
2262 #if (NV_IS_SAFETY == 1)
2263 
2266 #endif
2267 
2287 NvSciError
2289  NvSciStreamBlock const pool,
2291 );
2292 
2312 #if (defined(NV_QNX))
2313 /*
2314  * - ::NvSciError_InvalidState API is called in runtime state.
2315  */
2316 #endif
2317 /*
2318  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
2319  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2320  * by @a pool. Only supported on pool block.
2321  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2322  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2323  * NvSciStreamEventType_Connected is not yet queried by the application
2324  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2325  * is posted.
2326  */
2327 #if (NV_IS_SAFETY == 1)
2328 
2331 #endif
2332 
2352 NvSciError
2354  NvSciStreamBlock const pool,
2356 );
2357 
2372 #if (defined(NV_QNX))
2373 /*
2374  * - ::NvSciError_InvalidState API is called in runtime state.
2375  */
2376 #endif
2377 /*
2378  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2379  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2380  * by @a block. Only supported on producer and consumer block.
2381  * - ::NvSciError_BadAddress @a handle is NULL.
2382  * - ::NvSciError_NotYetAvailable The block has not yet indicated it is
2383  * done importing element information.
2384  * - ::NvSciError_NoLongerAvailable The block has completed importing packets.
2385  * - ::NvSciError_NoStreamPacket There is no pending new packet handle.
2386  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2387  * NvSciStreamEventType_Connected is not yet queried by the application
2388  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2389  * is posted.
2390  */
2391 #if (NV_IS_SAFETY == 1)
2392 
2395 #endif
2396 
2417 NvSciError
2419  NvSciStreamBlock const block,
2420  NvSciStreamPacket* const handle
2421 );
2422 
2439 #if (defined(NV_QNX))
2440 /*
2441  * - ::NvSciError_InvalidState API is called in runtime state.
2442  */
2443 #endif
2444 /*
2445  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2446  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2447  * by @a block. Only supported on producer and consumer block.
2448  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2449  * - ::NvSciError_BadAddress @a bufObj is NULL.
2450  * - ::NvSciError_NotYetAvailable The block has not yet indicated it is
2451  * done importing element information.
2452  * - ::NvSciError_NoLongerAvailable The block has completed importing packets.
2453  * - ::NvSciError_IndexOutOfRange @a elemIndex is out of range.
2454  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2455  * NvSciStreamEventType_Connected is not yet queried by the application
2456  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2457  * is posted.
2458  * - Any error or panic behavior returned by NvSciBufObjDup(), NvSciBufObjRef().
2459  */
2460 #if (NV_IS_SAFETY == 1)
2461 
2464 #endif
2465 
2488 NvSciError
2490  NvSciStreamBlock const block,
2491  NvSciStreamPacket const handle,
2492  uint32_t const elemIndex,
2493  NvSciBufObj* const bufObj
2494 );
2495 
2510 #if (defined(NV_QNX))
2511 /*
2512  * - ::NvSciError_InvalidState API is called in runtime state.
2513  */
2514 #endif
2515 /*
2516  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2517  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2518  * by @a block. Only supported on producer and consumer block.
2519  * - ::NvSciError_BadAddress @a cookie is NULL.
2520  * - ::NvSciError_NotYetAvailable The block has not yet indicated it is
2521  * done importing element information.
2522  * - ::NvSciError_NoStreamPacket There is no pending deleted packet cookie.
2523  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2524  * NvSciStreamEventType_Connected is not yet queried by the application
2525  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2526  * is posted.
2527  */
2528 #if (NV_IS_SAFETY == 1)
2529 
2532 #endif
2533 
2554 NvSciError
2556  NvSciStreamBlock const block,
2557  NvSciStreamCookie* const cookie
2558 );
2559 
2580 #if (defined(NV_QNX))
2581 /*
2582  * - ::NvSciError_InvalidState API is called in runtime state.
2583  */
2584 #endif
2585 /*
2586  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2587  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2588  * by @a block. Only supported on producer and consumer block.
2589  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2590  * - ::NvSciError_BadParameter @a status is invalid.
2591  * - ::NvSciError_StreamBadCookie The packet was accepted but @a cookie is
2592  * invalid.
2593  * - ::NvSciError_AlreadyInUse The packet was accepted but @a cookie was
2594  * already assigned to another packet.
2595  * - ::NvSciError_AlreadyDone The packet's status was already set.
2596  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2597  * NvSciStreamEventType_Connected is not yet queried by the application
2598  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2599  * is posted.
2600  */
2601 #if (NV_IS_SAFETY == 1)
2602 
2605 #endif
2606 
2626 NvSciError
2628  NvSciStreamBlock const block,
2629  NvSciStreamPacket const handle,
2630  NvSciStreamCookie const cookie,
2631  NvSciError const status
2632 );
2633 
2647 #if (defined(NV_QNX))
2648 /*
2649  * - ::NvSciError_InvalidState API is called in runtime state.
2650  */
2651 #endif
2652 /*
2653  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
2654  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2655  * by @a pool. Only supported on pool block.
2656  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2657  * - ::NvSciError_BadAddress @a accepted is NULL.
2658  * - ::NvSciError_NotYetAvailable Packet status has not yet arrived.
2659  * - ::NvSciError_NoLongerAvailable Packet export phase has completed.
2660  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2661  * NvSciStreamEventType_Connected is not yet queried by the application
2662  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2663  * is posted.
2664  */
2665 #if (NV_IS_SAFETY == 1)
2666 
2669 #endif
2670 
2690 NvSciError
2692  NvSciStreamBlock const pool,
2693  NvSciStreamPacket const handle,
2694  bool* const accepted
2695 );
2696 
2715 #if (defined(NV_QNX))
2716 /*
2717  * - ::NvSciError_InvalidState API is called in runtime state.
2718  */
2719 #endif
2720 /*
2721  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
2722  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2723  * by @a pool. Only supported on pool block.
2724  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
2725  * - ::NvSciError_BadAddress @a status is NULL.
2726  * - ::NvSciError_NotYetAvailable Packet status has not yet arrived.
2727  * - ::NvSciError_NoLongerAvailable Packet export phase has completed.
2728  * - ::NvSciError_IndexOutOfRange @a queryBlockIndex is out of range.
2729  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2730  * NvSciStreamEventType_Connected is not yet queried by the application
2731  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2732  * is posted.
2733  * - ::NvSciError_BadParameter: @a queryBlockType does not indicate
2734  * producer or consumer endpoint.
2735  */
2736 #if (NV_IS_SAFETY == 1)
2737 
2740 #endif
2741 
2761 NvSciError
2763  NvSciStreamBlock const pool,
2764  NvSciStreamPacket const handle,
2765  NvSciStreamBlockType const queryBlockType,
2766  uint32_t const queryBlockIndex,
2767  NvSciError* const status
2768 );
2769 
2789 #if (defined(NV_QNX))
2790 /*
2791  * - ::NvSciError_InvalidState API is called in runtime state.
2792  */
2793 #endif
2794 /*
2795  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2796  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2797  * by @a block. Only supported on producer and consumer block.
2798  * - ::NvSciError_NotYetAvailable Element information has not yet arrived.
2799  * - ::NvSciError_NoLongerAvailable The waiter info export phase was
2800  * completed.
2801  * - ::NvSciError_IndexOutOfRange The @a elemIndex is out of range.
2802  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2803  * NvSciStreamEventType_Connected is not yet queried by the application
2804  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2805  * is posted.
2806  * - Any error or panic behavior that NvSciSyncAttrListClone() can generate.
2807  */
2808 #if (NV_IS_SAFETY == 1)
2809 
2812 #endif
2813 
2835 NvSciError
2837  NvSciStreamBlock const block,
2838  uint32_t const elemIndex,
2839  NvSciSyncAttrList const waitSyncAttrList
2840 );
2841 
2861 #if (defined(NV_QNX))
2862 /*
2863  * - ::NvSciError_InvalidState API is called in runtime state.
2864  */
2865 #endif
2866 /*
2867  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2868  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2869  * by @a block. Only supported on producer and consumer block.
2870  * - ::NvSciError_BadAddress @a waitSyncAttrList is NULL.
2871  * - ::NvSciError_NotYetAvailable Waiter information has not yet arrived.
2872  * - ::NvSciError_NoLongerAvailable The waiter info import phase was
2873  * completed.
2874  * - ::NvSciError_IndexOutOfRange The @a elemIndex is out of range.
2875  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2876  * NvSciStreamEventType_Connected is not yet queried by the application
2877  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2878  * is posted.
2879  * - Any error or panic behavior that NvSciSyncAttrListClone() can generate.
2880  */
2881 #if (NV_IS_SAFETY == 1)
2882 
2885 #endif
2886 
2911 NvSciError
2913  NvSciStreamBlock const block,
2914  uint32_t const elemIndex,
2915  NvSciSyncAttrList* const waitSyncAttrList
2916 );
2917 
2937 #if (defined(NV_QNX))
2938 /*
2939  * - ::NvSciError_InvalidState API is called in runtime state.
2940  */
2941 #endif
2942 /*
2943  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
2944  * - ::NvSciError_NotSupported Operation not supported on the block referenced
2945  * by @a block. Only supported on producer and consumer block.
2946  * - ::NvSciError_NotYetAvailable Waiter requirements have not yet arrived.
2947  * - ::NvSciError_NoLongerAvailable The signal info export phase was
2948  * completed.
2949  * - ::NvSciError_IndexOutOfRange The @a elemIndex is out of range.
2950  * - ::NvSciError_InconsistentData The element at @a elemIndex is unused by
2951  * @a block.
2952  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
2953  * NvSciStreamEventType_Connected is not yet queried by the application
2954  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
2955  * is posted.
2956  * - Any error or panic behavior that NvSciSyncObjGetAttrList(),
2957  * NvSciSyncAttrListValidateReconciled() or NvSciSyncObjRef() can generate.
2958  */
2959 #if (NV_IS_SAFETY == 1)
2960 
2963 #endif
2964 
2986 NvSciError
2988  NvSciStreamBlock const block,
2989  uint32_t const elemIndex,
2990  NvSciSyncObj const signalSyncObj
2991 );
2992 
3017 #if (defined(NV_QNX))
3018 /*
3019  * - ::NvSciError_InvalidState API is called in runtime state.
3020  */
3021 #endif
3022 /*
3023  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
3024  * - ::NvSciError_NotSupported Operation not supported on the block referenced
3025  * by @a block. Only supported on producer and consumer block.
3026  * - ::NvSciError_BadAddress @a signalSyncObj is NULL.
3027  * - ::NvSciError_NotYetAvailable Signal information has not yet arrived.
3028  * - ::NvSciError_NoLongerAvailable The signal info import phase was
3029  * completed.
3030  * - ::NvSciError_IndexOutOfRange The @a queryBlockIndex or @a elemIndex
3031  * is out of range.
3032  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
3033  * NvSciStreamEventType_Connected is not yet queried by the application
3034  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
3035  * is posted.
3036  * - Any error or panic behavior that NvSciSyncObjRef(), NvSciSyncObjDup()
3037  * can generate.
3038  */
3039 #if (NV_IS_SAFETY == 1)
3040 
3043 #endif
3044 
3072 NvSciError
3074  NvSciStreamBlock const block,
3075  uint32_t const queryBlockIndex,
3076  uint32_t const elemIndex,
3077  NvSciSyncObj* const signalSyncObj
3078 );
3079 
3111 #if (NV_IS_SAFETY == 1)
3112 
3115 #endif
3116 
3140  NvSciStreamBlock const producer,
3141  NvSciStreamCookie *const cookie
3142 );
3143 
3168 #if (NV_IS_SAFETY == 1)
3169 
3172 #endif
3173 
3194  NvSciStreamBlock const producer,
3196 );
3197 
3229 #if (NV_IS_SAFETY == 1)
3230 
3233 #endif
3234 
3258  NvSciStreamBlock const consumer,
3259  NvSciStreamCookie *const cookie
3260 );
3261 
3285 #if (NV_IS_SAFETY == 1)
3286 
3289 #endif
3290 
3311  NvSciStreamBlock const consumer,
3313 );
3314 
3347 #if (NV_IS_SAFETY == 1)
3348 
3351 #endif
3352 
3372 NvSciError
3374  NvSciStreamBlock const block,
3375  NvSciStreamPacket const handle,
3376  uint32_t const elemIndex,
3377  NvSciSyncFence const *const postfence
3378 );
3379 
3415 #if (NV_IS_SAFETY == 1)
3416 
3419 #endif
3420 
3440 NvSciError
3442  NvSciStreamBlock const block,
3443  NvSciStreamPacket const handle,
3444  uint32_t const queryBlockIndex,
3445  uint32_t const elemIndex,
3446  NvSciSyncFence* const prefence
3447 );
3448 
3466 #if (defined(NV_QNX))
3467 /*
3468  * - ::NvSciError_InvalidState API is called in runtime state.
3469  */
3470 #endif
3471 /*
3472  * - ::NvSciError_StreamBadBlock Block referenced by @a producer is invalid.
3473  * - ::NvSciError_NotSupported Operation not supported on the block referenced
3474  * by @a producer. Only supported on producer block.
3475  * - ::NvSciError_BadAddress @a newConnected is NULL.
3476  * - ::NvSciError_IndexOutOfRange @a queryConnIndex is not valid
3477  * - ::NvSciError_NotYetAvailable If NvSciStreamEventType_Connected is not
3478  * yet received for the newly connected consumers.
3479  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
3480  * NvSciStreamEventType_Connected is not yet queried by the application
3481  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
3482  * is posted.
3483  */
3484 #if (NV_IS_SAFETY == 1)
3485 
3488 #endif
3489 
3510 NvSciError
3512  NvSciStreamBlock const producer,
3513  uint32_t const consumerIndex,
3514  bool* const newConnected );
3515 
3541 #if (defined(NV_QNX))
3542 /*
3543  * - ::NvSciError_InvalidState API is called in runtime state.
3544  */
3545 #endif
3546 /*
3547  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
3548  */
3549 #if (NV_IS_SAFETY == 1)
3550 
3553 #endif
3554 
3578  NvSciStreamBlock const block
3579 );
3580 
3581 
3602 #if (NV_IS_SAFETY == 1)
3603 
3606 #endif
3607 
3629  NvSciStreamBlock const block
3630 );
3631 
3645 #if (defined(NV_QNX))
3646 /*
3647  * - ::NvSciError_InvalidState API is called in runtime state.
3648  */
3649 #endif
3650 /*
3651  * - ::NvSciError_BadParameter @a attr is invalid or @a value is null.
3652  *
3653  * @pre
3654  * None
3655  *
3656  * @post
3657  * None
3658  *
3659  * @usage
3660  * - Allowed context for the API call
3661  * - Interrupt handler: No
3662  * - Signal handler: No
3663  * - Thread-safe: Yes
3664  * - Re-entrant: No
3665  * - Async/Sync: Sync
3666  * - Required privileges: None
3667  * - API group
3668  * - Init: Yes
3669  * - Runtime: No
3670  * - De-Init: No
3671  */
3673  NvSciStreamQueryableAttrib const attr,
3674  int32_t *const value
3675 );
3676 
3703 #if (defined(NV_QNX))
3704 /*
3705  * - API is called in runtime state.
3706  */
3707 #endif
3708 /*
3709  * - An NvSciStream API has already been called on the block referenced
3710  * by @a block.
3711  * - ::NvSciError_BadParameter If @a eventService or @a eventNotifier is null
3712  * - ::NvSciError_StreamBadBlock If block referenced by @a block is invalid.
3713  * - Any error or panic behavior that NvSciEventService::CreateLocalEvent()
3714  * can generate when @a eventService and @a eventNotifier arguments
3715  * are passed to it.
3716  */
3717 #if (NV_IS_SAFETY == 1)
3718 
3721 #endif
3722 
3731 #if (NV_IS_SAFETY == 1)
3732 
3737 #endif
3738 
3757  NvSciStreamBlock const block,
3758  NvSciEventService *const eventService,
3759  NvSciEventNotifier **const eventNotifier
3760 );
3761 
3798 #if (defined(NV_QNX))
3799 /*
3800  * - ::NvSciError_InvalidState API is called in runtime state.
3801  */
3802 #endif
3803 /*
3804  * - ::NvSciError_NotSupported Operation not supported on the block referenced
3805  * by @a block. Only supported on ipcsrc and ipcdst block.
3806  * - ::NvSciError_AlreadyDone Internal event service setup done.
3807  * - ::NvSciError_BadParameter If any of the following occurs:
3808  * - @a eventService, @a notifierCount or @a eventNotifierArray is null
3809  * or invalid
3810  * - ::NvSciError_StreamBadBlock If block referenced by @a block is invalid.
3811  * - ::NvSciError_InsufficientMemory Size of the input array @a notifierCount
3812  * not large enough.
3813  * - Any error or panic behavior that following APIs can generate:
3814  * NvSciIpcBindEventService(), NvSciIpcGetEventNotifier(),
3815  * NvSciEventNotifier::SetHandler(), NvSciEventService::CreateLocalEvent().
3816  */
3817 #if (NV_IS_SAFETY == 1)
3818 
3821 #endif
3822 
3851 NvSciError
3853  NvSciStreamBlock const block,
3854  NvSciEventService* const eventService,
3855  uint32_t* const notifierCount,
3856  NvSciEventNotifier** const eventNotifierArray
3857 );
3858 
3885 #if (NV_IS_SAFETY == 1)
3886 
3889 #endif
3890 
3910 NvSciError
3912  NvSciStreamBlock const block
3913 );
3914 
3934 #if (defined(NV_QNX))
3935 /*
3936  * - ::NvSciError_InvalidState API is called in runtime state.
3937  */
3938 #endif
3939 /*
3940  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
3941  * - ::NvSciError_NotSupported Operation not supported on the block referenced
3942  * by @a block. Only supported on producer and consumer block.
3943  * - ::NvSciError_BadParameter @a data is a NULL pointer.
3944  * - ::NvSciError_AlreadyInUse An endpoint information with the specified
3945  * @a userType already exists in the list.
3946  * - ::NvSciError_InsufficientMemory Unable to allocate storage for the new
3947  * endpoint information.
3948  * - ::NvSciError_NoLongerAvailable The configuration of the block instance
3949  * is already done.
3950  */
3951 #if (NV_IS_SAFETY == 1)
3952 
3955 #endif
3956 
3978 NvSciError
3980  NvSciStreamBlock const block,
3981  uint32_t const userType,
3982  uint32_t const dataSize,
3983  void const* const data);
3984 
4012 #if (defined(NV_QNX))
4013 /*
4014  * - ::NvSciError_InvalidState API is called in runtime state.
4015  */
4016 #endif
4017 /*
4018  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4019  * - ::NvSciError_BadAddress If any of the following occurs:
4020  * - @a dataSize is NULL
4021  * - @a data is NULL when @a dataSize is non-zero
4022  * - ::NvSciError_NoLongerAvailable Setup of the stream is completed.
4023  * - ::NvSciError_BadParameter The @a queryBlockType is not valid.
4024  * - ::NvSciError_IndexOutOfRange The @a queryBlockIndex is invalid for the
4025  * @a queryBlockType.
4026  * - ::NvSciError_StreamInfoNotProvided The queried endpoint info not exist.
4027  * - ::NvSciError_InsufficientMemory Memory allocation fails.
4028  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4029  * NvSciStreamEventType_Connected is not yet queried by the application
4030  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4031  * is posted.
4032  */
4033 #if (NV_IS_SAFETY == 1)
4034 
4037 #endif
4038 
4061 NvSciError
4063  NvSciStreamBlock const block,
4064  NvSciStreamBlockType const queryBlockType,
4065  uint32_t const queryBlockIndex,
4066  uint32_t const userType,
4067  uint32_t* const dataSize,
4068  void* const data);
4069 
4096 #if (defined(NV_QNX))
4097 /*
4098  * - ::NvSciError_InvalidState API is called in runtime state.
4099  */
4100 #endif
4101 /*
4102  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4103  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4104  * by @a block. Only supported on producer and consumer block.
4105  * - ::NvSciError_AlreadyInUse An endpoint information with the specified
4106  * @a userType already exists in the list.
4107  * - ::NvSciError_InsufficientMemory Unable to allocate storage for the new
4108  * endpoint information.
4109  * - ::NvSciError_NoLongerAvailable The configuration of the block instance
4110  * is already done.
4111  * - ::NvSciError_BadAddress @a crc or @a data is NULL.
4112  */
4113 #if (NV_IS_SAFETY == 1)
4114 
4117 #endif
4118 
4140 NvSciError
4142  NvSciStreamBlock const block,
4143  uint32_t const userType,
4144  uint32_t const dataSize,
4145  void const* const data,
4146  uint32_t* const crc);
4147 
4182 #if (defined(NV_QNX))
4183 /*
4184  * - ::NvSciError_InvalidState API is called in runtime state.
4185  */
4186 #endif
4187 /*
4188  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4189  * - ::NvSciError_BadAddress If any of the following occurs:
4190  * - @a dataSize is NULL
4191  * - @a data is NULL when @a dataSize is non-zero
4192  * - @a crc pointer is NULL.
4193  * - ::NvSciError_NoLongerAvailable Setup of the stream is completed.
4194  * - ::NvSciError_BadParameter The @a queryBlockType is not valid.
4195  * - ::NvSciError_IndexOutOfRange The @a queryBlockIndex is invalid for the
4196  * @a queryBlockType.
4197  * - ::NvSciError_StreamInfoNotProvided The queried endpoint info not exist.
4198  * - ::NvSciError_InsufficientMemory Memory allocation fails.
4199  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4200  * NvSciStreamEventType_Connected is not yet queried by the application
4201  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4202  * is posted.
4203  */
4204 #if (NV_IS_SAFETY == 1)
4205 
4208 #endif
4209 
4232 NvSciError
4234  NvSciStreamBlock const block,
4235  NvSciStreamBlockType const queryBlockType,
4236  uint32_t const queryBlockIndex,
4237  uint32_t const userType,
4238  uint32_t* const dataSize,
4239  void* const data,
4240  uint32_t* const crc);
4241 
4270 #if (defined(NV_QNX))
4271 /*
4272  * - ::NvSciError_InvalidState API is called in runtime state.
4273  */
4274 #endif
4275 /*
4276  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4277  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4278  * by @a block. Only supported on producer, consumer and primary pool block.
4279  * - ::NvSciError_NotYetAvailable The prerequisite event has not yet arrived.
4280  * - ::NvSciError_NoLongerAvailable The element export phase was completed.
4281  * - ::NvSciError_Busy An NvSciStream interface in another thread is
4282  * currently interacting with the block's exported element information.
4283  * The call can be retried, but this typically indicates a flaw in
4284  * application design.
4285  * - ::NvSciError_Overflow The number of elements in the list has reached
4286  * the maximum allowed value.
4287  * - ::NvSciError_AlreadyInUse An element with the specified @a userType
4288  * already exists in the list.
4289  * - ::NvSciError_InsufficientMemory Unable to allocate storage for the new
4290  * element.
4291  * - ::NvSciError_BadParameter If @a bufAttrList is NULL.
4292  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4293  * NvSciStreamEventType_Connected is not yet queried by the application
4294  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4295  * is posted.
4296  * - ::NvSciError_BadAddress @a crc pointer is NULL.
4297  * - Any error that NvSciBufAttrListClone() can generate.
4298  */
4299 #if (NV_IS_SAFETY == 1)
4300 
4303 #endif
4304 
4329 NvSciError
4331  NvSciStreamBlock const block,
4332  uint32_t const userType,
4333  NvSciBufAttrList const bufAttrList,
4334  uint32_t* const crc);
4335 
4380 #if (defined(NV_QNX))
4381 /*
4382  * - ::NvSciError_InvalidState API is called in runtime state.
4383  */
4384 #endif
4385 /*
4386  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4387  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4388  * by @a block. Only supported on producer, consumer and pool block.
4389  * - ::NvSciError_BadAddress @a userType and @a bufAttrList are both NULL.
4390  * - ::NvSciError_BadParameter The @a queryBlockType is not valid for
4391  * the @a block or the @a elemIndex is out of range.
4392  * - ::NvSciError_NotYetAvailable The requested element information has
4393  * not yet arrived.
4394  * - ::NvSciError_NoLongerAvailable The element import phase was completed.
4395  * - ::NvSciError_Busy An NvSciStream interface in another thread is
4396  * currently interacting with the block's imported element information.
4397  * The call can be retried.
4398  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4399  * NvSciStreamEventType_Connected is not yet queried by the application
4400  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4401  * is posted.
4402  * - ::NvSciError_BadAddress @a crc pointer is NULL.
4403  * - ::NvSciError_IndexOutOfRange @a elemIndex out of range.
4404  * - Any error that NvSciBufAttrListClone() can generate.
4405  */
4406 #if (NV_IS_SAFETY == 1)
4407 
4410 #endif
4411 
4433 NvSciError
4435  NvSciStreamBlock const block,
4436  NvSciStreamBlockType const queryBlockType,
4437  uint32_t const elemIndex,
4438  uint32_t* const userType,
4439  NvSciBufAttrList* const bufAttrList,
4440  uint32_t* const crc);
4441 
4465 #if (defined(NV_QNX))
4466 /*
4467  * - ::NvSciError_InvalidState API is called in runtime state.
4468  */
4469 #endif
4470 /*
4471  * - ::NvSciError_StreamBadBlock Block referenced by @a pool is invalid.
4472  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4473  * by @a pool. Only supported on pool block.
4474  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
4475  * - ::NvSciError_BadParameter @a bufObj is NULL.
4476  * - ::NvSciError_IndexOutOfRange @a index is out of range.
4477  * - ::NvSciError_NoLongerAvailable The packet has been marked complete.
4478  * - ::NvSciError_InconsistentData The element at @a index is unused by
4479  * the consumer.
4480  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4481  * NvSciStreamEventType_Connected is not yet queried by the application
4482  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4483  * is posted.
4484  * - ::NvSciError_BadAddress @a crc pointer is NULL.
4485  * - Any error or panic behavior returned by NvSciBufObjGetId()
4486  * or NvSciBufObjRef().
4487  */
4488 #if (NV_IS_SAFETY == 1)
4489 
4492 #endif
4493 
4513 NvSciError
4515  NvSciStreamBlock const pool,
4516  NvSciStreamPacket const handle,
4517  uint32_t const index,
4518  NvSciBufObj const bufObj,
4519  uint32_t* const crc);
4520 
4545 #if (defined(NV_QNX))
4546 /*
4547  * - ::NvSciError_InvalidState API is called in runtime state.
4548  */
4549 #endif
4550 /*
4551  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4552  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4553  * by @a block. Only supported on producer and consumer block.
4554  * - ::NvSciError_StreamBadPacket Packet referenced by @a handle is invalid.
4555  * - ::NvSciError_BadAddress @a bufObj is NULL.
4556  * - ::NvSciError_NotYetAvailable The block has not yet indicated it is
4557  * done importing element information.
4558  * - ::NvSciError_NoLongerAvailable The block has completed importing packets.
4559  * - ::NvSciError_IndexOutOfRange @a elemIndex is out of range.
4560  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4561  * NvSciStreamEventType_Connected is not yet queried by the application
4562  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4563  * is posted.
4564  * - ::NvSciError_BadAddress @a crc pointer is NULL.
4565  * - Any error or panic behavior returned by NvSciBufObjGetId(), NvSciBufObjDup(),
4566  * NvSciBufObjRef().
4567  */
4568 #if (NV_IS_SAFETY == 1)
4569 
4572 #endif
4573 
4598 NvSciError
4600  NvSciStreamBlock const block,
4601  NvSciStreamPacket const handle,
4602  uint32_t const elemIndex,
4603  NvSciBufObj* const bufObj,
4604  size_t const crcCount,
4605  uint32_t* const crc);
4606 
4633 #if (defined(NV_QNX))
4634 /*
4635  * - ::NvSciError_InvalidState API is called in runtime state.
4636  */
4637 #endif
4638 /*
4639  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4640  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4641  * by @a block. Only supported on producer and consumer block.
4642  * - ::NvSciError_NotYetAvailable Waiter requirements have not yet arrived.
4643  * - ::NvSciError_NoLongerAvailable The signal info export phase was
4644  * completed.
4645  * - ::NvSciError_IndexOutOfRange The @a elemIndex is out of range.
4646  * - ::NvSciError_InconsistentData The element at @a elemIndex is unused by
4647  * @a block.
4648  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4649  * NvSciStreamEventType_Connected is not yet queried by the application
4650  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4651  * is posted.
4652  * - ::NvSciError_BadAddress @a crc pointer is NULL.
4653  * - Any error or panic behavior that NvSciSyncObjIdGet(), NvSciSyncObjGetAttrList()
4654  * NvSciSyncAttrListValidateReconciled() or NvSciSyncObjRef() can generate.
4655  */
4656 #if (NV_IS_SAFETY == 1)
4657 
4660 #endif
4661 
4683 NvSciError
4685  NvSciStreamBlock const block,
4686  uint32_t const elemIndex,
4687  NvSciSyncObj const signalSyncObj,
4688  uint32_t* const crc);
4689 
4720 #if (defined(NV_QNX))
4721 /*
4722  * - ::NvSciError_InvalidState API is called in runtime state.
4723  */
4724 #endif
4725 /*
4726  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4727  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4728  * by @a block. Only supported on producer and consumer block.
4729  * - ::NvSciError_BadAddress @a signalSyncObj is NULL.
4730  * - ::NvSciError_NotYetAvailable Signal information has not yet arrived.
4731  * - ::NvSciError_NoLongerAvailable The signal info import phase was
4732  * completed.
4733  * - ::NvSciError_IndexOutOfRange The @a queryBlockIndex or @a elemIndex
4734  * is out of range.
4735  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4736  * NvSciStreamEventType_Connected is not yet queried by the application
4737  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4738  * is posted.
4739  * - ::NvSciError_BadAddress @a crc pointer is NULL.
4740  * - Any error or panic behavior that NvSciSyncObjIdGet(), NvSciSyncObjRef(),
4741  * NvSciSyncObjDup() can generate.
4742  */
4743 #if (NV_IS_SAFETY == 1)
4744 
4747 #endif
4748 
4776 NvSciError
4778  NvSciStreamBlock const block,
4779  uint32_t const queryBlockIndex,
4780  uint32_t const elemIndex,
4781  NvSciSyncObj* const signalSyncObj,
4782  uint32_t* const crc);
4783 
4825 #if (NV_IS_SAFETY == 1)
4826 
4829 #endif
4830 
4850 NvSciError
4852  NvSciStreamBlock const block,
4853  NvSciStreamPacket const handle,
4854  uint32_t const elemIndex,
4855  NvSciSyncFence const *const postfence,
4856  uint32_t* const crc);
4857 
4903 #if (NV_IS_SAFETY == 1)
4904 
4907 #endif
4908 
4928 NvSciError
4930  NvSciStreamBlock const block,
4931  NvSciStreamPacket const handle,
4932  uint32_t const queryBlockIndex,
4933  uint32_t const elemIndex,
4934  NvSciSyncFence* const prefence,
4935  uint32_t* const crc);
4936 
4950 #if (defined(NV_QNX))
4951 /*
4952  * - ::NvSciError_InvalidState API is called in runtime state.
4953  */
4954 #endif
4955 /*
4956  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
4957  * - ::NvSciError_NotSupported Operation not supported on the block referenced
4958  * by @a consumer. Only supported on consumer block.
4959  * - ::NvSciError_BadAddress @a index is NULL.
4960  * - ::NvSciError_StreamNotConnected Stream is not fully connected, which means
4961  * NvSciStreamEventType_Connected is not yet queried by the application
4962  * by calling NvSciStreamBlockEventQuery() or NvSciStreamEventType_Disconnect
4963  * is posted.
4964  */
4965 #if (NV_IS_SAFETY == 1)
4966 
4969 #endif
4970 
4991 NvSciError
4993  NvSciStreamBlock const consumer,
4994  uint32_t* const index);
4995 
5013 #if (defined(NV_QNX))
5014 /*
5015  * - API is called in runtime state
5016  */
5017 #endif
5018 /*
5019  * - An NvSciStream API has already been called on the block referenced
5020  * by @a block.
5021  * - ::NvSciError_StreamBadBlock Block referenced by @a block is invalid.
5022  * - ::NvSciError_NotSupported Operation not supported on the block referenced
5023  * by @a block. Only supported on ipcsrc and ipcdst block.
5024  */
5025 #if (NV_IS_SAFETY == 1)
5026 
5029 #endif
5030 
5056 NvSciError
5058  NvSciStreamBlock const block);
5059 
5060 #ifdef __cplusplus
5061 }
5062 #endif
5063 
5065 #endif /* NVSCISTREAM_API_H */
NvSciStreamBlockElementSignalObjSet
NvSciError NvSciStreamBlockElementSignalObjSet(NvSciStreamBlock const block, uint32_t const elemIndex, NvSciSyncObj const signalSyncObj)
Specifies block's NvSciSync object used to signal when it is done writing or reading a buffer referen...
NvSciError
NvSciError
Return/error codes for all NvSci functions.
Definition: nvscierror.h:45
NvSciSyncObj
struct NvSciSyncObjRec * NvSciSyncObj
Definition: wfdext.h:86
nvscievent.h
NVIDIA Software Communications Interface (SCI) : NvSci Event Service
NvSciStreamPoolPacketDelete
NvSciError NvSciStreamPoolPacketDelete(NvSciStreamBlock const pool, NvSciStreamPacket const handle)
Removes a packet referenced by the given NvSciStreamPacket from the pool block referenced by the give...
NvSciStreamBlockPacketFenceGetWithCrc
NvSciError NvSciStreamBlockPacketFenceGetWithCrc(NvSciStreamBlock const block, NvSciStreamPacket const handle, uint32_t const queryBlockIndex, uint32_t const elemIndex, NvSciSyncFence *const prefence, uint32_t *const crc)
Retrieves the prefence which indicates when the the indexed opposing endpoint will be done operating ...
NvSciStreamPoolPacketCreate
NvSciError NvSciStreamPoolPacketCreate(NvSciStreamBlock const pool, NvSciStreamCookie const cookie, NvSciStreamPacket *const handle)
Creates a new packet and adds it to the pool block referenced by the given NvSciStreamBlock,...
NvSciStreamBlockPacketNewHandleGet
NvSciError NvSciStreamBlockPacketNewHandleGet(NvSciStreamBlock const block, NvSciStreamPacket *const handle)
In producer and consumer blocks, queries the handle of a newly defined packet.
NvSciStreamConsumerIndexGet
NvSciError NvSciStreamConsumerIndexGet(NvSciStreamBlock const consumer, uint32_t *const index)
Queries the index of the consumer block referenced by the given NvSciStreamBlock.
NvSciStreamConsumerPacketRelease
NvSciError NvSciStreamConsumerPacketRelease(NvSciStreamBlock const consumer, NvSciStreamPacket const handle)
Instructs the consumer referenced by consumer to release the packet referenced by handle into the str...
NvSciStreamBlock
uintptr_t NvSciStreamBlock
Handle to a block.
Definition: nvscistream_types.h:84
NvSciStreamIpcSrcCreate
NvSciError NvSciStreamIpcSrcCreate(NvSciIpcEndpoint const ipcEndpoint, NvSciSyncModule const syncModule, NvSciBufModule const bufModule, NvSciStreamBlock *const ipc)
Creates an instance of IpcSrc block and returns a NvSciStreamBlock referencing the created IpcSrc blo...
NvSciStreamBlockUserInfoGet
NvSciError NvSciStreamBlockUserInfoGet(NvSciStreamBlock const block, NvSciStreamBlockType const queryBlockType, uint32_t const queryBlockIndex, uint32_t const userType, uint32_t *const dataSize, void *const data)
Queries the user-defined information with userType in list of endpoint information at the block from ...
NvSciStreamBlockElementWaiterAttrSet
NvSciError NvSciStreamBlockElementWaiterAttrSet(NvSciStreamBlock const block, uint32_t const elemIndex, NvSciSyncAttrList const waitSyncAttrList)
Specifies block's NvSciSync requirements to be able to wait for sync objects provided by the opposing...
NvSciStreamBlockElementSignalObjSetWithCrc
NvSciError NvSciStreamBlockElementSignalObjSetWithCrc(NvSciStreamBlock const block, uint32_t const elemIndex, NvSciSyncObj const signalSyncObj, uint32_t *const crc)
Specifies block's NvSciSync object used to signal when it is done writing or reading a buffer referen...
NvSciStreamPoolPacketComplete
NvSciError NvSciStreamPoolPacketComplete(NvSciStreamBlock const pool, NvSciStreamPacket const handle)
Marks a packet as complete and sends it to the rest of the stream.
NvSciStreamAttributeQuery
NvSciError NvSciStreamAttributeQuery(NvSciStreamQueryableAttrib const attr, int32_t *const value)
Queries the value of one of the NvSciStreamQueryableAttrib.
NvSciStreamBlockEventQuery
NvSciError NvSciStreamBlockEventQuery(NvSciStreamBlock const block, int64_t const timeoutUsec, NvSciStreamEventType *const event)
Queries for the next event from block referenced by the given NvSciStreamBlock, optionally waiting wh...
NvSciStreamProducerPacketGet
NvSciError NvSciStreamProducerPacketGet(NvSciStreamBlock const producer, NvSciStreamCookie *const cookie)
Instructs the producer referenced by producer to retrieve a packet from the pool.
NvSciStreamBlockEventServiceSetup
NvSciError NvSciStreamBlockEventServiceSetup(NvSciStreamBlock const block, NvSciEventService *const eventService, NvSciEventNotifier **const eventNotifier)
Sets up the NvSciEventService on a block referenced by the given NvSciStreamBlock by creating an NvSc...
NvSciStreamPoolPacketInsertBufferWithCrc
NvSciError NvSciStreamPoolPacketInsertBufferWithCrc(NvSciStreamBlock const pool, NvSciStreamPacket const handle, uint32_t const index, NvSciBufObj const bufObj, uint32_t *const crc)
Registers an NvSciBufObj as the indexed element of the referenced NvSciStreamPacket owned by the pool...
NvSciStreamPacketSendSync
NvSciError NvSciStreamPacketSendSync(NvSciStreamBlock const block)
Enables the synchronous payload transfer during runtime.
NvSciStreamBlockElementAttrGet
NvSciError NvSciStreamBlockElementAttrGet(NvSciStreamBlock const block, NvSciStreamBlockType const queryBlockType, uint32_t const elemIndex, uint32_t *const userType, NvSciBufAttrList *const bufAttrList)
Queries the user-defined type and/or buffer attribute list for an entry, referenced by elemIndex,...
NvSciStreamBlockUserInfoGetWithCrc
NvSciError NvSciStreamBlockUserInfoGetWithCrc(NvSciStreamBlock const block, NvSciStreamBlockType const queryBlockType, uint32_t const queryBlockIndex, uint32_t const userType, uint32_t *const dataSize, void *const data, uint32_t *const crc)
Queries the user-defined information with userType in list of endpoint information at the block from ...
NvSciStreamLimiterCreate
NvSciError NvSciStreamLimiterCreate(uint32_t const maxPackets, NvSciStreamBlock *const limiter)
Creates an instance of Limiter block and returns a NvSciStreamBlock referencing the created Limiter b...
bufObj
const WFDPipeline NvSciBufObj *const bufObj
Definition: wfdext.h:82
NvSciStreamBlockConsumerCountGet
NvSciError NvSciStreamBlockConsumerCountGet(NvSciStreamBlock const block, uint32_t *const numConsumers)
Queries the number of consumers downstream of the block referenced by the given NvSciStreamBlock (or ...
NvSciStreamConsumerPacketAcquire
NvSciError NvSciStreamConsumerPacketAcquire(NvSciStreamBlock const consumer, NvSciStreamCookie *const cookie)
Instructs the consumer referenced by consumer to retrieve a packet from the queue.
NvSciStreamFifoQueueCreate
NvSciError NvSciStreamFifoQueueCreate(NvSciStreamBlock *const queue)
Creates an instance of FIFO queue block and returns a NvSciStreamBlock referencing the created FIFO q...
NvSciStreamProducerCreate
NvSciError NvSciStreamProducerCreate(NvSciStreamBlock const pool, NvSciStreamBlock *const producer)
Creates an instance of producer block, associates the given pool referenced by the given NvSciStreamB...
NvSciStreamReturnSyncCreate
NvSciError NvSciStreamReturnSyncCreate(NvSciSyncModule const syncModule, NvSciStreamBlock *const returnSync)
Creates an instance of ReturnSync block and returns a NvSciStreamBlock referencing the created Return...
NvSciStreamStaticPoolCreate
NvSciError NvSciStreamStaticPoolCreate(uint32_t const numPackets, NvSciStreamBlock *const pool)
Creates an instance of static pool block and returns a NvSciStreamBlock referencing the created pool ...
NvSciStreamBlockDisconnect
NvSciError NvSciStreamBlockDisconnect(NvSciStreamBlock const block)
Disconnects an IpcSrc block referenced by the given NvSciStreamBlock during streaming phase.
NvSciEventNotifier
An abstract interface to notify event to event consumer and to register event handler of the event co...
Definition: nvscievent.h:424
event
CK_NOTIFICATION event
Definition: pkcs11t.h:1332
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
Definition: wfdext.h:71
NvSciBufAttrList
struct NvSciBufAttrListRec * NvSciBufAttrList
Definition: wfdext.h:73
NvSciStreamBlockPacketBufferGet
NvSciError NvSciStreamBlockPacketBufferGet(NvSciStreamBlock const block, NvSciStreamPacket const handle, uint32_t const elemIndex, NvSciBufObj *const bufObj)
In producer and consumer blocks, queries an indexed buffer from a packet.
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
NvSciStreamQueryableAttrib
NvSciStreamQueryableAttrib
Defines NvSciStream attributes that are queryable.
Definition: nvscistream_types.h:185
handle
const WFDCommitType const WFDHandle handle
Definition: wfdext.h:124
NvSciStreamBlockSetupStatusSet
NvSciError NvSciStreamBlockSetupStatusSet(NvSciStreamBlock const block, NvSciStreamSetup const setupType, bool const completed)
Indicates a group of setup operations identified by setupType on block are complete.
NvSciStreamBlockElementAttrGetWithCrc
NvSciError NvSciStreamBlockElementAttrGetWithCrc(NvSciStreamBlock const block, NvSciStreamBlockType const queryBlockType, uint32_t const elemIndex, uint32_t *const userType, NvSciBufAttrList *const bufAttrList, uint32_t *const crc)
Queries the user-defined type and/or buffer attribute list for an entry, referenced by elemIndex,...
NvSciStreamBlockPacketFenceSet
NvSciError NvSciStreamBlockPacketFenceSet(NvSciStreamBlock const block, NvSciStreamPacket const handle, uint32_t const elemIndex, NvSciSyncFence const *const postfence)
Sets the postfence which indicates when the application controlling will be done operating on the ind...
NvSciStreamBlockHandleInternalEvents
NvSciError NvSciStreamBlockHandleInternalEvents(NvSciStreamBlock const block)
Handle NvSciStream internal events on a block referenced by the given NvSciStreamBlock.
NvSciStreamBlockInternalEventServiceSetup
NvSciError NvSciStreamBlockInternalEventServiceSetup(NvSciStreamBlock const block, NvSciEventService *const eventService, uint32_t *const notifierCount, NvSciEventNotifier **const eventNotifierArray)
Configures a block referenced by the given NvSciStreamBlock to use the user-provided NvSciEventServic...
NvSciStreamMulticastCreate
NvSciError NvSciStreamMulticastCreate(uint32_t const outputCount, NvSciStreamBlock *const multicast)
Creates an instance of multicast block and returns a NvSciStreamBlock referencing the created multica...
NvSciStreamIpcSrcCreate2
NvSciError NvSciStreamIpcSrcCreate2(NvSciIpcEndpoint const ipcEndpoint, NvSciSyncModule const syncModule, NvSciBufModule const bufModule, NvSciStreamBlock const queue, NvSciStreamBlock *const ipc)
Creates an instance of IpcSrc or C2CSrc block and returns a NvSciStreamBlock referencing the created ...
NvSciStreamSetup
NvSciStreamSetup
Setup information will be broken into several distinct groups, ! with restrictions on when they can b...
Definition: nvscistream_types.h:214
NvSciStreamBlockElementSignalObjGetWithCrc
NvSciError NvSciStreamBlockElementSignalObjGetWithCrc(NvSciStreamBlock const block, uint32_t const queryBlockIndex, uint32_t const elemIndex, NvSciSyncObj *const signalSyncObj, uint32_t *const crc)
Retrieves an opposing endpoint's NvSciSync object which it uses to signal when it is done writing or ...
NvSciStreamNewConsumerGet
NvSciError NvSciStreamNewConsumerGet(NvSciStreamBlock const producer, uint32_t const consumerIndex, bool *const newConnected)
Queries whether the indexed consumer is a newly connected consumer.
nvsciipc.h
NVIDIA Software Communications Interface (SCI) : NvSci Inter-Process Communication
NvSciStreamBlockPacketStatusSet
NvSciError NvSciStreamBlockPacketStatusSet(NvSciStreamBlock const block, NvSciStreamPacket const handle, NvSciStreamCookie const cookie, NvSciError const status)
In producer and consumer blocks, either accepts a packet, providing a cookie to be used in subsequent...
NvSciStreamBlockUserInfoSetWithCrc
NvSciError NvSciStreamBlockUserInfoSetWithCrc(NvSciStreamBlock const block, uint32_t const userType, uint32_t const dataSize, void const *const data, uint32_t *const crc)
Provides user-defined information at the producer and consumer with the specified userType,...
NvSciStreamCookie
uintptr_t NvSciStreamCookie
Application assigned cookie for a NvSciStreamPacket.
Definition: nvscistream_types.h:102
NvSciIpcEndpoint
uint64_t NvSciIpcEndpoint
Handle to the NvSciIpc endpoint.
Definition: nvsciipc.h:304
NvSciStreamBlockElementCountGet
NvSciError NvSciStreamBlockElementCountGet(NvSciStreamBlock const block, NvSciStreamBlockType const queryBlockType, uint32_t *const numElements)
Queries the number of elements received at the block from the source identified by queryBlockType.
nvscistream_types.h
NVIDIA Software Communications Interface (SCI) : NvSciStream
NvSciStreamProducerPacketPresent
NvSciError NvSciStreamProducerPacketPresent(NvSciStreamBlock const producer, NvSciStreamPacket const handle)
Instructs the producer referenced by producer to insert the packet referenced by handle into the stre...
NvSciStreamBlockPacketFenceSetWithCrc
NvSciError NvSciStreamBlockPacketFenceSetWithCrc(NvSciStreamBlock const block, NvSciStreamPacket const handle, uint32_t const elemIndex, NvSciSyncFence const *const postfence, uint32_t *const crc)
Sets the postfence which indicates when the application controlling will be done operating on the ind...
NvSciStreamBlockElementWaiterAttrGet
NvSciError NvSciStreamBlockElementWaiterAttrGet(NvSciStreamBlock const block, uint32_t const elemIndex, NvSciSyncAttrList *const waitSyncAttrList)
Retrieves the opposing endpoints' NvSciSync requirements to be be able to wait for sync objects signa...
NvSciStreamBlockPacketFenceGet
NvSciError NvSciStreamBlockPacketFenceGet(NvSciStreamBlock const block, NvSciStreamPacket const handle, uint32_t const queryBlockIndex, uint32_t const elemIndex, NvSciSyncFence *const prefence)
Retrieves the prefence which indicates when the the indexed opposing endpoint will be done operating ...
NvSciStreamPacket
uintptr_t NvSciStreamPacket
NvSciStream assigned handle for a packet.
Definition: nvscistream_types.h:97
NvSciBufModule
struct NvSciBufModuleRec * NvSciBufModule
top-level container for the following set of resources: NvSciBufAttrLists, memory objects,...
Definition: nvscibuf.h:3484
NvSciStreamBlockElementAttrSet
NvSciError NvSciStreamBlockElementAttrSet(NvSciStreamBlock const block, uint32_t const userType, NvSciBufAttrList const bufAttrList)
Adds an element with the specified userType and bufAttrList to the list of elements defined by block.
NvSciStreamPresentSyncCreate
NvSciError NvSciStreamPresentSyncCreate(NvSciSyncModule const syncModule, NvSciStreamBlock *const presentSync)
Creates an instance of PresentSync block and returns a NvSciStreamBlock referencing the created Prese...
NvSciStreamIpcDstCreate
NvSciError NvSciStreamIpcDstCreate(NvSciIpcEndpoint const ipcEndpoint, NvSciSyncModule const syncModule, NvSciBufModule const bufModule, NvSciStreamBlock *const ipc)
Creates an instance of IpcDst block and returns a NvSciStreamBlock referencing the created IpcDst blo...
NvSciStreamMailboxQueueCreate
NvSciError NvSciStreamMailboxQueueCreate(NvSciStreamBlock *const queue)
Creates an instance of mailbox queue block and returns a NvSciStreamBlock referencing the created mai...
NvSciStreamBlockElementSignalObjGet
NvSciError NvSciStreamBlockElementSignalObjGet(NvSciStreamBlock const block, uint32_t const queryBlockIndex, uint32_t const elemIndex, NvSciSyncObj *const signalSyncObj)
Retrieves an opposing endpoint's NvSciSync object which it uses to signal when it is done writing or ...
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:256
NvSciStreamPoolPacketStatusValueGet
NvSciError NvSciStreamPoolPacketStatusValueGet(NvSciStreamBlock const pool, NvSciStreamPacket const handle, NvSciStreamBlockType const queryBlockType, uint32_t const queryBlockIndex, NvSciError *const status)
In pool, queries the status value for a given packet returned by a specified endpoint.
NvSciStreamBlockElementAttrSetWithCrc
NvSciError NvSciStreamBlockElementAttrSetWithCrc(NvSciStreamBlock const block, uint32_t const userType, NvSciBufAttrList const bufAttrList, uint32_t *const crc)
Adds an element with the specified userType and bufAttrList to the list of elements defined by block.
nvscibuf.h
NVIDIA Software Communications Interface (SCI) : NvSciBuf
NvSciStreamProducerCreate2
NvSciError NvSciStreamProducerCreate2(NvSciStreamBlock const pool, bool const crcValidate, NvSciStreamBlock *const producer)
Creates an instance of producer block, associates the given pool referenced by the given NvSciStreamB...
NvSciStreamConsumerCreate2
NvSciError NvSciStreamConsumerCreate2(NvSciStreamBlock const queue, bool const crcValidate, NvSciStreamBlock *const consumer)
Creates an instance of consumer block, associates the given queue block referenced by the given NvSci...
NvSciStreamPoolPacketStatusAcceptGet
NvSciError NvSciStreamPoolPacketStatusAcceptGet(NvSciStreamBlock const pool, NvSciStreamPacket const handle, bool *const accepted)
In pool, queries whether or not a packet has been accepted.
NvSciStreamEventType
NvSciStreamEventType
Defines event types for the blocks.
Definition: nvscistream_types.h:400
NvSciStreamBlockDelete
NvSciError NvSciStreamBlockDelete(NvSciStreamBlock const block)
Schedules a block referenced by the given NvSciStreamBlock for destruction, disconnecting the block i...
NvSciStreamBlockElementUsageSet
NvSciError NvSciStreamBlockElementUsageSet(NvSciStreamBlock const block, uint32_t const elemIndex, bool const used)
Indicates whether the entry at elemIndex in the list of allocated elements will be used by the block.
NvSciStreamBlockConnect
NvSciError NvSciStreamBlockConnect(NvSciStreamBlock const upstream, NvSciStreamBlock const downstream)
Establishes connection between two blocks referenced by the given NvSciStreamBlock(s).
NvSciStreamBlockPacketOldCookieGet
NvSciError NvSciStreamBlockPacketOldCookieGet(NvSciStreamBlock const block, NvSciStreamCookie *const cookie)
In producer and consumer blocks, queries the cookie of a recently deleted packet.
NvSciStreamBlockPacketBufferGetWithCrc
NvSciError NvSciStreamBlockPacketBufferGetWithCrc(NvSciStreamBlock const block, NvSciStreamPacket const handle, uint32_t const elemIndex, NvSciBufObj *const bufObj, size_t const crcCount, uint32_t *const crc)
In producer and consumer blocks, queries an indexed buffer from a packet.
NvSciSyncAttrList
struct NvSciSyncAttrListRec * NvSciSyncAttrList
Definition: wfdext.h:88
NvSciSyncModule
struct NvSciSyncModuleRec * NvSciSyncModule
Represents an instance of the NvSciSyncModule.
Definition: nvscisync.h:211
nvscierror.h
NvSciStreamBlockErrorGet
NvSciError NvSciStreamBlockErrorGet(NvSciStreamBlock const block, NvSciError *const status)
Queries the error code for an error event.
NvSciStreamIpcDstCreate2
NvSciError NvSciStreamIpcDstCreate2(NvSciIpcEndpoint const ipcEndpoint, NvSciSyncModule const syncModule, NvSciBufModule const bufModule, NvSciStreamBlock const pool, NvSciStreamBlock *const ipc)
Creates an instance of IpcDst or C2CDst block and returns a NvSciStreamBlock referencing the created ...
NvSciStreamConsumerCreate
NvSciError NvSciStreamConsumerCreate(NvSciStreamBlock const queue, NvSciStreamBlock *const consumer)
Creates an instance of consumer block, associates the given queue block referenced by the given NvSci...
NvSciStreamPoolPacketInsertBuffer
NvSciError NvSciStreamPoolPacketInsertBuffer(NvSciStreamBlock const pool, NvSciStreamPacket const handle, uint32_t const index, NvSciBufObj const bufObj)
Registers an NvSciBufObj as the indexed element of the referenced NvSciStreamPacket owned by the pool...
NvSciStreamBlockType
NvSciStreamBlockType
Most queries on one block request information received from ! another block.
Definition: nvscistream_types.h:198
NvSciStreamBlockElementNotVisible
NvSciError NvSciStreamBlockElementNotVisible(NvSciStreamBlock const pool, uint32_t const userType, uint32_t const consumerIndex)
Indicates the entry with userType in the list of allocated elements will NOT be visible to the consum...
NvSciStreamBlockUserInfoSet
NvSciError NvSciStreamBlockUserInfoSet(NvSciStreamBlock const block, uint32_t const userType, uint32_t const dataSize, void const *const data)
Provides user-defined information at the producer and consumer with the specified userType,...
NvSciEventService
An abstract interface for a program's event handling infrastructure.
Definition: nvscievent.h:270