]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/lib/librte_eal/windows/eal/include/sched.h
bump version to 15.2.11-pve1
[ceph.git] / ceph / src / spdk / dpdk / lib / librte_eal / windows / eal / include / sched.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2019 Intel Corporation
3 */
4
5 #ifndef _SCHED_H_
6 #define _SCHED_H_
7
8 /**
9 * This file is added to support the common code in eal_common_thread.c
10 * as Microsoft libc does not contain sched.h. This may be removed
11 * in future releases.
12 */
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 #ifndef CPU_SET_SIZE
18 #define CPU_SET_SIZE RTE_MAX_LCORE
19 #endif
20
21 #define _BITS_PER_SET (sizeof(long long) * 8)
22 #define _BIT_SET_MASK (_BITS_PER_SET - 1)
23
24 #define _NUM_SETS(b) (((b) + _BIT_SET_MASK) / _BITS_PER_SET)
25 #define _WHICH_SET(b) ((b) / _BITS_PER_SET)
26 #define _WHICH_BIT(b) ((b) & (_BITS_PER_SET - 1))
27
28 typedef struct _rte_cpuset_s {
29 long long _bits[_NUM_SETS(CPU_SET_SIZE)];
30 } rte_cpuset_t;
31
32 #define CPU_SET(b, s) ((s)->_bits[_WHICH_SET(b)] |= (1LL << _WHICH_BIT(b)))
33
34 #define CPU_ZERO(s) \
35 do { \
36 unsigned int _i; \
37 \
38 for (_i = 0; _i < _NUM_SETS(CPU_SET_SIZE); _i++) \
39 (s)->_bits[_i] = 0LL; \
40 } while (0)
41
42 #ifdef __cplusplus
43 }
44 #endif
45
46 #endif /* _SCHED_H_ */