14b1a631bSDavid Hunt /* SPDX-License-Identifier: BSD-3-Clause 24b1a631bSDavid Hunt * Copyright(c) 2018 Intel Corporation 34b1a631bSDavid Hunt */ 44b1a631bSDavid Hunt 54b1a631bSDavid Hunt #ifndef OOB_MONITOR_H_ 64b1a631bSDavid Hunt #define OOB_MONITOR_H_ 74b1a631bSDavid Hunt 84b1a631bSDavid Hunt #ifdef __cplusplus 94b1a631bSDavid Hunt extern "C" { 104b1a631bSDavid Hunt #endif 114b1a631bSDavid Hunt 124b1a631bSDavid Hunt /** 134b1a631bSDavid Hunt * Setup the Branch Monitor resources required to initialize epoll. 144b1a631bSDavid Hunt * Must be called first before calling other functions. 154b1a631bSDavid Hunt * 164b1a631bSDavid Hunt * @return 174b1a631bSDavid Hunt * - 0 on success. 184b1a631bSDavid Hunt * - Negative on error. 194b1a631bSDavid Hunt */ 204b1a631bSDavid Hunt int branch_monitor_init(void); 214b1a631bSDavid Hunt 224b1a631bSDavid Hunt /** 23*23f3dac4SStephen Hemminger * Run the OOB branch monitor, loops forever on epoll_wait. 244b1a631bSDavid Hunt * 254b1a631bSDavid Hunt * 264b1a631bSDavid Hunt * @return 274b1a631bSDavid Hunt * None 284b1a631bSDavid Hunt */ 294b1a631bSDavid Hunt void run_branch_monitor(void); 304b1a631bSDavid Hunt 314b1a631bSDavid Hunt /** 324b1a631bSDavid Hunt * Exit the OOB Branch Monitor. 334b1a631bSDavid Hunt * 344b1a631bSDavid Hunt * @return 354b1a631bSDavid Hunt * None 364b1a631bSDavid Hunt */ 374b1a631bSDavid Hunt void branch_monitor_exit(void); 384b1a631bSDavid Hunt 394b1a631bSDavid Hunt /** 404b1a631bSDavid Hunt * Add a core to the list of cores to monitor. 414b1a631bSDavid Hunt * 424b1a631bSDavid Hunt * @param core 434b1a631bSDavid Hunt * Core Number 444b1a631bSDavid Hunt * 454b1a631bSDavid Hunt * @return 464b1a631bSDavid Hunt * - 0 on success. 474b1a631bSDavid Hunt * - Negative on error. 484b1a631bSDavid Hunt */ 494b1a631bSDavid Hunt int add_core_to_monitor(int core); 504b1a631bSDavid Hunt 514b1a631bSDavid Hunt /** 524b1a631bSDavid Hunt * Remove a previously added core from core list. 534b1a631bSDavid Hunt * 544b1a631bSDavid Hunt * @param core 554b1a631bSDavid Hunt * Core Number 564b1a631bSDavid Hunt * 574b1a631bSDavid Hunt * @return 584b1a631bSDavid Hunt * - 0 on success. 594b1a631bSDavid Hunt * - Negative on error. 604b1a631bSDavid Hunt */ 614b1a631bSDavid Hunt int remove_core_from_monitor(int core); 624b1a631bSDavid Hunt 634b1a631bSDavid Hunt #ifdef __cplusplus 644b1a631bSDavid Hunt } 654b1a631bSDavid Hunt #endif 664b1a631bSDavid Hunt 674b1a631bSDavid Hunt 684b1a631bSDavid Hunt #endif /* OOB_MONITOR_H_ */ 69