Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.20 61 lines 1.8 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * NUMA support for s390 4 * 5 * A tree structure used for machine topology mangling 6 * 7 * Copyright IBM Corp. 2015 8 */ 9#ifndef S390_TOPTREE_H 10#define S390_TOPTREE_H 11 12#include <linux/cpumask.h> 13#include <linux/list.h> 14 15struct toptree { 16 int level; 17 int id; 18 cpumask_t mask; 19 struct toptree *parent; 20 struct list_head sibling; 21 struct list_head children; 22}; 23 24struct toptree *toptree_alloc(int level, int id); 25void toptree_free(struct toptree *cand); 26void toptree_update_mask(struct toptree *cand); 27void toptree_unify(struct toptree *cand); 28struct toptree *toptree_get_child(struct toptree *cand, int id); 29void toptree_move(struct toptree *cand, struct toptree *target); 30int toptree_count(struct toptree *context, int level); 31 32struct toptree *toptree_first(struct toptree *context, int level); 33struct toptree *toptree_next(struct toptree *cur, struct toptree *context, 34 int level); 35 36#define toptree_for_each_child(child, ptree) \ 37 list_for_each_entry(child, &ptree->children, sibling) 38 39#define toptree_for_each_child_safe(child, ptmp, ptree) \ 40 list_for_each_entry_safe(child, ptmp, &ptree->children, sibling) 41 42#define toptree_is_last(ptree) \ 43 ((ptree->parent == NULL) || \ 44 (ptree->parent->children.prev == &ptree->sibling)) 45 46#define toptree_for_each(ptree, cont, ttype) \ 47 for (ptree = toptree_first(cont, ttype); \ 48 ptree != NULL; \ 49 ptree = toptree_next(ptree, cont, ttype)) 50 51#define toptree_for_each_safe(ptree, tmp, cont, ttype) \ 52 for (ptree = toptree_first(cont, ttype), \ 53 tmp = toptree_next(ptree, cont, ttype); \ 54 ptree != NULL; \ 55 ptree = tmp, \ 56 tmp = toptree_next(ptree, cont, ttype)) 57 58#define toptree_for_each_sibling(ptree, start) \ 59 toptree_for_each(ptree, start->parent, start->level) 60 61#endif /* S390_TOPTREE_H */