resource.c File Reference

Go to the source code of this file.

Classes

struct  region_devres

: reserving caller's ID string

__request_region - create a new busy resource region : parent resource descriptor : resource start address
: resource region size

: IO resource flags

#define MAXRESERVE   4
static int strict_iomem_checks
struct resource * __request_region (struct resource *parent, resource_size_t start, resource_size_t n, const char *name, int flags)
 EXPORT_SYMBOL (__request_region)
int __check_region (struct resource *parent, resource_size_t start, resource_size_t n)
 __check_region - check if a resource region is busy or free : parent resource descriptor : resource start address
: resource region size
 EXPORT_SYMBOL (__check_region)
void __release_region (struct resource *parent, resource_size_t start, resource_size_t n)
 __release_region - release a previously reserved resource region : parent resource descriptor : resource start address
: resource region size
 EXPORT_SYMBOL (__release_region)
static void devm_region_release (struct device *dev, void *res)
static int devm_region_match (struct device *dev, void *res, void *match_data)
struct resource * __devm_request_region (struct device *dev, struct resource *parent, resource_size_t start, resource_size_t n, const char *name)
 EXPORT_SYMBOL (__devm_request_region)
void __devm_release_region (struct device *dev, struct resource *parent, resource_size_t start, resource_size_t n)
 EXPORT_SYMBOL (__devm_release_region)
static int __init reserve_setup (char *str)
 __setup ("reserve=", reserve_setup)
int iomem_map_sanity_check (resource_size_t addr, unsigned long size)
int iomem_is_exclusive (u64 addr)
static int __init strict_iomem (char *str)

Functions

 EXPORT_SYMBOL (ioport_resource)
 EXPORT_SYMBOL (iomem_resource)
static DEFINE_RWLOCK (resource_lock)
static void * r_next (struct seq_file *m, void *v, loff_t *pos)
static struct resource * __request_resource (struct resource *root, struct resource *new)
static int __release_resource (struct resource *old)
int request_resource (struct resource *root, struct resource *new)
 request_resource - request and reserve an I/O or memory resource : root resource descriptor : resource descriptor desired by caller
 EXPORT_SYMBOL (request_resource)
int release_resource (struct resource *old)
 release_resource - release a previously reserved resource : resource pointer
 EXPORT_SYMBOL (release_resource)
static int find_resource (struct resource *root, struct resource *new, resource_size_t size, resource_size_t min, resource_size_t max, resource_size_t align, void(*alignf)(void *, struct resource *, resource_size_t, resource_size_t), void *alignf_data)
int allocate_resource (struct resource *root, struct resource *new, resource_size_t size, resource_size_t min, resource_size_t max, resource_size_t align, void(*alignf)(void *, struct resource *, resource_size_t, resource_size_t), void *alignf_data)
 allocate_resource - allocate empty slot in the resource tree given range & alignment : root resource descriptor : resource descriptor desired by caller : requested resource region size : minimum size to allocate : maximum size to allocate : alignment requested, in bytes : alignment function, optional, called if not NULL : arbitrary data to pass to the function
 EXPORT_SYMBOL (allocate_resource)
static struct resource * __insert_resource (struct resource *parent, struct resource *new)
int insert_resource (struct resource *parent, struct resource *new)
 insert_resource - Inserts a resource in the resource tree : parent of the new resource : new resource to insert
void insert_resource_expand_to_fit (struct resource *root, struct resource *new)
 insert_resource_expand_to_fit - Insert a resource into the resource tree : root resource descriptor : new resource to insert
int adjust_resource (struct resource *res, resource_size_t start, resource_size_t size)
 adjust_resource - modify a resource's start and size : resource to modify : new start value : new size
static void __init __reserve_region_with_split (struct resource *root, resource_size_t start, resource_size_t end, const char *name)
void __init reserve_region_with_split (struct resource *root, resource_size_t start, resource_size_t end, const char *name)
 EXPORT_SYMBOL (adjust_resource)
resource_size_t resource_alignment (struct resource *res)
 resource_alignment - calculate resource's alignment : resource pointer

Variables

struct resource ioport_resource
struct resource iomem_resource


Define Documentation

#define MAXRESERVE   4

Definition at line 807 of file resource.c.


Function Documentation

int __check_region ( struct resource *  parent,
resource_size_t  start,
resource_size_t  n 
)

__check_region - check if a resource region is busy or free : parent resource descriptor : resource start address
: resource region size

Returns 0 if the region is free at the moment it is checked, returns -EBUSY if the region is busy.

NOTE: This function is deprecated because its use is racy. Even if it returns 0, a subsequent call to request_region() may fail because another driver etc. just allocated the region. Do NOT use it. It will be removed from the kernel.

Definition at line 680 of file resource.c.

void __devm_release_region ( struct device *  dev,
struct resource *  parent,
resource_size_t  start,
resource_size_t  n 
)

Definition at line 793 of file resource.c.

struct resource* __devm_request_region ( struct device *  dev,
struct resource *  parent,
resource_size_t  start,
resource_size_t  n,
const char *  name 
) [read]

Definition at line 767 of file resource.c.

static struct resource* __insert_resource ( struct resource *  parent,
struct resource *  new 
) [static, read]

Definition at line 370 of file resource.c.

void __release_region ( struct resource *  parent,
resource_size_t  start,
resource_size_t  n 
)

__release_region - release a previously reserved resource region : parent resource descriptor : resource start address
: resource region size

The described resource region must match a currently busy region.

Definition at line 703 of file resource.c.

static int __release_resource ( struct resource *  old  )  [static]

Definition at line 172 of file resource.c.

struct resource* __request_region ( struct resource *  parent,
resource_size_t  start,
resource_size_t  n,
const char *  name,
int  flags 
) [read]

Definition at line 626 of file resource.c.

static struct resource* __request_resource ( struct resource *  root,
struct resource *  new 
) [static, read]

Definition at line 144 of file resource.c.

static void __init __reserve_region_with_split ( struct resource *  root,
resource_size_t  start,
resource_size_t  end,
const char *  name 
) [static]

Definition at line 520 of file resource.c.

__setup (  ) 

int adjust_resource ( struct resource *  res,
resource_size_t  start,
resource_size_t  size 
)

adjust_resource - modify a resource's start and size : resource to modify : new start value : new size

Given an existing resource, change its start and size to match the arguments. Returns 0 on success, -EBUSY if it can't fit. Existing children of the resource are assumed to be immutable.

Definition at line 484 of file resource.c.

int allocate_resource ( struct resource *  root,
struct resource *  new,
resource_size_t  size,
resource_size_t  min,
resource_size_t  max,
resource_size_t  align,
void(*)(void *, struct resource *, resource_size_t, resource_size_t)  alignf,
void *  alignf_data 
)

allocate_resource - allocate empty slot in the resource tree given range & alignment : root resource descriptor : resource descriptor desired by caller : requested resource region size : minimum size to allocate : maximum size to allocate : alignment requested, in bytes : alignment function, optional, called if not NULL : arbitrary data to pass to the function

Definition at line 347 of file resource.c.

static DEFINE_RWLOCK ( resource_lock   )  [static]

static int devm_region_match ( struct device *  dev,
void *  res,
void *  match_data 
) [static]

Definition at line 759 of file resource.c.

static void devm_region_release ( struct device *  dev,
void *  res 
) [static]

Definition at line 752 of file resource.c.

EXPORT_SYMBOL ( __devm_release_region   ) 

EXPORT_SYMBOL ( __devm_request_region   ) 

EXPORT_SYMBOL ( __release_region   ) 

EXPORT_SYMBOL ( __check_region   ) 

EXPORT_SYMBOL ( __request_region   ) 

EXPORT_SYMBOL ( adjust_resource   ) 

EXPORT_SYMBOL ( allocate_resource   ) 

EXPORT_SYMBOL ( release_resource   ) 

EXPORT_SYMBOL ( request_resource   ) 

EXPORT_SYMBOL ( iomem_resource   ) 

EXPORT_SYMBOL ( ioport_resource   ) 

static int find_resource ( struct resource *  root,
struct resource *  new,
resource_size_t  size,
resource_size_t  min,
resource_size_t  max,
resource_size_t  align,
void(*)(void *, struct resource *, resource_size_t, resource_size_t)  alignf,
void *  alignf_data 
) [static]

Definition at line 294 of file resource.c.

int insert_resource ( struct resource *  parent,
struct resource *  new 
)

insert_resource - Inserts a resource in the resource tree : parent of the new resource : new resource to insert

Returns 0 on success, -EBUSY if the resource can't be inserted.

This function is equivalent to request_resource when no conflict happens. If a conflict happens, and the conflicting resources entirely fit within the range of the new resource, then the new resource is inserted and the conflicting resources become children of the new resource.

Definition at line 430 of file resource.c.

void insert_resource_expand_to_fit ( struct resource *  root,
struct resource *  new 
)

insert_resource_expand_to_fit - Insert a resource into the resource tree : root resource descriptor : new resource to insert

Insert a resource into the resource tree, possibly expanding it in order to make it encompass any conflicting resources.

Definition at line 448 of file resource.c.

int iomem_is_exclusive ( u64  addr  ) 

Definition at line 894 of file resource.c.

int iomem_map_sanity_check ( resource_size_t  addr,
unsigned long  size 
)

Definition at line 841 of file resource.c.

static void* r_next ( struct seq_file *  m,
void *  v,
loff_t *  pos 
) [static]

Definition at line 42 of file resource.c.

int release_resource ( struct resource *  old  ) 

release_resource - release a previously reserved resource : resource pointer

Definition at line 214 of file resource.c.

int request_resource ( struct resource *  root,
struct resource *  new 
)

request_resource - request and reserve an I/O or memory resource : root resource descriptor : resource descriptor desired by caller

Returns 0 for success, negative error code on error.

Definition at line 198 of file resource.c.

void __init reserve_region_with_split ( struct resource *  root,
resource_size_t  start,
resource_size_t  end,
const char *  name 
)

Definition at line 575 of file resource.c.

static int __init reserve_setup ( char *  str  )  [static]

Definition at line 808 of file resource.c.

resource_size_t resource_alignment ( struct resource *  res  ) 

resource_alignment - calculate resource's alignment : resource pointer

Returns alignment on success, 0 (invalid alignment) on failure.

Definition at line 592 of file resource.c.

static int __init strict_iomem ( char *  str  )  [static]

Definition at line 927 of file resource.c.


Variable Documentation

struct resource iomem_resource

Initial value:

 {
        .name   = "PCI mem",
        .start  = 0,
        .end    = -1,
        .flags  = IORESOURCE_MEM,
}

Definition at line 32 of file resource.c.

struct resource ioport_resource

Initial value:

 {
        .name   = "PCI IO",
        .start  = 0,
        .end    = IO_SPACE_LIMIT,
        .flags  = IORESOURCE_IO,
}

Definition at line 24 of file resource.c.

int strict_iomem_checks [static]

Definition at line 887 of file resource.c.


Generated on Wed Apr 11 06:39:16 2012 for DDE - The L4 Device Driver Environment by  doxygen 1.5.6