FreeBSD kernel kern code
|
#include "opt_ddb.h"
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/limits.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mutex.h>
#include <sys/bus.h>
#include <machine/bus.h>
#include <sys/rman.h>
#include <sys/sysctl.h>
Go to the source code of this file.
Data Structures | |
struct | resource_i |
Macros | |
#define | DPRINTF(params) if (rman_debug) printf params |
#define | SHARE_TYPE(f) (f & (RF_SHAREABLE | RF_PREFETCHABLE)) |
Functions | |
__FBSDID ("$BSDSUniX$") | |
TUNABLE_INT ("debug.rman_debug",&rman_debug) | |
SYSCTL_INT (_debug, OID_AUTO, rman_debug, CTLFLAG_RW,&rman_debug, 0,"rman debug") | |
static | MALLOC_DEFINE (M_RMAN,"rman","Resource manager") |
static int | int_rman_release_resource (struct rman *rm, struct resource_i *r) |
static __inline struct resource_i * | int_alloc_resource (int malloc_flag) |
int | rman_init (struct rman *rm) |
int | rman_manage_region (struct rman *rm, u_long start, u_long end) |
int | rman_init_from_resource (struct rman *rm, struct resource *r) |
int | rman_fini (struct rman *rm) |
int | rman_first_free_region (struct rman *rm, u_long *start, u_long *end) |
int | rman_last_free_region (struct rman *rm, u_long *start, u_long *end) |
int | rman_adjust_resource (struct resource *rr, u_long start, u_long end) |
struct resource * | rman_reserve_resource_bound (struct rman *rm, u_long start, u_long end, u_long count, u_long bound, u_int flags, struct device *dev) |
struct resource * | rman_reserve_resource (struct rman *rm, u_long start, u_long end, u_long count, u_int flags, struct device *dev) |
int | rman_activate_resource (struct resource *re) |
int | rman_deactivate_resource (struct resource *r) |
int | rman_release_resource (struct resource *re) |
uint32_t | rman_make_alignment_flags (uint32_t size) |
void | rman_set_start (struct resource *r, u_long start) |
u_long | rman_get_start (struct resource *r) |
void | rman_set_end (struct resource *r, u_long end) |
u_long | rman_get_end (struct resource *r) |
u_long | rman_get_size (struct resource *r) |
u_int | rman_get_flags (struct resource *r) |
void | rman_set_virtual (struct resource *r, void *v) |
void * | rman_get_virtual (struct resource *r) |
void | rman_set_bustag (struct resource *r, bus_space_tag_t t) |
bus_space_tag_t | rman_get_bustag (struct resource *r) |
void | rman_set_bushandle (struct resource *r, bus_space_handle_t h) |
bus_space_handle_t | rman_get_bushandle (struct resource *r) |
void | rman_set_rid (struct resource *r, int rid) |
int | rman_get_rid (struct resource *r) |
void | rman_set_device (struct resource *r, struct device *dev) |
struct device * | rman_get_device (struct resource *r) |
int | rman_is_region_manager (struct resource *r, struct rman *rm) |
static int | sysctl_rman (SYSCTL_HANDLER_ARGS) |
static | SYSCTL_NODE (_hw_bus, OID_AUTO, rman, CTLFLAG_RD, sysctl_rman,"kernel resource manager") |
Variables | |
static int | rman_debug = 0 |
struct rman_head | rman_head |
static struct mtx | rman_mtx |
#define DPRINTF | ( | params | ) | if (rman_debug) printf params |
Definition at line 107 of file subr_rman.c.
Referenced by rman_manage_region(), and rman_reserve_resource_bound().
#define SHARE_TYPE | ( | f | ) | (f & (RF_SHAREABLE | RF_PREFETCHABLE)) |
Definition at line 430 of file subr_rman.c.
Referenced by rman_reserve_resource_bound().
__FBSDID | ( | "$BSDSUniX$" | ) |
|
static |
Definition at line 116 of file subr_rman.c.
References malloc(), and resource_i::r_r.
Referenced by rman_adjust_resource(), rman_manage_region(), and rman_reserve_resource_bound().
|
static |
Definition at line 675 of file subr_rman.c.
References free().
Referenced by rman_release_resource().
|
static |
int rman_activate_resource | ( | struct resource * | re | ) |
Definition at line 649 of file subr_rman.c.
int rman_adjust_resource | ( | struct resource * | rr, |
u_long | start, | ||
u_long | end | ||
) |
Definition at line 310 of file subr_rman.c.
References free(), int_alloc_resource(), panic(), and start.
int rman_deactivate_resource | ( | struct resource * | r | ) |
Definition at line 663 of file subr_rman.c.
int rman_fini | ( | struct rman * | rm | ) |
Definition at line 241 of file subr_rman.c.
References free(), mtx_destroy(), rman_head, and rman_mtx.
int rman_first_free_region | ( | struct rman * | rm, |
u_long * | start, | ||
u_long * | end | ||
) |
Definition at line 273 of file subr_rman.c.
bus_space_handle_t rman_get_bushandle | ( | struct resource * | r | ) |
Definition at line 879 of file subr_rman.c.
bus_space_tag_t rman_get_bustag | ( | struct resource * | r | ) |
Definition at line 865 of file subr_rman.c.
struct device* rman_get_device | ( | struct resource * | r | ) |
Definition at line 907 of file subr_rman.c.
Referenced by resource_list_purge().
u_long rman_get_end | ( | struct resource * | r | ) |
Definition at line 823 of file subr_rman.c.
Referenced by resource_list_alloc().
u_int rman_get_flags | ( | struct resource * | r | ) |
Definition at line 837 of file subr_rman.c.
Referenced by resource_list_busy(), and resource_list_release().
int rman_get_rid | ( | struct resource * | r | ) |
Definition at line 893 of file subr_rman.c.
Referenced by bus_free_resource().
u_long rman_get_size | ( | struct resource * | r | ) |
Definition at line 830 of file subr_rman.c.
u_long rman_get_start | ( | struct resource * | r | ) |
Definition at line 809 of file subr_rman.c.
Referenced by resource_list_alloc().
void* rman_get_virtual | ( | struct resource * | r | ) |
Definition at line 851 of file subr_rman.c.
int rman_init | ( | struct rman * | rm | ) |
Definition at line 128 of file subr_rman.c.
References malloc(), mtx_init(), panic(), rman_head, and rman_mtx.
Referenced by rman_init_from_resource().
int rman_init_from_resource | ( | struct rman * | rm, |
struct resource * | r | ||
) |
Definition at line 231 of file subr_rman.c.
References rman_init(), and rman_manage_region().
int rman_is_region_manager | ( | struct resource * | r, |
struct rman * | rm | ||
) |
Definition at line 914 of file subr_rman.c.
int rman_last_free_region | ( | struct rman * | rm, |
u_long * | start, | ||
u_long * | end | ||
) |
Definition at line 291 of file subr_rman.c.
uint32_t rman_make_alignment_flags | ( | uint32_t | size | ) |
Definition at line 784 of file subr_rman.c.
int rman_manage_region | ( | struct rman * | rm, |
u_long | start, | ||
u_long | end | ||
) |
Definition at line 158 of file subr_rman.c.
References DPRINTF, free(), int_alloc_resource(), and start.
Referenced by rman_init_from_resource().
int rman_release_resource | ( | struct resource * | re | ) |
Definition at line 769 of file subr_rman.c.
References int_rman_release_resource().
struct resource* rman_reserve_resource | ( | struct rman * | rm, |
u_long | start, | ||
u_long | end, | ||
u_long | count, | ||
u_int | flags, | ||
struct device * | dev | ||
) |
Definition at line 640 of file subr_rman.c.
References rman_reserve_resource_bound().
struct resource* rman_reserve_resource_bound | ( | struct rman * | rm, |
u_long | start, | ||
u_long | end, | ||
u_long | count, | ||
u_long | bound, | ||
u_int | flags, | ||
struct device * | dev | ||
) |
Definition at line 433 of file subr_rman.c.
References device_get_nameunit(), DPRINTF, free(), int_alloc_resource(), malloc(), resource_i::r_r, and SHARE_TYPE.
Referenced by rman_reserve_resource().
void rman_set_bushandle | ( | struct resource * | r, |
bus_space_handle_t | h | ||
) |
Definition at line 872 of file subr_rman.c.
void rman_set_bustag | ( | struct resource * | r, |
bus_space_tag_t | t | ||
) |
Definition at line 858 of file subr_rman.c.
void rman_set_device | ( | struct resource * | r, |
struct device * | dev | ||
) |
Definition at line 900 of file subr_rman.c.
void rman_set_end | ( | struct resource * | r, |
u_long | end | ||
) |
Definition at line 816 of file subr_rman.c.
void rman_set_rid | ( | struct resource * | r, |
int | rid | ||
) |
Definition at line 886 of file subr_rman.c.
void rman_set_start | ( | struct resource * | r, |
u_long | start | ||
) |
Definition at line 802 of file subr_rman.c.
References start.
void rman_set_virtual | ( | struct resource * | r, |
void * | v | ||
) |
Definition at line 844 of file subr_rman.c.
SYSCTL_INT | ( | _debug | , |
OID_AUTO | , | ||
rman_debug | , | ||
CTLFLAG_RW | , | ||
& | rman_debug, | ||
0 | , | ||
"rman debug" | |||
) |
|
static |
|
static |
Definition at line 927 of file subr_rman.c.
References bus_data_generation_check(), device_get_name(), device_get_unit(), name, rman_head, rman_mtx, and snprintf().
TUNABLE_INT | ( | "debug.rman_debug" | , |
& | rman_debug | ||
) |
|
static |
Definition at line 102 of file subr_rman.c.
struct rman_head rman_head |
Definition at line 111 of file subr_rman.c.
Referenced by rman_fini(), rman_init(), and sysctl_rman().
|
static |
Definition at line 112 of file subr_rman.c.
Referenced by rman_fini(), rman_init(), and sysctl_rman().