15af785ecSfengbojiang(姜凤波) /* 2*d30ea906Sjfb8856606 * SPDX-License-Identifier: BSD-3-Clause 3*d30ea906Sjfb8856606 * Copyright 2015 Intel Corporation. 4*d30ea906Sjfb8856606 * Copyright 2012 Hasan Alayli <[email protected]> 55af785ecSfengbojiang(姜凤波) */ 6a9643ea8Slogwang #ifndef LTHREAD_H_ 7a9643ea8Slogwang #define LTHREAD_H_ 8a9643ea8Slogwang 92bfe3f2eSlogwang #ifdef __cplusplus 102bfe3f2eSlogwang extern "C" { 112bfe3f2eSlogwang #endif 122bfe3f2eSlogwang 13a9643ea8Slogwang #include <rte_per_lcore.h> 14a9643ea8Slogwang 15a9643ea8Slogwang #include "lthread_api.h" 16a9643ea8Slogwang #include "lthread_diag.h" 17a9643ea8Slogwang 18a9643ea8Slogwang struct lthread; 19a9643ea8Slogwang struct lthread_sched; 20a9643ea8Slogwang 21a9643ea8Slogwang /* function to be called when a context function returns */ 22a9643ea8Slogwang typedef void (*lthread_exit_func) (struct lthread *); 23a9643ea8Slogwang 24a9643ea8Slogwang void _lthread_exit_handler(struct lthread *lt); 25a9643ea8Slogwang 26a9643ea8Slogwang void lthread_set_funcname(const char *f); 27a9643ea8Slogwang 28a9643ea8Slogwang void _lthread_sched_busy_sleep(struct lthread *lt, uint64_t nsecs); 29a9643ea8Slogwang 30a9643ea8Slogwang int _lthread_desched_sleep(struct lthread *lt); 31a9643ea8Slogwang 32a9643ea8Slogwang void _lthread_free(struct lthread *lt); 33a9643ea8Slogwang 342bfe3f2eSlogwang struct lthread_sched *_lthread_sched_get(unsigned int lcore_id); 35a9643ea8Slogwang 36a9643ea8Slogwang struct lthread_stack *_stack_alloc(void); 37a9643ea8Slogwang 38a9643ea8Slogwang struct 39a9643ea8Slogwang lthread_sched *_lthread_sched_create(size_t stack_size); 40a9643ea8Slogwang 41a9643ea8Slogwang void 42a9643ea8Slogwang _lthread_init(struct lthread *lt, 43a9643ea8Slogwang lthread_func_t fun, void *arg, lthread_exit_func exit_handler); 44a9643ea8Slogwang 45a9643ea8Slogwang void _lthread_set_stack(struct lthread *lt, void *stack, size_t stack_size); 46a9643ea8Slogwang 472bfe3f2eSlogwang #ifdef __cplusplus 482bfe3f2eSlogwang } 492bfe3f2eSlogwang #endif 502bfe3f2eSlogwang 51a9643ea8Slogwang #endif /* LTHREAD_H_ */ 52