/* * Get task statistic information */ SYSCALL ER _td_inf_tsk( ID tskid, TD_ITSK *pk_itsk, BOOL clr ) { TD_ITSK_U litsk; ER ercd; ercd = _td_inf_tsk_u(tskid, &litsk, clr); pk_itsk->stime = to_msec(litsk.stime_u); pk_itsk->utime = to_msec(litsk.utime_u); return ercd; }
static ssize_t omap_pm_clock_bail_stat_show(struct kset *subsys, char *buf) { int i; int len; int idx; int n = 0; len = sprintf(buf, "Time Total Sleep ms/%% Wake ms/%% WUp Condition\n"); buf += len; n += len; len = sprintf(buf, "==========================================================================\n"); buf += len; n += len; idx = (cbt_idx +1) % CLOCK_BAIL_TRACE_MAX; for (i = 0; i < CLOCK_BAIL_TRACE_MAX; i++) { u32 total_ms; u32 sleep_ms; u32 sleep_perc; if (!cbt_list[idx].desc) { idx = (idx +1) % CLOCK_BAIL_TRACE_MAX; continue; } total_ms = to_msec(cbt_list[idx].total_residency); sleep_ms = to_msec(cbt_list[idx].sleep_residency); if (total_ms) sleep_perc = (sleep_ms * 100) / total_ms; else sleep_perc = 0; len = sprintf(buf, "%6u %5u %5u %3u%% %5u %3u%% %3u %s %08x\n", to_msec(cbt_list[idx].first_entry) % 1000000, total_ms, sleep_ms, sleep_perc, to_msec(cbt_list[idx].wake_residency), 100 - sleep_perc, cbt_list[idx].num_wakeups, cbt_list[idx].desc, cbt_list[idx].cond); buf += len; n += len; idx = (idx +1) % CLOCK_BAIL_TRACE_MAX; /* Don't overwrite the page... */ if (n > 4000) break; } return n; }
/* * Refer task state */ SYSCALL ER _td_ref_tsk( ID tskid, TD_RTSK *pk_rtsk ) { TD_RTSK_U lrtsk; ER ercd; ercd = _td_ref_tsk_u(tskid, &lrtsk); pk_rtsk->exinf = lrtsk.exinf; pk_rtsk->tskpri = lrtsk.tskpri; pk_rtsk->tskbpri = lrtsk.tskbpri; pk_rtsk->tskstat = lrtsk.tskstat; pk_rtsk->tskwait = lrtsk.tskwait; pk_rtsk->wid = lrtsk.wid; pk_rtsk->wupcnt = lrtsk.wupcnt; pk_rtsk->suscnt = lrtsk.suscnt; pk_rtsk->slicetime = to_msec(lrtsk.slicetime_u); pk_rtsk->waitmask = lrtsk.waitmask; pk_rtsk->texmask = lrtsk.texmask; pk_rtsk->tskevent = lrtsk.tskevent; pk_rtsk->task = lrtsk.task; pk_rtsk->stksz = lrtsk.stksz; pk_rtsk->sstksz = lrtsk.sstksz; pk_rtsk->istack = lrtsk.istack; pk_rtsk->isstack = lrtsk.isstack; return ercd; }