xref: /dpdk/examples/vm_power_manager/oob_monitor.h (revision 23f3dac43237d5de18f9544c6e3f932c70c39e27)
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