acrn-hypervisor/hypervisor/include/common/schedule.h
Xiangyang Wu fa26a16645 HV:treewide:rename vcpu data structure
For data structure types "struct vcpu", its name is identical
with variable name in the same scope. This is a MISRA C  violation.

Naming convention rule:If the data structure type is used by multi
modules, its corresponding logic resource is exposed to external
components (such as SOS, UOS), and its name meaning is simplistic
(such as vcpu, vm), its name needs prefix "acrn_".

The following udpates are made:
struct vcpu *vcpu-->struct acrn_vcpu *vcpu

Tracked-On: #861

Signed-off-by: Xiangyang Wu <xiangyang.wu@linux.intel.com>
2018-11-05 15:35:49 +08:00

44 lines
988 B
C

/*
* Copyright (C) 2018 Intel Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef SCHEDULE_H
#define SCHEDULE_H
#define NEED_RESCHEDULE (1U)
#define NEED_OFFLINE (2U)
struct sched_context {
spinlock_t runqueue_lock;
struct list_head runqueue;
uint64_t flags;
struct acrn_vcpu *curr_vcpu;
spinlock_t scheduler_lock;
};
void init_scheduler(void);
void get_schedule_lock(uint16_t pcpu_id);
void release_schedule_lock(uint16_t pcpu_id);
void set_pcpu_used(uint16_t pcpu_id);
uint16_t allocate_pcpu(void);
void free_pcpu(uint16_t pcpu_id);
void add_vcpu_to_runqueue(struct acrn_vcpu *vcpu);
void remove_vcpu_from_runqueue(struct acrn_vcpu *vcpu);
void default_idle(void);
void make_reschedule_request(const struct acrn_vcpu *vcpu);
int need_reschedule(uint16_t pcpu_id);
void make_pcpu_offline(uint16_t pcpu_id);
int need_offline(uint16_t pcpu_id);
void schedule(void);
void vcpu_thread(struct acrn_vcpu *vcpu);
#endif /* SCHEDULE_H */