xref: /dragonfly/sys/sys/lwp.h (revision da82a65a2885f0d063716beb9a62f7d2633a10c3)
1 #ifndef _SYS_LWP_H_
2 #define _SYS_LWP_H_
3 
4 #include <sys/types.h>
5 
6 /*
7  * Parameters for the creation of a new lwp.
8  */
9 struct lwp_params {
10           void (*lwp_func)(void *); /* Function to start execution */
11           void *lwp_arg;                /* Parameter to this function */
12           void *lwp_stack;    /* Stack address to use */
13           lwpid_t *lwp_tid1;  /* Address to copy out new tid */
14           lwpid_t *lwp_tid2;  /* Same */
15 };
16 
17 #if !defined(_KERNEL) || defined(_KERNEL_VIRTUAL)
18 
19 #include <sys/cpumask.h>
20 
21 __BEGIN_DECLS
22 
23 struct rtprio;
24 
25 int       lwp_create(struct lwp_params *);
26 int       lwp_create2(struct lwp_params *, const cpumask_t *);
27 #ifndef _LWP_GETTID_DECLARED
28 lwpid_t   lwp_gettid(void);
29 #define _LWP_GETTID_DECLARED
30 #endif
31 #ifndef _LWP_SETNAME_DECLARED
32 int       lwp_getname(lwpid_t, char *, size_t);
33 int       lwp_setname(lwpid_t, const char *);
34 #define _LWP_SETNAME_DECLARED
35 #endif
36 #ifndef _LWP_RTPRIO_DECLARED
37 int       lwp_rtprio(int, pid_t, lwpid_t, struct rtprio *);
38 #define _LWP_RTPRIO_DECLARED
39 #endif
40 int       lwp_setaffinity(pid_t, lwpid_t, const cpumask_t *);
41 int       lwp_getaffinity(pid_t, lwpid_t, cpumask_t *);
42 #ifndef _LWP_KILL_DECLARED
43 int       lwp_kill(pid_t, lwpid_t, int);
44 #define _LWP_KILL_DECLARED
45 #endif
46 
47 __END_DECLS
48 
49 #endif    /* !_KERNEL */
50 
51 #endif    /* !_SYS_LWP_H_ */
52