1/* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2018 Intel Corporation 3 */ 4 5#ifndef OOB_MONITOR_H_ 6#define OOB_MONITOR_H_ 7 8#ifdef __cplusplus 9extern "C" { 10#endif 11 12/** 13 * Setup the Branch Monitor resources required to initialize epoll. 14 * Must be called first before calling other functions. 15 * 16 * @return 17 * - 0 on success. 18 * - Negative on error. 19 */ 20int branch_monitor_init(void); 21 22/** 23 * Run the OOB branch monitor, loops forever on on epoll_wait. 24 * 25 * 26 * @return 27 * None 28 */ 29void run_branch_monitor(void); 30 31/** 32 * Exit the OOB Branch Monitor. 33 * 34 * @return 35 * None 36 */ 37void branch_monitor_exit(void); 38 39/** 40 * Add a core to the list of cores to monitor. 41 * 42 * @param core 43 * Core Number 44 * 45 * @return 46 * - 0 on success. 47 * - Negative on error. 48 */ 49int add_core_to_monitor(int core); 50 51/** 52 * Remove a previously added core from core list. 53 * 54 * @param core 55 * Core Number 56 * 57 * @return 58 * - 0 on success. 59 * - Negative on error. 60 */ 61int remove_core_from_monitor(int core); 62 63#ifdef __cplusplus 64} 65#endif 66 67 68#endif /* OOB_MONITOR_H_ */ 69