/* signaler */
void* objAndList;
size_t objAndListSize;
NvSciError err;
err = NvSciSyncIpcExportAttrListAndObj(
syncObj, /* syncObj to be exported
(the reconciled list is inside it) */
NvSciSyncAccessPerm_WaitOnly, /* permissions we want the
receiver to have. Setting this to NvSciSyncAccessPerm_Auto allows
NvSciSync to automatically determine necessary permissions */
ipcEndpoint, /* IpcEndpoint via which the
object is to be exported */
&objAndList, /* descriptor of the object
and list to be communicated */
&objAndListSize); /* size of the descriptor */
/* send via Ipc */
NvSciSyncAttrListAndObjFreeDesc(objAndList);
/* waiter */
void* objAndList;
size_t objAndListSize;
err = NvSciSyncIpcImportAttrListAndObj(
module, /* NvSciSyncModule use to create
original unreconciled lists in the waiter */
ipcEndpoint, /* ipcEndpoint from which the
descriptor was received */
objAndList, /* the desciptor of the sync obj and
associated reconciled attribute list received from the signaler */
objAndListSize, /* size of the descriptor */
&waiterAttrList, /* the array of original unreconciled
lists prepared in the waiter */
1, /* size of the array */
NvSciSyncAccessPerm_WaitOnly, /* permissions expected by the waiter.
Setting this to NvSciSyncAccessPerm_Auto allows NvSciSync to automatically
determine necessary permissions */
10000U, /* Recommended timeout in microseconds.
Some primitives might require time to transport all needed resources. */
&syncObj); /* sync object generated from the
descriptor on the waiter's side */
/* use the sync object, perhaps export it to more peers... */
NvSciSyncObjFree(syncObj);