|
FreeBSD kernel kern code
|
#include <sys/types.h>#include <sys/queue.h>#include <sys/bitstring.h>#include <sys/param.h>#include <sys/malloc.h>#include <sys/kernel.h>#include <sys/systm.h>#include <sys/limits.h>#include <sys/lock.h>#include <sys/mutex.h>
Go to the source code of this file.
Data Structures | |
| struct | unr |
| struct | unrb |
| struct | unrhdr |
Macros | |
| #define | Malloc(foo) malloc(foo, M_UNIT, M_WAITOK | M_ZERO) |
| #define | Free(foo) free(foo, M_UNIT) |
| #define | NBITS ((int)sizeof(((struct unrb *)NULL)->map) * 8) |
Functions | |
| static | MALLOC_DEFINE (M_UNIT,"Unitno","Unit number allocation") |
| MTX_SYSINIT (unit,&unitmtx,"unit# allocation", MTX_DEF) | |
| CTASSERT (sizeof(struct unr)==sizeof(struct unrb)) | |
| static __inline void | check_unrhdr (struct unrhdr *uh, int line) |
| static __inline void * | new_unr (struct unrhdr *uh, void **p1, void **p2) |
| static __inline void | delete_unr (struct unrhdr *uh, void *ptr) |
| void | clean_unrhdrl (struct unrhdr *uh) |
| void | clean_unrhdr (struct unrhdr *uh) |
| struct unrhdr * | new_unrhdr (int low, int high, struct mtx *mutex) |
| void | delete_unrhdr (struct unrhdr *uh) |
| static __inline int | is_bitmap (struct unrhdr *uh, struct unr *up) |
| static int | optimize_unr (struct unrhdr *uh) |
| static void | collapse_unr (struct unrhdr *uh, struct unr *up) |
| int | alloc_unrl (struct unrhdr *uh) |
| int | alloc_unr (struct unrhdr *uh) |
| static int | alloc_unr_specificl (struct unrhdr *uh, u_int item, void **p1, void **p2) |
| int | alloc_unr_specific (struct unrhdr *uh, u_int item) |
| static void | free_unrl (struct unrhdr *uh, u_int item, void **p1, void **p2) |
| void | free_unr (struct unrhdr *uh, u_int item) |
Variables | |
| static struct mtx | unitmtx |
| #define Free | ( | foo | ) | free(foo, M_UNIT) |
Definition at line 93 of file subr_unit.c.
Referenced by alloc_unr_specific(), clean_unrhdrl(), delete_unrhdr(), and free_unr().
| #define Malloc | ( | foo | ) | malloc(foo, M_UNIT, M_WAITOK | M_ZERO) |
Definition at line 92 of file subr_unit.c.
Referenced by alloc_unr_specific(), free_unr(), and new_unrhdr().
| #define NBITS ((int)sizeof(((struct unrb *)NULL)->map) * 8) |
Definition at line 188 of file subr_unit.c.
Referenced by optimize_unr().
| int alloc_unr | ( | struct unrhdr * | uh | ) |
Definition at line 620 of file subr_unit.c.
References alloc_unrl(), and clean_unrhdrl().
Referenced by aio_newproc(), cpuset_create(), mqfs_fileno_alloc(), pipe_stat(), pts_alloc(), and shm_alloc().


| int alloc_unr_specific | ( | struct unrhdr * | uh, |
| u_int | item | ||
| ) |
Definition at line 735 of file subr_unit.c.
References alloc_unr_specificl(), Free, and Malloc.

|
static |
Definition at line 632 of file subr_unit.c.
References unrb::busy, check_unrhdr(), collapse_unr(), is_bitmap(), unrb::map, and new_unr().
Referenced by alloc_unr_specific().


| int alloc_unrl | ( | struct unrhdr * | uh | ) |
Definition at line 570 of file subr_unit.c.
References unrb::busy, check_unrhdr(), collapse_unr(), and unrb::map.
Referenced by alloc_unr().


|
static |
Definition at line 253 of file subr_unit.c.
Referenced by alloc_unr_specificl(), alloc_unrl(), delete_unrhdr(), free_unrl(), and new_unrhdr().

| void clean_unrhdr | ( | struct unrhdr * | uh | ) |
Definition at line 310 of file subr_unit.c.
References clean_unrhdrl().

| void clean_unrhdrl | ( | struct unrhdr * | uh | ) |
Definition at line 295 of file subr_unit.c.
References Free.
Referenced by alloc_unr(), clean_unrhdr(), free_unr(), make_dev_alias_v(), and make_dev_credv().

Definition at line 498 of file subr_unit.c.
References unrb::busy, delete_unr(), is_bitmap(), and optimize_unr().
Referenced by alloc_unr_specificl(), alloc_unrl(), and free_unrl().


|
static |
Definition at line 285 of file subr_unit.c.
Referenced by collapse_unr(), and optimize_unr().

| void delete_unrhdr | ( | struct unrhdr * | uh | ) |
Definition at line 347 of file subr_unit.c.
References check_unrhdr(), and Free.
Referenced by aio_unload(), and mqfs_fileno_uninit().


| void free_unr | ( | struct unrhdr * | uh, |
| u_int | item | ||
| ) |
Definition at line 872 of file subr_unit.c.
References clean_unrhdrl(), Free, free_unrl(), and Malloc.
Referenced by aio_daemon(), aio_newproc(), cpuset_create(), cpuset_rel(), mqfs_fileno_free(), pipeclose(), ptsdrv_free(), shm_drop(), and tid_free().


|
static |
Definition at line 763 of file subr_unit.c.
References unrb::busy, check_unrhdr(), collapse_unr(), is_bitmap(), unrb::map, and new_unr().
Referenced by free_unr().


Definition at line 359 of file subr_unit.c.
Referenced by alloc_unr_specificl(), collapse_unr(), free_unrl(), and optimize_unr().

|
static |
| MTX_SYSINIT | ( | unit | , |
| & | unitmtx, | ||
| "unit# allocation" | , | ||
| MTX_DEF | |||
| ) |
|
static |
Definition at line 267 of file subr_unit.c.
Referenced by alloc_unr_specificl(), free_unrl(), and pipe_stat().

| struct unrhdr* new_unrhdr | ( | int | low, |
| int | high, | ||
| struct mtx * | mutex | ||
| ) |
Definition at line 325 of file subr_unit.c.
References check_unrhdr(), Malloc, and unitmtx.
Referenced by aio_onceonly(), cpuset_thread0(), mqfs_fileno_init(), pipeinit(), pts_init(), shm_init(), and threadinit().


|
static |
Definition at line 374 of file subr_unit.c.
References unrb::busy, delete_unr(), is_bitmap(), unrb::map, and NBITS.
Referenced by collapse_unr().


|
static |
Definition at line 95 of file subr_unit.c.
Referenced by new_unrhdr().