static inline srconf* se_confmemory(se *e, seconfrt *rt, srconf **pc) { srconf *memory = *pc; srconf *p = NULL; sr_c(&p, pc, se_confv_offline, "limit", SS_U64, &e->conf.memory_limit); sr_C(&p, pc, se_confv, "used", SS_U64, &rt->memory_used, SR_RO, NULL); sr_c(&p, pc, se_confv_offline, "anticache", SS_U64, &e->conf.anticache); return sr_C(NULL, pc, NULL, "memory", SS_UNDEF, memory, SR_NS, NULL); }
void printregs() { printf("[d0]%08x [d1]%08x [d2]%08x [d3]%08x\n", shoe.d[0], shoe.d[1], shoe.d[2], shoe.d[3]); printf("[d4]%08x [d5]%08x [d6]%08x [d7]%08x\n", shoe.d[4], shoe.d[5], shoe.d[6], shoe.d[7]); printf("[a0]%08x [a1]%08x [a2]%08x [a3]%08x\n", shoe.a[0], shoe.a[1], shoe.a[2], shoe.a[3]); printf("[a4]%08x [a5]%08x [a6]%08x [a7]%08x\n", shoe.a[4], shoe.a[5], shoe.a[6], shoe.a[7]); printf("[pc]%08x [sr]%c%c%c%c%c%c%c [tc]%08x\n", shoe.pc, sr_s()?'S':'s', sr_m()?'M':'m', sr_x()?'X':'x', sr_n()?'N':'n', sr_z()?'Z':'z', sr_v()?'V':'v', sr_c()?'C':'c', shoe.tc ); printf("[vbr]%08x\n", shoe.vbr); printf("srp: "); print_mmu_rp(shoe.srp); printf("crp: "); print_mmu_rp(shoe.crp); printf("tc: e=%u sre=%u fcl=%u ps=%u is=%u (tia=%u tib=%u tic=%u tid=%u)\n", tc_enable(), tc_sre(), tc_fcl(), tc_ps(), tc_is(), tc_tia(), tc_tib(), tc_tic(), tc_tid()); printf("\n"); }
static inline int se_confsophia_error(srconf *c, srconfstmt *s) { se *e = s->ptr; char *errorp; char error[128]; error[0] = 0; int len = sr_errorcopy(&e->error, error, sizeof(error)); if (sslikely(len == 0)) errorp = NULL; else errorp = error; srconf conf = { .key = c->key, .flags = c->flags, .type = c->type, .function = NULL, .value = errorp, .ptr = NULL, .next = NULL }; return se_confv(&conf, s); } static inline srconf* se_confsophia(se *e, seconfrt *rt, srconf **pc) { srconf *sophia = *pc; srconf *p = NULL; sr_C(&p, pc, se_confv, "version", SS_STRING, rt->version, SR_RO, NULL); sr_C(&p, pc, se_confv, "version_storage", SS_STRING, rt->version_storage, SR_RO, NULL); sr_C(&p, pc, se_confv, "build", SS_STRING, rt->build, SR_RO, NULL); sr_C(&p, pc, se_confsophia_error, "error", SS_STRING, NULL, SR_RO, NULL); sr_c(&p, pc, se_confv_offline, "path", SS_STRINGPTR, &e->conf.path); sr_c(&p, pc, se_confv_offline, "path_create", SS_U32, &e->conf.path_create); sr_c(&p, pc, se_confv_offline, "recover", SS_U32, &e->conf.recover); return sr_C(NULL, pc, NULL, "sophia", SS_UNDEF, sophia, SR_NS, NULL); }