aos/include/aos/coreset.h
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

56 lines
1.4 KiB
C

/**
* \file
* \brief
*/
/*
* Copyright (c) 2008, 2009, 2010, ETH Zurich.
* All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
*/
#ifndef LIBBARRELFISH_CORESET_H
#define LIBBARRELFISH_CORESET_H
#include <sys/cdefs.h>
__BEGIN_DECLS
typedef coreid_t coreset_token_t;
#define CORESET_INIT_TOKEN 0
struct coreset;
/**
* \brief Function pointer used to call on every core in the coreset
*
* \param st User supplied state
* \param id The core id this is called for
*
* Refer to #coreset_iterate.
*/
typedef errval_t (*coreset_iterator_fn)(void *st, coreid_t id);
errval_t coreset_new(struct coreset **set);
void coreset_destroy(struct coreset *set);
errval_t coreset_add(struct coreset *set, coreid_t id);
errval_t coreset_remove(struct coreset *set, coreid_t id);
bool coreset_test(struct coreset *set, coreid_t id);
errval_t coreset_get_next(struct coreset *set, coreset_token_t *token,
coreid_t *id);
errval_t coreset_iterate(struct coreset *set, void *st,
coreset_iterator_fn func);
errval_t coreset_to_coremask(struct coreset *set, coremask_t *mask);
errval_t coreset_from_coremask(coremask_t mask, struct coreset **set);
coreid_t coreset_count(struct coreset *set);
__END_DECLS
#endif