Linux Kernel
3.7.1
|
#include <linux/module.h>
#include <linux/wait.h>
#include <linux/blkdev.h>
#include <linux/genhd.h>
#include <linux/hdreg.h>
#include <linux/interrupt.h>
#include <linux/log2.h>
#include <asm/ccwdev.h>
#include <linux/workqueue.h>
#include <asm/debug.h>
#include <asm/dasd.h>
#include <asm/idals.h>
Go to the source code of this file.
Data Structures | |
struct | dasd_ccw_req |
struct | dasd_uid |
struct | dasd_discipline |
struct | dasd_path |
struct | dasd_profile_info |
struct | dasd_profile |
struct | dasd_device |
struct | dasd_block |
struct | dasd_mchunk |
Macros | |
#define | DASD_PER_MAJOR (1U << (MINORBITS - DASD_PARTN_BITS)) |
#define | DASD_PARTN_MASK ((1 << DASD_PARTN_BITS) - 1) |
#define | DASD_STATE_NEW 0 |
#define | DASD_STATE_KNOWN 1 |
#define | DASD_STATE_BASIC 2 |
#define | DASD_STATE_UNFMT 3 |
#define | DASD_STATE_READY 4 |
#define | DASD_STATE_ONLINE 5 |
#define | DASD_ECKD_MAGIC 0xC5C3D2C4 |
#define | DASD_DIAG_MAGIC 0xC4C9C1C7 |
#define | DASD_FBA_MAGIC 0xC6C2C140 |
#define | DASD_SENSE_BIT_0 0x80 |
#define | DASD_SENSE_BIT_1 0x40 |
#define | DASD_SENSE_BIT_2 0x20 |
#define | DASD_SENSE_BIT_3 0x10 |
#define | DASD_SIM_SENSE 0x0F |
#define | DASD_SIM_MSG_TO_OP 0x03 |
#define | DASD_SIM_LOG 0x0C |
#define | CDEV_NESTED_FIRST 1 |
#define | CDEV_NESTED_SECOND 2 |
#define | DBF_DEV_EVENT(d_level, d_device, d_str, d_data...) |
#define | DBF_DEV_EXC(d_level, d_device, d_str, d_data...) |
#define | DBF_EVENT(d_level, d_str, d_data...) |
#define | DBF_EVENT_DEVID(d_level, d_cdev, d_str, d_data...) |
#define | DBF_EXC(d_level, d_str, d_data...) |
#define | ERRORLENGTH 30 |
#define | DBF_EMERG 0 /* system is unusable */ |
#define | DBF_ALERT 1 /* action must be taken immediately */ |
#define | DBF_CRIT 2 /* critical conditions */ |
#define | DBF_ERR 3 /* error conditions */ |
#define | DBF_WARNING 4 /* warning conditions */ |
#define | DBF_NOTICE 5 /* normal but significant condition */ |
#define | DBF_INFO 6 /* informational */ |
#define | DBF_DEBUG 6 /* debug-level messages */ |
#define | DEV_MESSAGE(d_loglevel, d_device, d_string, d_args...) |
#define | MESSAGE(d_loglevel, d_string, d_args...) |
#define | DEV_MESSAGE_LOG(d_loglevel, d_device, d_string, d_args...) |
#define | MESSAGE_LOG(d_loglevel, d_string, d_args...) |
#define | DASD_CQR_FILLED 0x00 /* request is ready to be processed */ |
#define | DASD_CQR_DONE 0x01 /* request is completed successfully */ |
#define | DASD_CQR_NEED_ERP 0x02 /* request needs recovery action */ |
#define | DASD_CQR_IN_ERP 0x03 /* request is in recovery */ |
#define | DASD_CQR_FAILED 0x04 /* request is finally failed */ |
#define | DASD_CQR_TERMINATED 0x05 /* request was stopped by driver */ |
#define | DASD_CQR_QUEUED 0x80 /* request is queued to be processed */ |
#define | DASD_CQR_IN_IO 0x81 /* request is currently in IO */ |
#define | DASD_CQR_ERROR 0x82 /* request is completed with error */ |
#define | DASD_CQR_CLEAR_PENDING 0x83 /* request is clear pending */ |
#define | DASD_CQR_CLEARED 0x84 /* request was cleared */ |
#define | DASD_CQR_SUCCESS 0x85 /* request was successful */ |
#define | DASD_EXPIRES 300 |
#define | DASD_EXPIRES_MAX 40000000 |
#define | DASD_CQR_FLAGS_USE_ERP 0 /* use ERP for this request */ |
#define | DASD_CQR_FLAGS_FAILFAST 1 /* FAILFAST */ |
#define | DASD_CQR_VERIFY_PATH 2 /* path verification request */ |
#define | DASD_CQR_ALLOW_SLOCK |
#define | UA_NOT_CONFIGURED 0x00 |
#define | UA_BASE_DEVICE 0x01 |
#define | UA_BASE_PAV_ALIAS 0x02 |
#define | UA_HYPER_PAV_ALIAS 0x03 |
#define | DASD_EER_DISABLE 0 |
#define | DASD_EER_TRIGGER 1 |
#define | DASD_EER_FATALERROR 1 |
#define | DASD_EER_NOPATH 2 |
#define | DASD_EER_STATECHANGE 3 |
#define | DASD_EER_PPRCSUSPEND 4 |
#define | DASD_STOPPED_NOT_ACC 1 /* not accessible */ |
#define | DASD_STOPPED_QUIESCE 2 /* Quiesced */ |
#define | DASD_STOPPED_PENDING 4 /* long busy */ |
#define | DASD_STOPPED_DC_WAIT 8 /* disconnected, wait */ |
#define | DASD_STOPPED_SU 16 /* summary unit check handling */ |
#define | DASD_STOPPED_PM 32 /* pm state transition */ |
#define | DASD_UNRESUMED_PM 64 /* pm resume failed state */ |
#define | DASD_FLAG_OFFLINE 3 /* device is in offline processing */ |
#define | DASD_FLAG_EER_SNSS 4 /* A SNSS is required */ |
#define | DASD_FLAG_EER_IN_USE 5 /* A SNSS request is running */ |
#define | DASD_FLAG_DEVICE_RO |
#define | DASD_FLAG_IS_RESERVED 7 /* The device is reserved */ |
#define | DASD_FLAG_LOCK_STOLEN 8 /* The device lock was stolen */ |
#define | DASD_FLAG_SUSPENDED 9 /* The device was suspended */ |
#define | DASD_PROFILE_OFF 0 |
#define | DASD_PROFILE_ON 1 |
#define | DASD_PROFILE_GLOBAL_ONLY 2 |
#define | dasd_eer_init() (0) |
#define | dasd_eer_exit() do { } while (0) |
#define | dasd_eer_enable(d) (0) |
#define | dasd_eer_disable(d) do { } while (0) |
#define | dasd_eer_write(d, c, i) do { } while (0) |
#define | dasd_eer_snss(d) do { } while (0) |
#define | dasd_eer_enabled(d) (0) |
Typedefs | |
typedef struct dasd_ccw_req *(* | dasd_erp_fn_t )(struct dasd_ccw_req *) |
Variables | |
struct dasd_ccw_req | __attribute__ |
struct dasd_discipline * | dasd_diag_discipline_pointer |
struct list_head | list |
unsigned long | size |
debug_info_t * | dasd_debug_area |
struct dasd_profile_info | dasd_global_profile_data |
unsigned int | dasd_global_profile_level |
struct block_device_operations | dasd_device_operations |
struct kmem_cache * | dasd_page_cache |
int | dasd_max_devindex |
int | dasd_probeonly |
int | dasd_autodetect |
int | dasd_nopav |
int | dasd_nofcx |
#define CDEV_NESTED_FIRST 1 |
Definition at line 82 of file dasd_int.h.
#define CDEV_NESTED_SECOND 2 |
Definition at line 83 of file dasd_int.h.
#define DASD_CQR_ALLOW_SLOCK |
Definition at line 232 of file dasd_int.h.
#define DASD_CQR_CLEAR_PENDING 0x83 /* request is clear pending */ |
Definition at line 220 of file dasd_int.h.
#define DASD_CQR_CLEARED 0x84 /* request was cleared */ |
Definition at line 221 of file dasd_int.h.
#define DASD_CQR_DONE 0x01 /* request is completed successfully */ |
Definition at line 211 of file dasd_int.h.
#define DASD_CQR_ERROR 0x82 /* request is completed with error */ |
Definition at line 219 of file dasd_int.h.
#define DASD_CQR_FAILED 0x04 /* request is finally failed */ |
Definition at line 214 of file dasd_int.h.
#define DASD_CQR_FILLED 0x00 /* request is ready to be processed */ |
Definition at line 210 of file dasd_int.h.
#define DASD_CQR_FLAGS_FAILFAST 1 /* FAILFAST */ |
Definition at line 230 of file dasd_int.h.
Definition at line 229 of file dasd_int.h.
#define DASD_CQR_IN_ERP 0x03 /* request is in recovery */ |
Definition at line 213 of file dasd_int.h.
#define DASD_CQR_IN_IO 0x81 /* request is currently in IO */ |
Definition at line 218 of file dasd_int.h.
#define DASD_CQR_NEED_ERP 0x02 /* request needs recovery action */ |
Definition at line 212 of file dasd_int.h.
#define DASD_CQR_QUEUED 0x80 /* request is queued to be processed */ |
Definition at line 217 of file dasd_int.h.
#define DASD_CQR_SUCCESS 0x85 /* request was successful */ |
Definition at line 222 of file dasd_int.h.
#define DASD_CQR_TERMINATED 0x05 /* request was stopped by driver */ |
Definition at line 215 of file dasd_int.h.
Definition at line 231 of file dasd_int.h.
#define DASD_DIAG_MAGIC 0xC4C9C1C7 |
Definition at line 61 of file dasd_int.h.
#define DASD_ECKD_MAGIC 0xC5C3D2C4 |
Definition at line 60 of file dasd_int.h.
#define DASD_EER_DISABLE 0 |
Definition at line 364 of file dasd_int.h.
#define dasd_eer_disable | ( | d | ) | do { } while (0) |
Definition at line 780 of file dasd_int.h.
#define dasd_eer_enable | ( | d | ) | (0) |
Definition at line 779 of file dasd_int.h.
#define dasd_eer_enabled | ( | d | ) | (0) |
Definition at line 783 of file dasd_int.h.
#define dasd_eer_exit | ( | void | ) | do { } while (0) |
Definition at line 778 of file dasd_int.h.
#define DASD_EER_FATALERROR 1 |
Definition at line 368 of file dasd_int.h.
#define dasd_eer_init | ( | void | ) | (0) |
Definition at line 777 of file dasd_int.h.
#define DASD_EER_NOPATH 2 |
Definition at line 369 of file dasd_int.h.
#define DASD_EER_PPRCSUSPEND 4 |
Definition at line 371 of file dasd_int.h.
#define dasd_eer_snss | ( | d | ) | do { } while (0) |
Definition at line 782 of file dasd_int.h.
#define DASD_EER_STATECHANGE 3 |
Definition at line 370 of file dasd_int.h.
#define DASD_EER_TRIGGER 1 |
Definition at line 365 of file dasd_int.h.
Definition at line 781 of file dasd_int.h.
#define DASD_EXPIRES 300 |
Definition at line 225 of file dasd_int.h.
#define DASD_EXPIRES_MAX 40000000 |
Definition at line 226 of file dasd_int.h.
#define DASD_FBA_MAGIC 0xC6C2C140 |
Definition at line 62 of file dasd_int.h.
#define DASD_FLAG_DEVICE_RO |
Definition at line 509 of file dasd_int.h.
Definition at line 508 of file dasd_int.h.
Definition at line 507 of file dasd_int.h.
Definition at line 510 of file dasd_int.h.
Definition at line 511 of file dasd_int.h.
Definition at line 506 of file dasd_int.h.
Definition at line 512 of file dasd_int.h.
#define DASD_PARTN_MASK ((1 << DASD_PARTN_BITS) - 1) |
Definition at line 14 of file dasd_int.h.
#define DASD_PER_MAJOR (1U << (MINORBITS - DASD_PARTN_BITS)) |
Definition at line 13 of file dasd_int.h.
#define DASD_PROFILE_GLOBAL_ONLY 2 |
Definition at line 625 of file dasd_int.h.
#define DASD_PROFILE_OFF 0 |
Definition at line 623 of file dasd_int.h.
#define DASD_PROFILE_ON 1 |
Definition at line 624 of file dasd_int.h.
#define DASD_SENSE_BIT_0 0x80 |
Definition at line 71 of file dasd_int.h.
#define DASD_SENSE_BIT_1 0x40 |
Definition at line 72 of file dasd_int.h.
#define DASD_SENSE_BIT_2 0x20 |
Definition at line 73 of file dasd_int.h.
#define DASD_SENSE_BIT_3 0x10 |
Definition at line 74 of file dasd_int.h.
#define DASD_SIM_LOG 0x0C |
Definition at line 79 of file dasd_int.h.
#define DASD_SIM_MSG_TO_OP 0x03 |
Definition at line 78 of file dasd_int.h.
#define DASD_SIM_SENSE 0x0F |
Definition at line 77 of file dasd_int.h.
#define DASD_STATE_BASIC 2 |
Definition at line 41 of file dasd_int.h.
#define DASD_STATE_KNOWN 1 |
Definition at line 40 of file dasd_int.h.
#define DASD_STATE_NEW 0 |
Definition at line 39 of file dasd_int.h.
#define DASD_STATE_ONLINE 5 |
Definition at line 44 of file dasd_int.h.
#define DASD_STATE_READY 4 |
Definition at line 43 of file dasd_int.h.
#define DASD_STATE_UNFMT 3 |
Definition at line 42 of file dasd_int.h.
#define DASD_STOPPED_DC_WAIT 8 /* disconnected, wait */ |
Definition at line 500 of file dasd_int.h.
#define DASD_STOPPED_NOT_ACC 1 /* not accessible */ |
Definition at line 497 of file dasd_int.h.
Definition at line 499 of file dasd_int.h.
Definition at line 502 of file dasd_int.h.
#define DASD_STOPPED_QUIESCE 2 /* Quiesced */ |
Definition at line 498 of file dasd_int.h.
Definition at line 501 of file dasd_int.h.
Definition at line 503 of file dasd_int.h.
#define DBF_ALERT 1 /* action must be taken immediately */ |
Definition at line 135 of file dasd_int.h.
#define DBF_CRIT 2 /* critical conditions */ |
Definition at line 136 of file dasd_int.h.
Definition at line 141 of file dasd_int.h.
#define DBF_DEV_EVENT | ( | d_level, | |
d_device, | |||
d_str, | |||
d_data... | |||
) |
Definition at line 88 of file dasd_int.h.
#define DBF_DEV_EXC | ( | d_level, | |
d_device, | |||
d_str, | |||
d_data... | |||
) |
Definition at line 96 of file dasd_int.h.
Definition at line 134 of file dasd_int.h.
#define DBF_ERR 3 /* error conditions */ |
Definition at line 137 of file dasd_int.h.
#define DBF_EVENT | ( | d_level, | |
d_str, | |||
d_data... | |||
) |
Definition at line 104 of file dasd_int.h.
#define DBF_EVENT_DEVID | ( | d_level, | |
d_cdev, | |||
d_str, | |||
d_data... | |||
) |
Definition at line 112 of file dasd_int.h.
#define DBF_EXC | ( | d_level, | |
d_str, | |||
d_data... | |||
) |
Definition at line 122 of file dasd_int.h.
#define DBF_INFO 6 /* informational */ |
Definition at line 140 of file dasd_int.h.
#define DBF_NOTICE 5 /* normal but significant condition */ |
Definition at line 139 of file dasd_int.h.
#define DBF_WARNING 4 /* warning conditions */ |
Definition at line 138 of file dasd_int.h.
#define DEV_MESSAGE | ( | d_loglevel, | |
d_device, | |||
d_string, | |||
d_args... | |||
) |
Definition at line 144 of file dasd_int.h.
#define DEV_MESSAGE_LOG | ( | d_loglevel, | |
d_device, | |||
d_string, | |||
d_args... | |||
) |
Definition at line 158 of file dasd_int.h.
#define ERRORLENGTH 30 |
Definition at line 131 of file dasd_int.h.
#define MESSAGE | ( | d_loglevel, | |
d_string, | |||
d_args... | |||
) |
Definition at line 151 of file dasd_int.h.
#define MESSAGE_LOG | ( | d_loglevel, | |
d_string, | |||
d_args... | |||
) |
Definition at line 164 of file dasd_int.h.
#define UA_BASE_DEVICE 0x01 |
Definition at line 241 of file dasd_int.h.
#define UA_BASE_PAV_ALIAS 0x02 |
Definition at line 242 of file dasd_int.h.
#define UA_HYPER_PAV_ALIAS 0x03 |
Definition at line 243 of file dasd_int.h.
#define UA_NOT_CONFIGURED 0x00 |
Definition at line 240 of file dasd_int.h.
|
read |
Definition at line 235 of file dasd_int.h.
|
read |
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.
|
read |
Definition at line 2699 of file dasd_3990_erp.c.
void dasd_3990_erp_handle_sim | ( | struct dasd_device * | , |
char * | |||
) |
Definition at line 2066 of file dasd_3990_erp.c.
void dasd_add_link_to_gendisk | ( | struct gendisk * | , |
struct dasd_device * | |||
) |
Definition at line 676 of file dasd_devmap.c.
void dasd_add_request_head | ( | struct dasd_ccw_req * | ) |
void dasd_add_request_tail | ( | struct dasd_ccw_req * | ) |
int dasd_add_sysfs_files | ( | struct ccw_device * | ) |
Definition at line 1371 of file dasd_devmap.c.
|
read |
|
read |
|
read |
Definition at line 26 of file dasd_erp.c.
void dasd_block_clear_timer | ( | struct dasd_block * | ) |
Definition at line 466 of file dasd_devmap.c.
int dasd_cancel_req | ( | struct dasd_ccw_req * | ) |
|
read |
Definition at line 540 of file dasd_devmap.c.
|
read |
Definition at line 87 of file dasd_erp.c.
|
read |
Definition at line 124 of file dasd_erp.c.
void dasd_delete_device | ( | struct dasd_device * | ) |
Definition at line 591 of file dasd_devmap.c.
void dasd_destroy_partitions | ( | struct dasd_block * | ) |
Definition at line 130 of file dasd_genhd.c.
void dasd_device_clear_timer | ( | struct dasd_device * | ) |
|
read |
Definition at line 665 of file dasd_devmap.c.
|
read |
Definition at line 651 of file dasd_devmap.c.
|
read |
Definition at line 496 of file dasd_devmap.c.
|
read |
Definition at line 688 of file dasd_devmap.c.
int dasd_device_is_ro | ( | struct dasd_device * | ) |
void dasd_device_remove_stop_bits | ( | struct dasd_device * | , |
int | |||
) |
void dasd_device_set_stop_bits | ( | struct dasd_device * | , |
int | |||
) |
Definition at line 1396 of file dasd_devmap.c.
Definition at line 1384 of file dasd_devmap.c.
void dasd_enable_device | ( | struct dasd_device * | ) |
int dasd_flush_device_queue | ( | struct dasd_device * | ) |
void dasd_free_block | ( | struct dasd_block * | ) |
void dasd_free_device | ( | struct dasd_device * | ) |
void dasd_free_erp_request | ( | struct dasd_ccw_req * | , |
struct dasd_device * | |||
) |
Definition at line 72 of file dasd_erp.c.
int dasd_gendisk_alloc | ( | struct dasd_block * | ) |
Definition at line 29 of file dasd_genhd.c.
Definition at line 176 of file dasd_genhd.c.
void dasd_gendisk_free | ( | struct dasd_block * | ) |
Definition at line 86 of file dasd_genhd.c.
Definition at line 162 of file dasd_genhd.c.
void dasd_generic_handle_state_change | ( | struct dasd_device * | ) |
int dasd_generic_last_path_gone | ( | struct dasd_device * | ) |
void dasd_generic_path_event | ( | struct ccw_device * | , |
int * | |||
) |
int dasd_generic_path_operational | ( | struct dasd_device * | ) |
int dasd_generic_pm_freeze | ( | struct ccw_device * | ) |
int dasd_generic_probe | ( | struct ccw_device * | , |
struct dasd_discipline * | |||
) |
void dasd_generic_remove | ( | struct ccw_device * | cdev | ) |
int dasd_generic_restore_device | ( | struct ccw_device * | ) |
int dasd_generic_set_offline | ( | struct ccw_device * | cdev | ) |
int dasd_generic_set_online | ( | struct ccw_device * | , |
struct dasd_discipline * | |||
) |
void dasd_generic_shutdown | ( | struct ccw_device * | ) |
enum uc_todo dasd_generic_uc_handler | ( | struct ccw_device * | , |
struct irb * | |||
) |
int dasd_generic_verify_path | ( | struct dasd_device * | , |
__u8 | |||
) |
int dasd_get_feature | ( | struct ccw_device * | , |
int | |||
) |
Definition at line 1334 of file dasd_devmap.c.
int dasd_ioctl | ( | struct block_device * | , |
fmode_t | , | ||
unsigned | int, | ||
unsigned | long | ||
) |
Definition at line 433 of file dasd_ioctl.c.
void dasd_kfree_request | ( | struct dasd_ccw_req * | , |
struct dasd_device * | |||
) |
void dasd_kick_device | ( | struct dasd_device * | ) |
|
read |
void dasd_log_sense | ( | struct dasd_ccw_req * | , |
struct irb * | |||
) |
Definition at line 157 of file dasd_erp.c.
void dasd_log_sense_dbf | ( | struct dasd_ccw_req * | cqr, |
struct irb * | irb | ||
) |
Definition at line 168 of file dasd_erp.c.
Definition at line 375 of file dasd_devmap.c.
Definition at line 371 of file dasd_proc.c.
Definition at line 343 of file dasd_proc.c.
void dasd_profile_off | ( | struct dasd_profile * | ) |
int dasd_profile_on | ( | struct dasd_profile * | ) |
void dasd_profile_reset | ( | struct dasd_profile * | ) |
void dasd_put_device_wake | ( | struct dasd_device * | ) |
Definition at line 639 of file dasd_devmap.c.
void dasd_reload_device | ( | struct dasd_device * | ) |
void dasd_remove_sysfs_files | ( | struct ccw_device * | ) |
Definition at line 1377 of file dasd_devmap.c.
void dasd_restore_device | ( | struct dasd_device * | ) |
int dasd_scan_partitions | ( | struct dasd_block * | ) |
Definition at line 100 of file dasd_genhd.c.
void dasd_schedule_block_bh | ( | struct dasd_block * | ) |
void dasd_schedule_device_bh | ( | struct dasd_device * | ) |
int dasd_set_feature | ( | struct ccw_device * | , |
int | , | ||
int | |||
) |
Definition at line 1350 of file dasd_devmap.c.
void dasd_sfree_request | ( | struct dasd_ccw_req * | , |
struct dasd_device * | |||
) |
int dasd_sleep_on | ( | struct dasd_ccw_req * | ) |
int dasd_sleep_on_immediatly | ( | struct dasd_ccw_req * | ) |
int dasd_sleep_on_interruptible | ( | struct dasd_ccw_req * | ) |
|
read |
int dasd_start_IO | ( | struct dasd_ccw_req * | ) |
int dasd_term_IO | ( | struct dasd_ccw_req * | ) |
int dasd_autodetect |
Definition at line 68 of file dasd_devmap.c.
debug_info_t* dasd_debug_area |
struct dasd_discipline* dasd_diag_discipline_pointer |
struct dasd_profile_info dasd_global_profile_data |
int dasd_max_devindex |
Definition at line 91 of file dasd_devmap.c.
int dasd_nofcx |
Definition at line 71 of file dasd_devmap.c.
int dasd_nopav |
Definition at line 69 of file dasd_devmap.c.
struct kmem_cache* dasd_page_cache |
Definition at line 32 of file dasd_devmap.c.
int dasd_probeonly |
Definition at line 67 of file dasd_devmap.c.
Definition at line 542 of file dasd_int.h.
unsigned long size |
Definition at line 543 of file dasd_int.h.