Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
css.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/list.h>
#include <linux/reboot.h>
#include <linux/suspend.h>
#include <linux/proc_fs.h>
#include <asm/isc.h>
#include <asm/crw.h>
#include "css.h"
#include "cio.h"
#include "cio_debug.h"
#include "ioasm.h"
#include "chsc.h"
#include "device.h"
#include "idset.h"
#include "chp.h"

Go to the source code of this file.

Data Structures

struct  cb_data
 

Macros

#define KMSG_COMPONENT   "cio"
 
#define pr_fmt(fmt)   KMSG_COMPONENT ": " fmt
 

Functions

int for_each_subchannel (int(*fn)(struct subchannel_id, void *), void *data)
 
int for_each_subchannel_staged (int(*fn_known)(struct subchannel *, void *), int(*fn_unknown)(struct subchannel_id, void *), void *data)
 
void css_sch_device_unregister (struct subchannel *sch)
 
 EXPORT_SYMBOL_GPL (css_sch_device_unregister)
 
void css_update_ssd_info (struct subchannel *sch)
 
int css_probe_device (struct subchannel_id schid)
 
struct subchannelget_subchannel_by_schid (struct subchannel_id schid)
 
int css_sch_is_valid (struct schib *schib)
 
 EXPORT_SYMBOL_GPL (css_sch_is_valid)
 
void css_sched_sch_todo (struct subchannel *sch, enum sch_todo todo)
 
 EXPORT_SYMBOL_GPL (css_sched_sch_todo)
 
void css_schedule_eval (struct subchannel_id schid)
 
void css_schedule_eval_all (void)
 
void css_wait_for_slow_path (void)
 
void css_schedule_reprobe (void)
 
 EXPORT_SYMBOL_GPL (css_schedule_reprobe)
 
 subsys_initcall (channel_subsystem_init)
 
int css_complete_work (void)
 
 subsys_initcall_sync (channel_subsystem_init_sync)
 
void channel_subsystem_reinit (void)
 
int sch_is_pseudo_sch (struct subchannel *sch)
 
int css_driver_register (struct css_driver *cdrv)
 
 EXPORT_SYMBOL_GPL (css_driver_register)
 
void css_driver_unregister (struct css_driver *cdrv)
 
 EXPORT_SYMBOL_GPL (css_driver_unregister)
 
 MODULE_LICENSE ("GPL")
 

Variables

int css_init_done = 0
 
int max_ssid
 
struct channel_subsystemchannel_subsystems [__MAX_CSSID+1]
 
struct workqueue_structcio_work_q
 

Macro Definition Documentation

#define KMSG_COMPONENT   "cio"

Definition at line 10 of file css.c.

#define pr_fmt (   fmt)    KMSG_COMPONENT ": " fmt

Definition at line 11 of file css.c.

Function Documentation

void channel_subsystem_reinit ( void  )

Definition at line 1060 of file css.c.

int css_complete_work ( void  )

Definition at line 1032 of file css.c.

int css_driver_register ( struct css_driver cdrv)

css_driver_register - register a css driver : css driver to register

This is mainly a wrapper around driver_register that sets name and bus_type in the embedded struct device_driver correctly.

Definition at line 1255 of file css.c.

void css_driver_unregister ( struct css_driver cdrv)

css_driver_unregister - unregister a css driver : css driver to unregister

This is a wrapper around driver_unregister.

Definition at line 1268 of file css.c.

int css_probe_device ( struct subchannel_id  schid)

Definition at line 317 of file css.c.

void css_sch_device_unregister ( struct subchannel sch)

css_sch_device_unregister - unregister a subchannel : subchannel to be unregistered

Definition at line 189 of file css.c.

int css_sch_is_valid ( struct schib schib)

css_sch_is_valid() - check if a subchannel is valid : subchannel information block for the subchannel

Definition at line 362 of file css.c.

void css_sched_sch_todo ( struct subchannel sch,
enum sch_todo  todo 
)

css_sched_sch_todo - schedule a subchannel operation : subchannel

Todo:
: todo

Schedule the operation identified by

Todo:
to be performed on the slow path workqueue. Do nothing if another operation with higher priority is already scheduled. Needs to be called with subchannel lock held.

Definition at line 437 of file css.c.

void css_schedule_eval ( struct subchannel_id  schid)

Definition at line 570 of file css.c.

void css_schedule_eval_all ( void  )

Definition at line 581 of file css.c.

void css_schedule_reprobe ( void  )

Definition at line 630 of file css.c.

void css_update_ssd_info ( struct subchannel sch)

Definition at line 227 of file css.c.

void css_wait_for_slow_path ( void  )

Definition at line 624 of file css.c.

EXPORT_SYMBOL_GPL ( css_sch_device_unregister  )
EXPORT_SYMBOL_GPL ( css_sch_is_valid  )
EXPORT_SYMBOL_GPL ( css_sched_sch_todo  )
EXPORT_SYMBOL_GPL ( css_schedule_reprobe  )
EXPORT_SYMBOL_GPL ( css_driver_register  )
EXPORT_SYMBOL_GPL ( css_driver_unregister  )
int for_each_subchannel ( int(*)(struct subchannel_id, void *)  fn,
void data 
)

Definition at line 41 of file css.c.

int for_each_subchannel_staged ( int(*)(struct subchannel *, void *)  fn_known,
int(*)(struct subchannel_id, void *)  fn_unknown,
void data 
)

Definition at line 107 of file css.c.

struct subchannel* get_subchannel_by_schid ( struct subchannel_id  schid)
read

Definition at line 348 of file css.c.

MODULE_LICENSE ( "GPL"  )
int sch_is_pseudo_sch ( struct subchannel sch)

Definition at line 1106 of file css.c.

subsys_initcall ( channel_subsystem_init  )
subsys_initcall_sync ( channel_subsystem_init_sync  )

Variable Documentation

struct channel_subsystem* channel_subsystems[__MAX_CSSID+1]

Definition at line 37 of file css.c.

struct workqueue_struct* cio_work_q

Definition at line 568 of file css.c.

int css_init_done = 0

Definition at line 34 of file css.c.

int max_ssid

Definition at line 35 of file css.c.