Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
css.h File Reference
#include <linux/mutex.h>
#include <linux/wait.h>
#include <linux/workqueue.h>
#include <linux/device.h>
#include <linux/types.h>
#include <asm/cio.h>
#include <asm/chpid.h>
#include <asm/schid.h>
#include "cio.h"

Go to the source code of this file.

Data Structures

struct  path_state
 
struct  extended_cssid
 
struct  pgid
 
struct  css_driver
 
struct  channel_subsystem
 

Macros

#define SPID_FUNC_SINGLE_PATH   0x00
 
#define SPID_FUNC_MULTI_PATH   0x80
 
#define SPID_FUNC_ESTABLISH   0x00
 
#define SPID_FUNC_RESIGN   0x40
 
#define SPID_FUNC_DISBAND   0x20
 
#define SNID_STATE1_RESET   0
 
#define SNID_STATE1_UNGROUPED   2
 
#define SNID_STATE1_GROUPED   3
 
#define SNID_STATE2_NOT_RESVD   0
 
#define SNID_STATE2_RESVD_ELSE   2
 
#define SNID_STATE2_RESVD_SELF   3
 
#define SNID_STATE3_MULTI_PATH   1
 
#define SNID_STATE3_SINGLE_PATH   0
 
#define to_cssdriver(n)   container_of(n, struct css_driver, drv)
 
#define to_css(dev)   container_of(dev, struct channel_subsystem, device)
 

Functions

struct path_state __attribute__ ((packed))
 
int css_driver_register (struct css_driver *)
 
void css_driver_unregister (struct css_driver *)
 
void css_sch_device_unregister (struct subchannel *)
 
int css_probe_device (struct subchannel_id)
 
struct subchannelget_subchannel_by_schid (struct subchannel_id)
 
int for_each_subchannel_staged (int(*fn_known)(struct subchannel *, void *), int(*fn_unknown)(struct subchannel_id, void *), void *data)
 
int for_each_subchannel (int(*fn)(struct subchannel_id, void *), void *)
 
void css_reiterate_subchannels (void)
 
void css_update_ssd_info (struct subchannel *sch)
 
void channel_subsystem_reinit (void)
 
void css_schedule_eval (struct subchannel_id schid)
 
void css_schedule_eval_all (void)
 
int css_complete_work (void)
 
int sch_is_pseudo_sch (struct subchannel *)
 
int css_sch_is_valid (struct schib *)
 
void css_wait_for_slow_path (void)
 
void css_sched_sch_todo (struct subchannel *sch, enum sch_todo todo)
 

Variables

__u8 state1
 
__u8 state2
 
__u8 state3
 
__u8 resvd
 
u8 version
 
u8 cssid
 
__u8 fc
 
struct path_state ps
 
__u32 cpu_addr
 
struct extended_cssid ext_cssid
 
__u32 cpu_id
 
__u32 cpu_model
 
__u32 tod_high
 
struct css_driver __attribute__
 
int css_init_done
 
int max_ssid
 
struct channel_subsystemchannel_subsystems []
 
struct workqueue_structcio_work_q
 

Macro Definition Documentation

#define SNID_STATE1_GROUPED   3

Definition at line 27 of file css.h.

#define SNID_STATE1_RESET   0

Definition at line 25 of file css.h.

#define SNID_STATE1_UNGROUPED   2

Definition at line 26 of file css.h.

#define SNID_STATE2_NOT_RESVD   0

Definition at line 29 of file css.h.

#define SNID_STATE2_RESVD_ELSE   2

Definition at line 30 of file css.h.

#define SNID_STATE2_RESVD_SELF   3

Definition at line 31 of file css.h.

#define SNID_STATE3_MULTI_PATH   1

Definition at line 33 of file css.h.

#define SNID_STATE3_SINGLE_PATH   0

Definition at line 34 of file css.h.

#define SPID_FUNC_DISBAND   0x20

Definition at line 23 of file css.h.

#define SPID_FUNC_ESTABLISH   0x00

Definition at line 21 of file css.h.

#define SPID_FUNC_MULTI_PATH   0x80

Definition at line 20 of file css.h.

#define SPID_FUNC_RESIGN   0x40

Definition at line 22 of file css.h.

#define SPID_FUNC_SINGLE_PATH   0x00

Definition at line 19 of file css.h.

#define to_css (   dev)    container_of(dev, struct channel_subsystem, device)

Definition at line 129 of file css.h.

#define to_cssdriver (   n)    container_of(n, struct css_driver, drv)

Definition at line 98 of file css.h.

Function Documentation

struct path_state __attribute__ ( (packed)  )
read

Definition at line 171 of file esd_usb2.c.

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  )

Definition at line 317 of file css.c.

void css_reiterate_subchannels ( void  )
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_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.

int for_each_subchannel ( int(*)(struct subchannel_id, void *)  fn,
void  
)

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  )
read

Definition at line 348 of file css.c.

int sch_is_pseudo_sch ( struct subchannel )

Definition at line 1106 of file css.c.

Variable Documentation

struct channel_subsystem* channel_subsystems[]

Definition at line 37 of file css.c.

struct workqueue_struct* cio_work_q

Definition at line 568 of file css.c.

__u32 cpu_addr

Definition at line 57 of file css.h.

Definition at line 69 of file css.h.

Definition at line 70 of file css.h.

int css_init_done

Definition at line 34 of file css.c.

u8 cssid

Definition at line 48 of file css.h.

Definition at line 58 of file css.h.

__u8 fc

Definition at line 53 of file css.h.

int max_ssid

Definition at line 35 of file css.c.

Definition at line 54 of file css.h.

__u8 resvd

Definition at line 45 of file css.h.

__u8 state1

Definition at line 42 of file css.h.

__u8 state2

Definition at line 43 of file css.h.

__u8 state3

Definition at line 44 of file css.h.

__u32 tod_high

Definition at line 71 of file css.h.

u8 version

Definition at line 47 of file css.h.