epicsShareFunc int asynOctetDisconnect(const char *entry) { asynIOPvt *pPvt; asynUser *pasynUser; asynStatus status; GPHENTRY *hashEntry; /* Create hash table if it does not exist */ if (asynHash == NULL) gphInitPvt(&asynHash, 256); if(entry==0) { printf("device name not specified\n"); return -1; } hashEntry = gphFind(asynHash, entry, NULL); if (hashEntry == NULL) { printf("device name not found\n"); return -1; } pPvt = (asynIOPvt *)hashEntry->userPvt; pasynUser = pPvt->pasynUser; status = pasynOctetSyncIO->disconnect(pasynUser); if (status) { printf("disconnect failed %s\n",pasynUser->errorMessage); return(-1); } gphDelete(asynHash,entry,NULL); free(pPvt->write_buffer); free(pPvt->read_buffer); free(pPvt); return(0); }
static asynIOPvt* asynFindEntry(const char *name) { GPHENTRY *hashEntry; /* Create hash table if it does not exist */ if (asynHash == NULL) gphInitPvt(&asynHash, 256); if(name==0) return NULL; hashEntry = gphFind(asynHash, name, NULL); if (hashEntry == NULL) return (NULL); return((asynIOPvt *)hashEntry->userPvt); }
SymTable sym_table_create(void) { SymTable st; gphInitPvt(&st.table, 256); return st; }
static void registryInit(int tableSize) { if(tableSize==0) tableSize = DEFAULT_TABLE_SIZE; gphInitPvt(&gphPvt,tableSize); if(!gphPvt) cantProceed("registry why did gphInitPvt fail\n"); }