FreeBSD kernel kern code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/pctrie.h>
#include <sys/rangeset.h>
#include <vm/uma.h>
#include "opt_ddb.h"
Go to the source code of this file.
Macros | |
#define | rangeset_check(rs) |
Functions | |
__FBSDID ("$FreeBSD$") | |
static void | rs_rangeset_init (void *arg __unused) |
SYSINIT (rs, SI_SUB_LOCK, SI_ORDER_ANY, rs_rangeset_init, NULL) | |
static void * | rs_node_alloc (struct pctrie *ptree) |
static void | rs_node_free (struct pctrie *ptree __unused, void *node) |
void | rangeset_init (struct rangeset *rs, rs_dup_data_t dup_data, rs_free_data_t free_data, void *data_ctx, u_int alloc_flags) |
void | rangeset_fini (struct rangeset *rs) |
bool | rangeset_check_empty (struct rangeset *rs, uint64_t start, uint64_t end) |
int | rangeset_insert (struct rangeset *rs, uint64_t start, uint64_t end, void *data) |
int | rangeset_remove_pred (struct rangeset *rs, uint64_t start, uint64_t end, rs_pred_t pred) |
static bool | rangeset_true_pred (void *ctx __unused, void *r __unused) |
int | rangeset_remove (struct rangeset *rs, uint64_t start, uint64_t end) |
void | rangeset_remove_all (struct rangeset *rs) |
void * | rangeset_lookup (struct rangeset *rs, uint64_t place) |
int | rangeset_copy (struct rangeset *dst_rs, struct rangeset *src_rs) |
Variables | |
static uma_zone_t | rs_node_zone |
#define rangeset_check | ( | rs | ) |
Definition at line 44 of file subr_rangeset.c.
__FBSDID | ( | "$FreeBSD$" | ) |
bool rangeset_check_empty | ( | struct rangeset * | rs, |
uint64_t | start, | ||
uint64_t | end | ||
) |
Definition at line 96 of file subr_rangeset.c.
References pctrie_lookup_le(), rangeset_check, and start.
int rangeset_copy | ( | struct rangeset * | dst_rs, |
struct rangeset * | src_rs | ||
) |
Definition at line 279 of file subr_rangeset.c.
References pctrie_insert(), pctrie_lookup_ge(), rangeset_check, rangeset_remove_all(), and rs_node_alloc().
void rangeset_fini | ( | struct rangeset * | rs | ) |
Definition at line 88 of file subr_rangeset.c.
References rangeset_check, and rangeset_remove_all().
void rangeset_init | ( | struct rangeset * | rs, |
rs_dup_data_t | dup_data, | ||
rs_free_data_t | free_data, | ||
void * | data_ctx, | ||
u_int | alloc_flags | ||
) |
Definition at line 76 of file subr_rangeset.c.
int rangeset_insert | ( | struct rangeset * | rs, |
uint64_t | start, | ||
uint64_t | end, | ||
void * | data | ||
) |
Definition at line 112 of file subr_rangeset.c.
References data, pctrie_insert(), rangeset_check, rangeset_remove(), rs_node_alloc(), and start.
void * rangeset_lookup | ( | struct rangeset * | rs, |
uint64_t | place | ||
) |
Definition at line 263 of file subr_rangeset.c.
References pctrie_lookup_le(), and rangeset_check.
int rangeset_remove | ( | struct rangeset * | rs, |
uint64_t | start, | ||
uint64_t | end | ||
) |
Definition at line 240 of file subr_rangeset.c.
References rangeset_remove_pred(), rangeset_true_pred(), and start.
Referenced by rangeset_insert().
void rangeset_remove_all | ( | struct rangeset * | rs | ) |
Definition at line 247 of file subr_rangeset.c.
References pctrie_lookup_ge(), pctrie_remove(), and rs_node_free().
Referenced by rangeset_copy(), and rangeset_fini().
int rangeset_remove_pred | ( | struct rangeset * | rs, |
uint64_t | start, | ||
uint64_t | end, | ||
rs_pred_t | pred | ||
) |
Definition at line 131 of file subr_rangeset.c.
References pctrie_insert(), pctrie_lookup_le(), pctrie_remove(), rangeset_check, rs_node_alloc(), rs_node_free(), and start.
Referenced by rangeset_remove().
|
static |
Definition at line 233 of file subr_rangeset.c.
Referenced by rangeset_remove().
|
static |
Definition at line 60 of file subr_rangeset.c.
References rs_node_zone.
Referenced by rangeset_copy(), rangeset_insert(), and rangeset_remove_pred().
|
static |
Definition at line 69 of file subr_rangeset.c.
References rs_node_zone.
Referenced by rangeset_remove_all(), and rangeset_remove_pred().
|
static |
Definition at line 50 of file subr_rangeset.c.
References pctrie_node_size(), pctrie_zone_init(), and rs_node_zone.
SYSINIT | ( | rs | , |
SI_SUB_LOCK | , | ||
SI_ORDER_ANY | , | ||
rs_rangeset_init | , | ||
NULL | |||
) |
|
static |
Definition at line 47 of file subr_rangeset.c.
Referenced by rs_node_alloc(), rs_node_free(), and rs_rangeset_init().