1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
5 #ifndef CHANNEL_COMMANDS_H_
6 #define CHANNEL_COMMANDS_H_
15 /* Maximum number of channels per VM */
16 #define CHANNEL_CMDS_MAX_VM_CHANNELS 64
20 #define CPU_POWER_CONNECT 2
23 /* CPU Power Command Scaling */
24 #define CPU_POWER_SCALE_UP 1
25 #define CPU_POWER_SCALE_DOWN 2
26 #define CPU_POWER_SCALE_MAX 3
27 #define CPU_POWER_SCALE_MIN 4
28 #define CPU_POWER_ENABLE_TURBO 5
29 #define CPU_POWER_DISABLE_TURBO 6
33 #define VM_MAX_NAME_SZ 32
35 #define MAX_VCPU_PER_VM 8
37 struct t_boost_status {
41 struct timer_profile {
42 int busy_hours[HOURS];
43 int quiet_hours[HOURS];
44 int hours_to_use_traffic_profile[HOURS];
47 enum workload {HIGH, MEDIUM, LOW};
55 uint32_t min_packet_thresh;
56 uint32_t avg_max_packet_thresh;
57 uint32_t max_max_packet_thresh;
60 struct channel_packet {
61 uint64_t resource_id; /**< core_num, device */
62 uint32_t unit; /**< scale down/up/min/max */
63 uint32_t command; /**< Power, IO, etc */
64 char vm_name[VM_MAX_NAME_SZ];
66 uint64_t vfid[MAX_VFS];
67 int nb_mac_to_monitor;
68 struct traffic traffic_policy;
69 uint8_t vcpu_to_control[MAX_VCPU_PER_VM];
71 struct timer_profile timer_policy;
72 enum workload workload;
73 enum policy_to_use policy_to_use;
74 struct t_boost_status t_boost_status;
82 #endif /* CHANNEL_COMMANDS_H_ */