#include #include #include #include "controller.capnp.h" #include "misc.h" #include "utils.h" #include "xce/types.h" int reset_resval(xce_val_t* val) { if (val == NULL) { return -EINVAL; } switch (val->which) { case Value_u_ivalue32: val->u.ivalue32 = 0; break; case Value_u_uvalue32: val->u.uvalue32 = 0; break; case Value_u_ivalue64: val->u.ivalue64 = 0; break; case Value_u_uvalue64: val->u.uvalue64 = 0; break; case Value_u_fvalue: val->u.fvalue = 0.0; break; case Value_u_bvalue: val->u.bvalue = 0; break; case Value_u_svalue: val->u.svalue = NULL; break; default: break; } return 1; } void free_res_account(xce_res_account_t* acct) { if (acct == NULL) { return; } FREEUP(acct->resname); FREEUP(acct); } void free_host_account(xce_host_account_t* acct) { if (acct == NULL) { return; } if (acct->accounts != NULL) { int i; for (i = 0; i < acct->naccount; i++) { free_res_account(acct->accounts[i]); } FREEUP(acct->accounts); } FREEUP(acct); } void free_job_account(xce_job_account_t* acct) { if (acct == NULL) { return; } if (acct->accounts != NULL) { int i; for (i = 0; i < acct->nhosts; i++) { free_host_account(acct->accounts[i]); } FREEUP(acct->accounts); } if (acct->accounts_shared != NULL) { int i; for (i = 0; i < acct->nres_shared; i++) { free_res_account(acct->accounts_shared[i]); } FREEUP(acct->accounts_shared); } FREEUP(acct); }