int init () { printf("Opening Voice/Analog Resource: %s ",dxDev); if ((dx = dx_open(dxDev,0)) == -1) { printf("failed\n"); return -1; } printf("handle: %d\n",dx); printf("Opening MSI Resource: %s ",msiDev); if ((msi = ms_open(msiDev,0)) == -1) { printf("failed\n"); return -1; } printf("handle: %d\n",msi); dxTs.sc_numts = 1; dxTs.sc_tsarrayp = &dxTsNum; msiTs.sc_numts = 1; msiTs.sc_tsarrayp = &msiTsNum; if (dx_getxmitslot(dx,&dxTs) == -1) { printf("dx_getxmitslot() failed: %s\n",ATDV_ERRMSGP(dx)); return -1; } if (ms_getxmitslot(msi,&msiTs) == -1) { printf("msi_getxmitslot() failed: %s\n",ATDV_ERRMSGP(msi)); return -1; } if (dx_listen(dx,&msiTs) == -1) { printf("dx_listen() failed: %s\n",ATDV_ERRMSGP(dx)); return -1; } if (ms_listen(msi,&dxTs) == -1) { printf("ms_listen() failed: %s\n",ATDV_ERRMSGP(msi)); return -1; } return 0; }
/** * Construct a KEY_SHARED Key from ... */ Key * acid_make_shared_key(PyObject *source, uint8_t *p, Py_ssize_t size) { if(size > KEY_MAXSIZE) { PyErr_SetString(PyExc_ValueError, "Key is too long ."); return NULL; } Key *self = PyObject_Malloc(sizeof(Key) + sizeof(SharedKeyInfo)); // TODO: relies on arch padding rules if(self) { PyObject_Init((PyObject *)self, &KeyType); if(ms_listen(source, (PyObject *) self)) { PyObject_Free(self); return NULL; } self->flags = KEY_SHARED; self->p = p; Key_SIZE(self) = size; Key_INFO(self)->source = source; Py_INCREF(source); } return self; }