[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] sched.h, domain.c:
ChangeSet 1.1619.1.1, 2005/05/31 23:15:40+01:00, cl349@xxxxxxxxxxxxxxxxxxxx sched.h, domain.c: Make {exec_,}domain_{un,}pause and ..._by_systemcontroller variants non-inline. Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx> common/domain.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ include/xen/sched.h | 67 ++++------------------------------------------------ 2 files changed, 68 insertions(+), 61 deletions(-) diff -Nru a/xen/common/domain.c b/xen/common/domain.c --- a/xen/common/domain.c 2005-05-31 20:03:08 -04:00 +++ b/xen/common/domain.c 2005-05-31 20:03:08 -04:00 @@ -223,6 +223,68 @@ send_guest_virq(dom0->exec_domain[0], VIRQ_DOM_EXC); } +void exec_domain_pause(struct exec_domain *ed) +{ + ASSERT(ed != current); + atomic_inc(&ed->pausecnt); + domain_sleep(ed); + sync_lazy_execstate_cpuset(ed->domain->cpuset & (1UL << ed->processor)); +} + +void domain_pause(struct domain *d) +{ + struct exec_domain *ed; + + for_each_exec_domain( d, ed ) + { + ASSERT(ed != current); + atomic_inc(&ed->pausecnt); + domain_sleep(ed); + } + + sync_lazy_execstate_cpuset(d->cpuset); +} + +void exec_domain_unpause(struct exec_domain *ed) +{ + ASSERT(ed != current); + if ( atomic_dec_and_test(&ed->pausecnt) ) + domain_wake(ed); +} + +void domain_unpause(struct domain *d) +{ + struct exec_domain *ed; + + for_each_exec_domain( d, ed ) + exec_domain_unpause(ed); +} + +void domain_pause_by_systemcontroller(struct domain *d) +{ + struct exec_domain *ed; + + for_each_exec_domain ( d, ed ) + { + ASSERT(ed != current); + if ( !test_and_set_bit(_VCPUF_ctrl_pause, &ed->vcpu_flags) ) + domain_sleep(ed); + } + + sync_lazy_execstate_cpuset(d->cpuset); +} + +void domain_unpause_by_systemcontroller(struct domain *d) +{ + struct exec_domain *ed; + + for_each_exec_domain ( d, ed ) + { + if ( test_and_clear_bit(_VCPUF_ctrl_pause, &ed->vcpu_flags) ) + domain_wake(ed); + } +} + /* * set_info_guest is used for final setup, launching, and state modification diff -Nru a/xen/include/xen/sched.h b/xen/include/xen/sched.h --- a/xen/include/xen/sched.h 2005-05-31 20:03:08 -04:00 +++ b/xen/include/xen/sched.h 2005-05-31 20:03:08 -04:00 @@ -389,72 +389,17 @@ !(ed->domain->domain_flags & (DOMF_shutdown|DOMF_crashed)) ); } -static inline void exec_domain_pause(struct exec_domain *ed) -{ - ASSERT(ed != current); - atomic_inc(&ed->pausecnt); - domain_sleep(ed); - sync_lazy_execstate_cpuset(ed->domain->cpuset & (1UL << ed->processor)); -} - -static inline void domain_pause(struct domain *d) -{ - struct exec_domain *ed; - - for_each_exec_domain( d, ed ) - { - ASSERT(ed != current); - atomic_inc(&ed->pausecnt); - domain_sleep(ed); - } - - sync_lazy_execstate_cpuset(d->cpuset); -} - -static inline void exec_domain_unpause(struct exec_domain *ed) -{ - ASSERT(ed != current); - if ( atomic_dec_and_test(&ed->pausecnt) ) - domain_wake(ed); -} - -static inline void domain_unpause(struct domain *d) -{ - struct exec_domain *ed; - - for_each_exec_domain( d, ed ) - exec_domain_unpause(ed); -} +void exec_domain_pause(struct exec_domain *ed); +void domain_pause(struct domain *d); +void exec_domain_unpause(struct exec_domain *ed); +void domain_unpause(struct domain *d); +void domain_pause_by_systemcontroller(struct domain *d); +void domain_unpause_by_systemcontroller(struct domain *d); static inline void exec_domain_unblock(struct exec_domain *ed) { if ( test_and_clear_bit(_VCPUF_blocked, &ed->vcpu_flags) ) domain_wake(ed); -} - -static inline void domain_pause_by_systemcontroller(struct domain *d) -{ - struct exec_domain *ed; - - for_each_exec_domain ( d, ed ) - { - ASSERT(ed != current); - if ( !test_and_set_bit(_VCPUF_ctrl_pause, &ed->vcpu_flags) ) - domain_sleep(ed); - } - - sync_lazy_execstate_cpuset(d->cpuset); -} - -static inline void domain_unpause_by_systemcontroller(struct domain *d) -{ - struct exec_domain *ed; - - for_each_exec_domain ( d, ed ) - { - if ( test_and_clear_bit(_VCPUF_ctrl_pause, &ed->vcpu_flags) ) - domain_wake(ed); - } } #define IS_PRIV(_d) \ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |