Motr  M0
thread.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2012-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_LIB_USER_SPACE_THREAD_H__
26 #define __MOTR_LIB_USER_SPACE_THREAD_H__
27 
28 #include <pthread.h>
29 #include <setjmp.h> /* jmp_buf */
30 #include <signal.h>
31 #include "lib/types.h" /* bool */
32 
46 enum { M0_THREAD_NAME_LEN = 16 };
47 
48 struct m0_thread_handle {
49  pthread_t h_id;
50 };
51 
53 struct m0_thread_arch_tls {
55  uint32_t tat_awkward;
57  jmp_buf *tat_jmp;
58 };
59 
153 #define LAMBDA(T, ...) ({ T __lambda __VA_ARGS__; &__lambda; })
154 
157 /* __MOTR_LIB_USER_SPACE_THREAD_H__ */
158 #endif
159 
160 /*
161  * Local variables:
162  * c-indentation-style: "K&R"
163  * c-basic-offset: 8
164  * tab-width: 8
165  * fill-column: 80
166  * scroll-step: 1
167  * End:
168  */
jmp_buf * tat_jmp
Definition: thread.h:57
uint32_t tat_awkward
Definition: thread.h:55
pthread_t h_id
Definition: thread.h:49