/* * Class: org_jlab_coda_et_EtJniAccess * Method: closeLocalEtSystem * Signature: (J)V */ JNIEXPORT void JNICALL Java_org_jlab_coda_et_EtJniAccess_closeLocalEtSystem (JNIEnv *env, jobject thisObj, jlong etId) { et_close((et_sys_id)etId); }
/* ET Initialization */ int mon_et_initialize(void) { et_statconfig sconfig; et_openconfig openconfig; int status; struct timespec timeout; timeout.tv_sec = 2; timeout.tv_nsec = 0; /* Normally, initialization is done only once. However, if the ET * system dies and is restarted, and we're running on a Linux or * Linux-like operating system, then we need to re-initalize in * order to reestablish the tcp connection for communication etc. * Thus, we must undo some of the previous initialization before * we do it again. */ if(et_init > 0) { /* unmap shared mem, detach attachment, close socket, free et_sys */ et_forcedclose(et_sys); } printf("mon_et_initialize: start ET stuff\n"); if(et_open_config_init(&openconfig) != ET_OK) { printf("ERROR: mon ET init: cannot allocate mem to open ET system\n"); return MON_ERROR; } et_open_config_setwait(openconfig, ET_OPEN_WAIT); et_open_config_settimeout(openconfig, timeout); if(et_open(&et_sys, et_name, openconfig) != ET_OK) { printf("ERROR: mon ET init: cannot open ET system\n"); return MON_ERROR; } et_open_config_destroy(openconfig); /* set level of debug output */ et_system_setdebug(et_sys, ET_DEBUG_ERROR); /* where am I relative to the ET system? */ et_system_getlocality(et_sys, &et_locality); et_station_config_init(&sconfig); et_station_config_setselect(sconfig, ET_STATION_SELECT_ALL); et_station_config_setblock(sconfig, ET_STATION_BLOCKING); et_station_config_setuser(sconfig, ET_STATION_USER_MULTI); et_station_config_setrestore(sconfig, ET_STATION_RESTORE_OUT); et_station_config_setprescale(sconfig,1); if((status = et_station_create(et_sys, &et_statid, "TAPE", sconfig)) < 0) { if (status == ET_ERROR_EXISTS) { printf("mon ET init: station exists, will attach\n"); } else { et_close(et_sys); et_station_config_destroy(sconfig); printf("ERROR: mon ET init: cannot create ET station (status = %d)\n", status); return(MON_ERROR); } } et_station_config_destroy(sconfig); if (et_station_attach(et_sys, et_statid, &et_attach) != ET_OK) { et_close(et_sys); printf("ERROR: mon ET init: cannot attach to ET station\n"); return MON_ERROR; } et_init++; et_reinit = 0; printf("mon ET init: ET fully initialized\n"); return MON_OK; }