RT
if ((RT->rt_state & RS_IF)
&& RT->rt_ifp != 0
&& (RT->rt_ifp->int_state & IS_PASSIVE)
&& !(RT->rt_state & RS_MHOME))
&& !(RT->rt_state & RS_MHOME))
dst = RT->rt_dst;
if (RT->rt_state & RS_NET_SYN) {
if (RT->rt_state & RS_NET_INT) {
ntohl(dst), RT->rt_mask))
ntohl(dst), RT->rt_mask))
if (!(RT->rt_state & RS_IF)
&& RT->rt_gate != myaddr
&& RT->rt_gate != loopaddr)
nhop = RT->rt_gate;
metric = RT->rt_metric;
if (RT->rt_state & RS_MHOME) {
} else if (RT_ISHOST(RT)) {
if ((RT->rt_state & RS_LOCAL)
&& ((RT->rt_state & RS_SUBNET)
if ((RT->rt_state & RS_SUBNET)
&& (!(RT->rt_state & RS_IF)
for (rts = RT->rt_spares, i = NUM_SPARES; i != 0; i--, rts++) {
if (RT->rt_poison_time < now_expire
|| RT->rt_poison_metric >= metric
|| RT->rt_spares[1].rts_gate == 0) {
if (RT->rt_poison_metric >= metric
|| RT->rt_poison_time < now_expire) {
RT->rt_poison_time = now.tv_sec;
RT->rt_poison_metric = metric;
pref = RT->rt_poison_metric + ws.metric;
|| RT->rt_poison_time < now_garbage))
ag_check(dst, RT->rt_mask, 0, nhop, metric, pref,
RT->rt_seqno, RT->rt_tag, ags, supply_out);
if (RT->rt_state & RS_NET_SYN)
if (!(RT->rt_state & RS_IF)) {
if (RT_ISHOST(RT)
&& ntohl(RT->rt_dst) == RT->rt_gate)
if (RT->rt_ifp != 0 && (RT->rt_ifp->int_state & IS_EXTERNAL))
if (RT->rt_ifp == 0
|| (RT->rt_ifp->int_state & IS_REMOTE))
if ((RT->rt_state & RS_RDISC) && rip_sock < 0)
metric = RT->rt_metric;
ag_check(RT->rt_dst, RT->rt_mask, RT->rt_gate, 0,
rts = RT->rt_spares;
rts_delete(RT, rts);
if (RT->rt_ifp == 0 || !(RT->rt_ifp->int_state & IS_BROKE))
if (0 == (RT->rt_state & (RS_IF | RS_NET_SYN | RS_LOCAL))) {
rtbad(RT);
rtbad_sub(RT);
rts = RT->rt_spares;
if (!AGE_RT(RT->rt_state, ifp)) {
rtdelete(RT);
rts_delete(RT, rts);
if (now_stale <= RT->rt_time)
rtswitch(RT, 0);
if (now_garbage > RT->rt_time) {
rtdelete(RT);
if (now.tv_sec - RT->rt_time > EXPIRE_TIME) {
struct rt_spare new = RT->rt_spares[0];
rtchange(RT, RT->rt_state, &new, 0);
rtname(RT->rt_dst, RT->rt_mask, RT->rt_gate));
print_rts(&RT->rt_spares[0], 0,0,0,0, AGE_RT(RT->rt_state, RT->rt_ifp));
trace_bits(rs_bits, RT->rt_state, 0);
if (RT->rt_poison_time >= now_garbage
&& RT->rt_poison_metric < RT->rt_metric)
RT->rt_poison_metric, ts(RT->rt_poison_time));
rts = &RT->rt_spares[1];
RT = &efi_rtcopy;
if (RT == NULL || RT->rt_gettime == NULL) {
status = RT->rt_gettime(tm, tmcap);
if (RT == NULL || RT->rt_settime == NULL) {
status = RT->rt_settime(tm);
if (RT == NULL || RT->rt_getvar == NULL) {
status = RT->rt_getvar(name, vendor, attrib, datasize, data);
if (RT == NULL || RT->rt_scanvar == NULL) {
status = RT->rt_scanvar(namesize, name, vendor);
if (RT == NULL || RT->rt_setvar == NULL) {
status = RT->rt_setvar(name, vendor, attrib, datasize, data);
if (RT == NULL || RT->rt_reset == NULL)
if (RT->rt_reset(type, 0, 0, NULL) != 0) {
static struct efi_rt *RT;
ldw RT%func(%r1), %r1 !\
status = uefi_call_wrapper(RT->GetNextVariableName, 3,
uefi_call_wrapper(RT->GetTime, 2, &t1, NULL);
uefi_call_wrapper(RT->GetTime, 2, &t2, NULL);
uefi_call_wrapper(RT->GetTime, 2, &t, NULL);
uefi_call_wrapper(RT->ResetSystem, 4, EfiResetCold, EFI_SUCCESS,
uefi_call_wrapper(RT->ResetSystem, 4, EfiResetCold, EFI_SUCCESS, 0, NULL);
status = uefi_call_wrapper(RT->SetVirtualAddressMap, 4, nrt * descsize,
uefi_call_wrapper(RT->GetTime, 2, &t, NULL);
uefi_call_wrapper(RT->ResetSystem, 4, EfiResetCold, EFI_SUCCESS,
RT(thrd_join(*tp, &result));
RT(cnd_init(&cnd));
RT(mtx_init(&mtx, mtx_plain));
RT(mtx_lock(&mtx));
RT(cnd_timedwait(&cnd, &mtx, &t));
RT(mtx_unlock(&mtx));
RT(cnd_init(&cnd));
RT(mtx_init(&mtx, mtx_plain));
RT(mtx_lock(&mtx));
RT(cnd_wait(&cnd, &mtx));
RT(mtx_unlock(&mtx));
RT(thrd_create(&t, &emptythrd, NULL));
RT(thrd_join(t, NULL));
RT(thrd_sleep(&t, NULL));