Home
last modified time | relevance | path

Searched refs:sc (Results 1 – 18 of 18) sorted by relevance

/seL4-master/src/kernel/
A Dsporadic.c72 word_t next = refill_next(sc, sc->scRefillHead); in refill_ordered()
86 #define REFILL_SANITY_START(sc) ticks_t _sum = refill_sum(sc); assert(isRoundRobin(sc) || refill_or… argument
89 assert(refill_sum(sc) == budget); assert(isRoundRobin(sc) || refill_ordered(sc)); \
124 sc->scRefillHead = refill_next(sc, sc->scRefillHead); in refill_pop_head()
128 assert(sc->scRefillHead < sc->scRefillMax); in refill_pop_head()
136 assert(refill_size(sc) < sc->scRefillMax); in refill_add_tail()
138 word_t new_tail = refill_next(sc, sc->scRefillTail); in refill_add_tail()
187 *refill_index(sc, 0) = *refill_head(sc); in refill_update()
190 sc->scRefillTail = sc->scRefillHead; in refill_update()
246 return refill_index(sc, refill_next(sc, sc->scRefillHead))->rTime <= tail; in refill_head_overlapping()
[all …]
A Dthread.c568 void postpone(sched_context_t *sc) in postpone() argument
570 tcbSchedDequeue(sc->scTcb); in postpone()
571 tcbReleaseEnqueue(sc->scTcb); in postpone()
572 NODE_STATE_ON_CORE(ksReprogram, sc->scCore) = true; in postpone()
A Dboot.c228 rootserver.sc = alloc_rootserver_obj(seL4_MinSchedContextBits, 1); in create_rootserver_objects()
507 …if (!configure_sched_context(tcb, SC_PTR(rootserver.sc), usToTicks(CONFIG_BOOT_THREAD_TIME_SLICE *… in create_initial_thread()
/seL4-master/src/object/
A Dschedcontext.c17 schedContext_unbindTCB(sc, sc->scTcb); in invokeSchedContext_UnbindObject()
156 if (sc->scTcb) { in maybeStallSC()
286 assert(!sc || sc->scTcb != NULL); in schedContext_resume()
287 if (likely(sc) && isSchedulable(sc->scTcb)) { in schedContext_resume()
288 if (!(refill_ready(sc) && refill_sufficient(sc, 0))) { in schedContext_resume()
301 sc->scTcb = tcb; in schedContext_bindTCB()
305 if (sc_sporadic(sc) && sc_active(sc) && sc != NODE_STATE(ksCurSC)) { in schedContext_bindTCB()
338 if (sc->scTcb) { in schedContext_unbindAllTCBs()
340 schedContext_unbindTCB(sc, sc->scTcb); in schedContext_unbindAllTCBs()
360 sc->scTcb = to; in schedContext_donate()
[all …]
A Dnotification.c45 sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in maybeDonateSchedContext() local
46 if (sc != NULL && sc->scTcb == NULL) { in maybeDonateSchedContext()
47 schedContext_donate(sc, tcb); in maybeDonateSchedContext()
48 schedContext_resume(sc); in maybeDonateSchedContext()
113 … sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in sendSignal() local
114 …if (tcb->tcbSchedContext == sc && sc_sporadic(sc) && tcb->tcbSchedContext != NODE_STATE(ksCurSC)) { in sendSignal()
314 sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in completeSignal() local
315 if (tcb->tcbSchedContext == sc && tcb->tcbSchedContext != NODE_STATE(ksCurSC)) { in completeSignal()
A Dobjecttype.c192 sched_context_t *sc = SC_PTR(tcb->tcbSchedContext); in finaliseCap() local
193 if (sc) { in finaliseCap()
194 schedContext_unbindTCB(sc, tcb); in finaliseCap()
195 if (sc->scYieldFrom) { in finaliseCap()
221 schedContext_unbindAllTCBs(sc); in finaliseCap()
222 schedContext_unbindNtfn(sc); in finaliseCap()
223 if (sc->scReply) { in finaliseCap()
226 sc->scReply = NULL; in finaliseCap()
228 if (sc->scYieldFrom) { in finaliseCap()
229 schedContext_completeYieldTo(sc->scYieldFrom); in finaliseCap()
[all …]
A Dtcb.c1314 sched_context_t *sc = NULL; in decodeSetSchedParams() local
1317 sc = SC_PTR(cap_sched_context_cap_get_capSCPtr(scCap)); in decodeSetSchedParams()
1323 if (sc->scTcb) { in decodeSetSchedParams()
1328 if (isBlocked(tcb) && !sc_released(sc)) { in decodeSetSchedParams()
1361 sc, in decodeSetSchedParams()
1831 sched_context_t *sc, in invokeTCB_ThreadControlSched() argument
1851 if (sc != NULL && sc != target->tcbSchedContext) { in invokeTCB_ThreadControlSched()
1852 schedContext_bindTCB(sc, target); in invokeTCB_ThreadControlSched()
1853 } else if (sc == NULL && target->tcbSchedContext != NULL) { in invokeTCB_ThreadControlSched()
/seL4-master/include/kernel/
A Dsporadic.h58 return refill_index(sc, sc->scRefillHead); in refill_head()
62 return refill_index(sc, sc->scRefillTail); in refill_tail()
81 if (sc->scRefillHead <= sc->scRefillTail) { in refill_size()
82 return (sc->scRefillTail - sc->scRefillHead + 1u); in refill_size()
84 return sc->scRefillTail + 1u + (sc->scRefillMax - sc->scRefillHead); in refill_size()
91 return refill_size(sc) == sc->scRefillMax; in refill_full()
97 return sc->scRefillHead == sc->scRefillTail; in refill_single()
137 return sc->scRefillMax > 0; in sc_active()
146 if (sc_active(sc)) { in sc_released()
162 return sc != NULL && sc_active(sc) && sc->scSporadic; in sc_sporadic()
[all …]
A Dthread.h113 static inline bool_t PURE isRoundRobin(sched_context_t *sc) in isRoundRobin() argument
115 return sc->scPeriod == 0; in isRoundRobin()
302 void postpone(sched_context_t *sc);
A Dboot.h107 pptr_t sc; member
/seL4-master/include/object/
A Dschedcontext.h24 void schedContext_bindTCB(sched_context_t *sc, tcb_t *tcb);
36 void schedContext_unbindTCB(sched_context_t *sc, tcb_t *tcb);
45 void schedContext_unbindAllTCBs(sched_context_t *sc);
54 void schedContext_resume(sched_context_t *sc);
62 void schedContext_donate(sched_context_t *sc, tcb_t *to);
65 void schedContext_bindNtfn(sched_context_t *sc, notification_t *ntfn);
67 void schedContext_unbindNtfn(sched_context_t *sc);
69 time_t schedContext_updateConsumed(sched_context_t *sc);
A Dnotification.h26 sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in maybeReturnSchedContext() local
27 if (sc != NULL && sc == tcb->tcbSchedContext) { in maybeReturnSchedContext()
29 sc->scTcb = NULL; in maybeReturnSchedContext()
A Dtcb.h197 sched_context_t *sc,
/seL4-master/src/machine/
A Dcapdl.c110 #define REFILL_INDEX(sc, index) (((refill_t *) (SC_REF(sc) + sizeof(sched_context_t)))[index]) argument
111 #define REFILL_HEAD(sc) REFILL_INDEX((sc), (sc)->scRefillHead) argument
113 static inline ticks_t sc_get_budget(sched_context_t *sc) in sc_get_budget() argument
115 ticks_t sum = REFILL_HEAD(sc).rAmount; in sc_get_budget()
116 word_t current = sc->scRefillHead; in sc_get_budget()
118 while (current != sc->scRefillTail) { in sc_get_budget()
119 current = ((current == sc->scRefillMax - 1u) ? (0) : current + 1u); in sc_get_budget()
120 sum += REFILL_INDEX(sc, current).rAmount; in sc_get_budget()
128 sched_context_t *sc = SC_PTR(cap_sched_context_cap_get_capSCPtr(sc_cap)); in obj_sc_print_attrs() local
130 (long unsigned int)ticksToUs(sc->scPeriod), in obj_sc_print_attrs()
[all …]
/seL4-master/src/fastpath/
A Dfastpath.c182 sched_context_t *sc = NODE_STATE(ksCurThread)->tcbSchedContext; in fastpath_call() local
183 sc->scTcb = dest; in fastpath_call()
184 dest->tcbSchedContext = sc; in fastpath_call()
187 reply_t *old_caller = sc->scReply; in fastpath_call()
188 reply->replyPrev = call_stack_new(REPLY_REF(sc->scReply), false); in fastpath_call()
192 reply->replyNext = call_stack_new(SC_REF(sc), true); in fastpath_call()
193 sc->scReply = reply; in fastpath_call()
455 caller->tcbSchedContext = sc; in fastpath_reply_recv()
456 sc->scTcb = caller; in fastpath_reply_recv()
458 sc->scReply = REPLY_PTR(prev_ptr); in fastpath_reply_recv()
[all …]
/seL4-master/include/machine/
A Dcapdl.h33 void obj_sc_print_attrs(cap_t sc);
/seL4-master/tools/dts/
A Dtqma8xqp1gb.dts341 compatible = "fsl,imx8qxp-sc-rtc";
345 compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt";
350 compatible = "fsl,imx8qxp-sc-thermal";
436 sc-powerkey {
904 fsl,sc-resource = <0x13>;
916 fsl,sc-resource = <0x14>;
928 fsl,sc-resource = <0x1e>;
940 fsl,sc-resource = <0x1c>;
952 fsl,sc-resource = <0x1d>;
964 fsl,sc-resource = <0x19>;
A DallwinnerA20.dts254 compatible = "allwinner,sun7i-a20-sc-nmi";

Completed in 34 milliseconds