Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Functions
qos.c File Reference
#include <linux/pm_qos.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/fs.h>
#include <linux/device.h>
#include <linux/miscdevice.h>
#include <linux/string.h>
#include <linux/platform_device.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/uaccess.h>
#include <linux/export.h>

Go to the source code of this file.

Data Structures

struct  pm_qos_object
 

Functions

s32 pm_qos_read_value (struct pm_qos_constraints *c)
 
int pm_qos_update_target (struct pm_qos_constraints *c, struct plist_node *node, enum pm_qos_req_action action, int value)
 
int pm_qos_request (int pm_qos_class)
 
 EXPORT_SYMBOL_GPL (pm_qos_request)
 
int pm_qos_request_active (struct pm_qos_request *req)
 
 EXPORT_SYMBOL_GPL (pm_qos_request_active)
 
void pm_qos_add_request (struct pm_qos_request *req, int pm_qos_class, s32 value)
 
 EXPORT_SYMBOL_GPL (pm_qos_add_request)
 
void pm_qos_update_request (struct pm_qos_request *req, s32 new_value)
 
 EXPORT_SYMBOL_GPL (pm_qos_update_request)
 
void pm_qos_update_request_timeout (struct pm_qos_request *req, s32 new_value, unsigned long timeout_us)
 
void pm_qos_remove_request (struct pm_qos_request *req)
 
 EXPORT_SYMBOL_GPL (pm_qos_remove_request)
 
int pm_qos_add_notifier (int pm_qos_class, struct notifier_block *notifier)
 
 EXPORT_SYMBOL_GPL (pm_qos_add_notifier)
 
int pm_qos_remove_notifier (int pm_qos_class, struct notifier_block *notifier)
 
 EXPORT_SYMBOL_GPL (pm_qos_remove_notifier)
 
 late_initcall (pm_qos_power_init)
 

Function Documentation

EXPORT_SYMBOL_GPL ( pm_qos_request  )
EXPORT_SYMBOL_GPL ( pm_qos_request_active  )
EXPORT_SYMBOL_GPL ( pm_qos_add_request  )
EXPORT_SYMBOL_GPL ( pm_qos_update_request  )
EXPORT_SYMBOL_GPL ( pm_qos_remove_request  )
EXPORT_SYMBOL_GPL ( pm_qos_add_notifier  )
EXPORT_SYMBOL_GPL ( pm_qos_remove_notifier  )
late_initcall ( pm_qos_power_init  )
int pm_qos_add_notifier ( int  pm_qos_class,
struct notifier_block notifier 
)

pm_qos_add_notifier - sets notification entry for changes to target value : identifies which qos target changes should be notified. : notifier block managed by caller.

will register the notifier into a notification chain that gets called upon changes to the pm_qos_class target value.

Definition at line 374 of file qos.c.

void pm_qos_add_request ( struct pm_qos_request req,
int  pm_qos_class,
s32  value 
)

pm_qos_add_request - inserts new qos request into the list : pointer to a preallocated handle : identifies which list of qos request to use : defines the qos request

This function inserts a new entry in the pm_qos_class list of requested qos performance characteristics. It recomputes the aggregate QoS expectations for the pm_qos_class of parameters and initializes the pm_qos_request handle. Caller needs to save this handle for later use in updates and removal.

Definition at line 261 of file qos.c.

s32 pm_qos_read_value ( struct pm_qos_constraints c)

Definition at line 146 of file qos.c.

int pm_qos_remove_notifier ( int  pm_qos_class,
struct notifier_block notifier 
)

pm_qos_remove_notifier - deletes notification entry from chain. : identifies which qos target changes are notified. : notifier block to be removed.

will remove the notifier from the notification chain that gets called upon changes to the pm_qos_class target value.

Definition at line 394 of file qos.c.

void pm_qos_remove_request ( struct pm_qos_request req)

pm_qos_remove_request - modifies an existing qos request : handle to request list element

Will remove pm qos request from the list of constraints and recompute the current target value for the pm_qos_class. Call this on slow code paths.

Definition at line 345 of file qos.c.

int pm_qos_request ( int  pm_qos_class)

pm_qos_request - returns current system wide qos expectation : identification of which qos value is requested

This function returns the current target value.

Definition at line 221 of file qos.c.

int pm_qos_request_active ( struct pm_qos_request req)

Definition at line 227 of file qos.c.

void pm_qos_update_request ( struct pm_qos_request req,
s32  new_value 
)

pm_qos_update_request - modifies an existing qos request : handle to list element holding a pm_qos request to use : defines the qos request

Updates an existing qos request for the pm_qos_class of parameters along with updating the target pm_qos_class value.

Attempts are made to make this code callable on hot code paths.

Definition at line 288 of file qos.c.

void pm_qos_update_request_timeout ( struct pm_qos_request req,
s32  new_value,
unsigned long  timeout_us 
)

pm_qos_update_request_timeout - modifies an existing qos request temporarily. : handle to list element holding a pm_qos request to use : defines the temporal qos request : the effective duration of this qos request in usecs.

After timeout_us, this qos request is cancelled automatically.

Definition at line 317 of file qos.c.

int pm_qos_update_target ( struct pm_qos_constraints c,
struct plist_node node,
enum pm_qos_req_action  action,
int  value 
)

pm_qos_update_target - manages the constraints list and calls the notifiers if needed : constraints data struct : request to add to the list, to update or to remove : action to take on the constraints list : value of the request to add or update

This function returns 1 if the aggregated constraint value has changed, 0 otherwise.

Definition at line 167 of file qos.c.