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

Go to the source code of this file.

Data Structures

struct  pmcw
 
struct  schib_config
 
struct  schib
 
struct  subchannel
 

Macros

#define to_subchannel(n)   container_of(n, struct subchannel, dev)
 
#define cio_is_console(schid)   0
 
#define cio_get_console_subchannel()   NULL
 
#define cio_get_console_lock()   NULL
 
#define cio_get_console_priv()   NULL
 

Enumerations

enum  sch_todo { SCH_TODO_NOTHING, SCH_TODO_EVAL, SCH_TODO_UNREG }
 
enum  { SUBCHANNEL_TYPE_IO = 0, SUBCHANNEL_TYPE_CHSC = 1, SUBCHANNEL_TYPE_MSG = 2, SUBCHANNEL_TYPE_ADM = 3 }
 

Functions

struct pmcw __attribute__ ((packed))
 
struct schib __attribute__ ((packed, aligned(4)))
 
struct subchannel __attribute__ ((aligned(8)))
 Packet vector entry.
 
int cio_validate_subchannel (struct subchannel *, struct subchannel_id)
 
int cio_enable_subchannel (struct subchannel *, u32)
 
int cio_disable_subchannel (struct subchannel *)
 
int cio_cancel (struct subchannel *)
 
int cio_clear (struct subchannel *)
 
int cio_resume (struct subchannel *)
 
int cio_halt (struct subchannel *)
 
int cio_start (struct subchannel *, struct ccw1 *, __u8)
 
int cio_start_key (struct subchannel *, struct ccw1 *, __u8, __u8)
 
int cio_set_options (struct subchannel *, int)
 
int cio_update_schib (struct subchannel *sch)
 
int cio_commit_config (struct subchannel *sch)
 
int cio_tm_start_key (struct subchannel *sch, struct tcw *tcw, u8 lpm, u8 key)
 
int cio_tm_intrg (struct subchannel *sch)
 
int cio_create_sch_lock (struct subchannel *)
 
void do_adapter_IO (u8 isc)
 
void do_IRQ (struct pt_regs *)
 

Variables

u32 intparm
 
u32 qf
 
u32 w
 
u32 isc
 
u32 res5
 
u32 ena
 
u32 lm
 
u32 mme
 
u32 mp
 
u32 tf
 
u32 dnv
 
u32 dev
 
u8 lpm
 
u8 pnom
 
u8 lpum
 
u8 pim
 
u16 mbi
 
u8 pom
 
u8 pam
 
u8 chpid [8]
 
u32 unused1
 
u32 st
 
u32 unused2
 
u32 mbfc
 
u32 xmwme
 
u32 csense
 
u64 mba
 
struct pmcw pmcw
 
union scsw scsw
 
__u8 mda [4]
 
enum sch_todo __attribute__
 
struct subchannel_id schid
 
spinlock_tlock
 
struct mutex reg_mutex
 
__u8 vpm
 
__u8 opm
 
struct schib schib
 
struct chsc_ssd_info ssd_info
 
enum sch_todo todo
 
struct work_struct todo_work
 
struct schib_config config
 
: name of the device to match

bus_find_device_by_name - device iterator for locating a particular device of a specific name : bus type : Device to begin with

This is similar to the bus_find_device() function above, but it handles searching by a name automatically, no need to write another strcmp matching function.

struct css_driverdriver
 

Macro Definition Documentation

#define cio_get_console_lock ( )    NULL

Definition at line 139 of file cio.h.

#define cio_get_console_priv ( )    NULL

Definition at line 140 of file cio.h.

#define cio_get_console_subchannel ( )    NULL

Definition at line 138 of file cio.h.

#define cio_is_console (   schid)    0

Definition at line 137 of file cio.h.

#define to_subchannel (   n)    container_of(n, struct subchannel, dev)

Definition at line 105 of file cio.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
SUBCHANNEL_TYPE_IO 
SUBCHANNEL_TYPE_CHSC 
SUBCHANNEL_TYPE_MSG 
SUBCHANNEL_TYPE_ADM 

Definition at line 107 of file cio.h.

enum sch_todo
Enumerator:
SCH_TODO_NOTHING 
SCH_TODO_EVAL 
SCH_TODO_UNREG 

Definition at line 75 of file cio.h.

Function Documentation

struct pmcw __attribute__ ( (packed)  )
read

Definition at line 171 of file esd_usb2.c.

struct schib __attribute__ ( (packed, aligned(4))  )
read

Scatter-gather list for preada/pwritea calls.

< Client physical address of the buffer segment.

< Page table entry describing the caching and location override characteristics of the buffer segment. Some drivers ignore this element and will require that the NOCACHE flag be set on their requests.

< Length of the buffer segment.

Definition at line 1740 of file hypervisor.h.

Packet vector entry.

This data structure is used with netio_send_packet_vector() to send multiple packets with one NetIO call. The structure should be initialized by calling netio_pkt_vector_set(), rather than by setting the fields directly.

This structure is guaranteed to be a power of two in size, no bigger than one L2 cache line, and to be aligned modulo its size.

Reserved for use by the user application. When initialized with the netio_set_pkt_vector_entry() function, this field is guaranteed to be visible to readers only after all other fields are already visible. This way it can be used as a valid flag or generation counter.

Low 8 bits of the packet address to send. The high bits are acquired from the 'handle' field.

Number of bytes to transmit.

The raw handle from a netio_pkt_t. If this is NETIO_PKT_HANDLE_NONE, this vector entry will be skipped and no packet will be transmitted.

Definition at line 9 of file extable.c.

int cio_cancel ( struct subchannel )

Definition at line 283 of file cio.c.

int cio_clear ( struct subchannel )

Definition at line 249 of file cio.c.

int cio_commit_config ( struct subchannel sch)

Definition at line 343 of file cio.c.

int cio_create_sch_lock ( struct subchannel )

Definition at line 474 of file cio.c.

int cio_disable_subchannel ( struct subchannel sch)

cio_disable_subchannel - disable a subchannel. : subchannel to disable

Definition at line 445 of file cio.c.

int cio_enable_subchannel ( struct subchannel sch,
u32  intparm 
)

cio_enable_subchannel - enable a subchannel. : subchannel to be enabled : interruption parameter to set

Definition at line 404 of file cio.c.

int cio_halt ( struct subchannel )

Definition at line 216 of file cio.c.

int cio_resume ( struct subchannel )

Definition at line 184 of file cio.c.

int cio_set_options ( struct subchannel ,
int   
)

Definition at line 86 of file cio.c.

int cio_start ( struct subchannel ,
struct ccw1 ,
__u8   
)

Definition at line 175 of file cio.c.

int cio_start_key ( struct subchannel ,
struct ccw1 ,
__u8  ,
__u8   
)

Definition at line 121 of file cio.c.

int cio_tm_intrg ( struct subchannel sch)

cio_tm_intrg - perform interrogate function - subchannel on which to perform the interrogate function

If the specified subchannel is running in transport-mode, perform the interrogate function. Return zero on success, non-zero otherwie.

Definition at line 1099 of file cio.c.

int cio_tm_start_key ( struct subchannel sch,
struct tcw tcw,
u8  lpm,
u8  key 
)

cio_tm_start_key - perform start function : subchannel on which to perform the start function : transport-command word to be started : mask of paths to use : storage key to use for storage access

Start the tcw on the given subchannel. Return zero on success, non-zero otherwise.

Definition at line 1069 of file cio.c.

int cio_update_schib ( struct subchannel sch)

cio_update_schib - Perform stsch and update schib if subchannel is valid. : subchannel on which to perform stsch Return zero on success, -ENODEV otherwise.

Definition at line 387 of file cio.c.

int cio_validate_subchannel ( struct subchannel sch,
struct subchannel_id  schid 
)

cio_validate_subchannel - basic validation of subchannel : subchannel structure to be filled out : subchannel id

Find out subchannel type and initialize struct subchannel. Return codes: 0 on success -ENXIO for non-defined subchannels -ENODEV for invalid subchannels or blacklisted devices -EIO for subchannels in an invalid subchannel set

Definition at line 530 of file cio.c.

void do_adapter_IO ( u8  isc)

Definition at line 115 of file airq.c.

void do_IRQ ( struct pt_regs )

Definition at line 27 of file irq.c.

Variable Documentation

u8 chpid[8]

Definition at line 66 of file cio.h.

Definition at line 123 of file cio.h.

u32 csense

Definition at line 72 of file cio.h.

Definition at line 58 of file cio.h.

u32 dnv

Definition at line 57 of file cio.h.

:function to call for each driver

bus_for_each_drv - driver iterator : bus we're dealing with. : driver to start iterating on. : data to pass to the callback.

This is nearly identical to the device iterator above. We iterate over each driver that belongs to , and call

Definition at line 120 of file cio.h.

u32 ena

Definition at line 52 of file cio.h.

u32 intparm

Definition at line 47 of file cio.h.

int isc

Definition at line 50 of file cio.h.

u32 lm

Definition at line 53 of file cio.h.

spinlock_t* lock

Definition at line 105 of file cio.h.

__u8 lpm

Definition at line 59 of file cio.h.

u8 lpum

Definition at line 61 of file cio.h.

__u64 mba

Definition at line 60 of file cio.h.

u32 mbfc

Definition at line 70 of file cio.h.

u16 mbi

Definition at line 63 of file cio.h.

__u8 mda[4]

Definition at line 73 of file cio.h.

u32 mme

Definition at line 54 of file cio.h.

u32 mp

Definition at line 55 of file cio.h.

__u8 opm

Definition at line 115 of file cio.h.

u8 pam

Definition at line 65 of file cio.h.

u8 pim

Definition at line 62 of file cio.h.

Definition at line 70 of file cio.h.

u8 pnom

Definition at line 60 of file cio.h.

u8 pom

Definition at line 64 of file cio.h.

u32 qf

Definition at line 48 of file cio.h.

struct mutex reg_mutex

Definition at line 106 of file cio.h.

u32 res5

Definition at line 51 of file cio.h.

Definition at line 116 of file cio.h.

Definition at line 104 of file cio.h.

union scsw scsw

Definition at line 71 of file cio.h.

Definition at line 118 of file cio.h.

enum { ... } st

Definition at line 68 of file cio.h.

u32 tf

Definition at line 56 of file cio.h.

enum sch_todo todo

Definition at line 121 of file cio.h.

struct work_struct todo_work

Definition at line 122 of file cio.h.

u32 unused1

Definition at line 67 of file cio.h.

u32 unused2

Definition at line 69 of file cio.h.

__u8 vpm

Definition at line 113 of file cio.h.

u32 w

Definition at line 49 of file cio.h.

u32 xmwme

Definition at line 71 of file cio.h.