4 * This file and its contents are supplied under the terms of the
5 * Common Development and Distribution License ("CDDL"), version 1.0.
6 * You may only use this file in accordance with the terms of version
9 * A full copy of the text of the CDDL should have accompanied this
10 * source. A copy of the CDDL is also available via the Internet at
11 * http://www.illumos.org/license/CDDL.
17 * Copyright (c) 2017 by Delphix. All rights reserved.
23 typedef struct zthr zthr_t
;
24 typedef int (zthr_func_t
)(void *, zthr_t
*);
25 typedef boolean_t (zthr_checkfunc_t
)(void *, zthr_t
*);
28 kthread_t
*zthr_thread
;
31 boolean_t zthr_cancel
;
32 hrtime_t zthr_wait_time
;
34 zthr_checkfunc_t
*zthr_checkfunc
;
35 zthr_func_t
*zthr_func
;
40 extern zthr_t
*zthr_create(zthr_checkfunc_t checkfunc
,
41 zthr_func_t
*func
, void *arg
);
42 extern zthr_t
*zthr_create_timer(zthr_checkfunc_t
*checkfunc
,
43 zthr_func_t
*func
, void *arg
, hrtime_t nano_wait
);
45 extern void zthr_exit(zthr_t
*t
, int rc
);
46 extern void zthr_destroy(zthr_t
*t
);
48 extern void zthr_wakeup(zthr_t
*t
);
49 extern int zthr_cancel(zthr_t
*t
);
50 extern void zthr_resume(zthr_t
*t
);
52 extern boolean_t
zthr_iscancelled(zthr_t
*t
);
53 extern boolean_t
zthr_isrunning(zthr_t
*t
);
55 #endif /* _SYS_ZTHR_H */