Lines Matching refs:ccw
58 /* The ccw bus type uses this table to find devices that it sends to
74 MODULE_DEVICE_TABLE(ccw, dasd_eckd_ids);
87 struct ccw1 ccw;
94 struct ccw1 ccw[2];
110 struct ccw1 ccw;
137 /* set ECKD specific ccw-device options */
143 "ccw-device options");
159 /* head and record addresses of count_area read in analysis ccw */
249 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data,
268 if (ccw) {
269 ccw->count = sizeof(struct DE_eckd_data);
270 ccw->flags |= CCW_FLAG_SLI;
277 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk,
286 if (ccw) {
287 ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT;
288 ccw->flags = 0;
289 ccw->count = 16;
290 ccw->cda = (__u32)__pa(data);
322 rc = set_timestamp(ccw, data, device);
327 rc = set_timestamp(ccw, data, device);
335 rc = set_timestamp(ccw, data, device);
346 rc = set_timestamp(ccw, data, device);
384 static void locate_record_ext(struct ccw1 *ccw, struct LRE_eckd_data *data,
393 if (ccw) {
394 ccw->cmd_code = DASD_ECKD_CCW_LOCATE_RECORD_EXT;
395 ccw->flags = 0;
397 ccw->count = 22;
399 ccw->count = 20;
400 ccw->cda = (__u32)__pa(data);
526 static int prefix_LRE(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
542 ccw->cmd_code = DASD_ECKD_CCW_PFX;
543 ccw->flags = 0;
545 ccw->count = sizeof(*pfxdata) + 2;
546 ccw->cda = (__u32) __pa(pfxdata);
549 ccw->count = sizeof(*pfxdata);
550 ccw->cda = (__u32) __pa(pfxdata);
593 static int prefix(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
597 return prefix_LRE(ccw, pfxdata, trk, totrk, cmd, basedev, startdev,
602 locate_record(struct ccw1 *ccw, struct LO_eckd_data *data, unsigned int trk,
614 ccw->cmd_code = DASD_ECKD_CCW_LOCATE_RECORD;
615 ccw->flags = 0;
616 ccw->count = 16;
617 ccw->cda = (__u32) __pa(data);
711 * ccw->cmd_code |= 0x8;
820 struct ccw1 *ccw;
830 ccw = cqr->cpaddr;
831 ccw->cmd_code = DASD_ECKD_CCW_RCD;
832 ccw->flags = 0;
833 ccw->cda = (__u32)(addr_t)rcd_buffer;
834 ccw->count = DASD_ECKD_RCD_DATA_SIZE;
856 struct ccw1 *ccw;
860 ccw = cqr->cpaddr;
861 rcd_buffer = (__u8 *)((addr_t) ccw->cda);
1233 data->cqr.cpaddr = &data->ccw;
1283 data->cqr.cpaddr = &data->ccw;
1481 struct ccw1 *ccw;
1507 ccw = cqr->cpaddr;
1508 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1509 ccw->count = sizeof(struct dasd_psf_prssd_data);
1510 ccw->flags |= CCW_FLAG_CC;
1511 ccw->cda = (__u32)(addr_t) prssdp;
1517 ccw++;
1518 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1519 ccw->count = sizeof(struct dasd_rssd_features);
1520 ccw->cda = (__u32)(addr_t) features;
1544 struct ccw1 *ccw;
1564 cqr->cpaddr = &dasd_vol_info_req->ccw;
1576 ccw = cqr->cpaddr;
1577 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1578 ccw->count = sizeof(*prssdp);
1579 ccw->flags |= CCW_FLAG_CC;
1580 ccw->cda = (__u32)(addr_t)prssdp;
1586 ccw++;
1587 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1588 ccw->count = sizeof(*vsq);
1589 ccw->flags |= CCW_FLAG_SLI;
1590 ccw->cda = (__u32)(addr_t)vsq;
1739 struct ccw1 *ccw;
1761 ccw = cqr->cpaddr;
1762 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1763 ccw->count = sizeof(*prssdp);
1764 ccw->flags |= CCW_FLAG_CC;
1765 ccw->cda = (__u32)(addr_t)prssdp;
1770 ccw++;
1771 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1772 ccw->count = sizeof(*lcq);
1773 ccw->flags |= CCW_FLAG_SLI;
1774 ccw->cda = (__u32)(addr_t)lcq;
1851 struct ccw1 *ccw;
1869 ccw = cqr->cpaddr;
1870 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1871 ccw->cda = (__u32)(addr_t)psf_ssc_data;
1872 ccw->count = 66;
2154 struct ccw1 *ccw;
2164 ccw = cqr->cpaddr;
2166 define_extent(ccw++, cqr->data, 0, 1,
2170 ccw[-1].flags |= CCW_FLAG_CC;
2171 locate_record(ccw++, LO_data++, 0, 0, 4,
2176 ccw[-1].flags |= CCW_FLAG_CC;
2177 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2178 ccw->flags = 0;
2179 ccw->count = 8;
2180 ccw->cda = (__u32)(addr_t) count_data;
2181 ccw++;
2186 ccw[-1].flags |= CCW_FLAG_CC;
2187 locate_record(ccw++, LO_data++, 1, 0, 1,
2189 /* Read count ccw. */
2190 ccw[-1].flags |= CCW_FLAG_CC;
2191 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2192 ccw->flags = 0;
2193 ccw->count = 8;
2194 ccw->cda = (__u32)(addr_t) count_data;
2227 * the status of the initial analysis ccw before it frees it and kicks
2507 struct ccw1 *ccw;
2543 ccw = cqr->cpaddr;
2546 prefix_LRE(ccw++, data, fdata->start_unit, fdata->stop_unit,
2550 define_extent(ccw++, data, fdata->start_unit, fdata->stop_unit,
2554 ccw[-1].flags |= CCW_FLAG_CC;
2556 locate_record(ccw++, data, fdata->start_unit, 0, count,
2561 ccw[-1].flags |= CCW_FLAG_CC;
2562 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2563 ccw->flags = CCW_FLAG_SLI;
2564 ccw->count = 8;
2565 ccw->cda = (__u32)(addr_t) fmt_buffer;
2566 ccw++;
2592 struct ccw1 *ccw;
2686 ccw = fcp->cpaddr;
2691 prefix(ccw++, (struct PFX_eckd_data *) data,
2700 define_extent(ccw++, (struct DE_eckd_data *) data,
2709 ccw[-1].flags |= CCW_FLAG_CC;
2710 locate_record(ccw++, (struct LO_eckd_data *) data,
2718 prefix(ccw++, (struct PFX_eckd_data *) data,
2724 define_extent(ccw++, (struct DE_eckd_data *) data,
2729 ccw[-1].flags |= CCW_FLAG_CC;
2730 locate_record(ccw++, (struct LO_eckd_data *) data,
2738 prefix(ccw++, (struct PFX_eckd_data *) data,
2743 define_extent(ccw++, (struct DE_eckd_data *) data,
2748 ccw[-1].flags |= CCW_FLAG_CC;
2749 locate_record(ccw++, (struct LO_eckd_data *) data,
2771 ccw[-1].flags |= CCW_FLAG_CC;
2772 ccw->cmd_code = DASD_ECKD_CCW_WRITE_RECORD_ZERO;
2773 ccw->flags = CCW_FLAG_SLI;
2774 ccw->count = 8;
2775 ccw->cda = (__u32)(addr_t) ect;
2776 ccw++;
2786 ccw[-1].flags |= CCW_FLAG_CC;
2787 ccw->cmd_code = DASD_ECKD_CCW_WRITE_CKD;
2788 ccw->flags = CCW_FLAG_SLI;
2789 ccw->count = 8;
2790 ccw->cda = (__u32)(addr_t) ect;
2816 ccw[-1].flags |= CCW_FLAG_CC;
2818 ccw->cmd_code =
2821 ccw->cmd_code =
2823 ccw->flags = CCW_FLAG_SLI;
2824 ccw->count = 8;
2825 ccw->cda = (__u32)(addr_t) ect;
2826 ccw++;
3666 struct ccw1 *ccw;
3738 ccw = cqr->cpaddr;
3739 ccw->cda = (__u32)(addr_t)cqr->data;
3740 ccw->cmd_code = DASD_ECKD_CCW_DSO;
3741 ccw->count = size;
3867 struct ccw1 *ccw;
3926 /* Allocate the ccw request. */
3931 ccw = cqr->cpaddr;
3932 /* First ccw is define extent or prefix. */
3934 if (prefix(ccw++, cqr->data, first_trk,
3945 if (define_extent(ccw++, cqr->data, first_trk,
3961 ccw[-1].flags |= CCW_FLAG_CC;
3962 locate_record(ccw++, LO_data++, first_trk, first_offs + 1,
3990 ccw[-1].flags |= CCW_FLAG_CC;
3991 locate_record(ccw++, LO_data++,
3997 ccw[-1].flags |= CCW_FLAG_CC;
3998 locate_record(ccw++, LO_data++,
4003 /* Read/write ccw. */
4004 ccw[-1].flags |= CCW_FLAG_CC;
4005 ccw->cmd_code = rcmd;
4006 ccw->count = count;
4008 ccw->cda = (__u32)(addr_t) idaws;
4009 ccw->flags = CCW_FLAG_IDA;
4012 ccw->cda = (__u32)(addr_t) dst;
4013 ccw->flags = 0;
4015 ccw++;
4057 struct ccw1 *ccw;
4088 /* 1x prefix + one read/write ccw per track */
4093 /* Allocate the ccw request. */
4098 ccw = cqr->cpaddr;
4106 if (prefix_LRE(ccw++, cqr->data, first_trk,
4119 * The translation of request into ccw programs must meet the
4123 * - the scope of a ccw and it's idal ends with the track boundaries
4143 ccw[-1].flags |= CCW_FLAG_CC;
4144 ccw->cmd_code = cmd;
4145 ccw->count = len_to_track_end;
4146 ccw->cda = (__u32)(addr_t)idaws;
4147 ccw->flags = CCW_FLAG_IDA;
4148 ccw++;
4151 /* first idaw for a ccw may start anywhere */
4431 /* Allocate the ccw request. */
4645 struct ccw1 *ccw;
4705 /* Allocate the ccw request. */
4711 ccw = cqr->cpaddr;
4715 prefix_LRE(ccw++, data, first_trk, last_trk, cmd, basedev,
4718 define_extent(ccw++, data, first_trk, last_trk, cmd, basedev, 0);
4719 ccw[-1].flags |= CCW_FLAG_CC;
4722 locate_record_ext(ccw++, data, first_trk, 0,
4729 ccw[-1].flags |= CCW_FLAG_CC;
4730 ccw->cmd_code = cmd;
4732 ccw->count = 57326;
4735 ccw->cda = (__u32)(addr_t)idaws;
4736 ccw->flags |= CCW_FLAG_IDA;
4737 ccw->flags |= CCW_FLAG_SLI;
4738 ccw++;
4748 ccw[-1].flags |= CCW_FLAG_CC;
4749 ccw->cmd_code = cmd;
4751 ccw->count = 57326;
4754 ccw->cda = (__u32)(addr_t)idaws;
4755 ccw->flags |= CCW_FLAG_IDA;
4756 ccw->flags |= CCW_FLAG_SLI;
4757 ccw++;
4784 struct ccw1 *ccw;
4798 ccw = cqr->cpaddr;
4800 ccw++;
4802 ccw++;
4808 ccw++;
4810 if (ccw->flags & CCW_FLAG_IDA)
4811 cda = *((char **)((addr_t) ccw->cda));
4813 cda = (char *)((addr_t) ccw->cda);
4822 ccw++;
4833 * Modify ccw/tcw in cqr so it can be started on a base device.
4841 struct ccw1 *ccw;
4855 ccw = cqr->cpaddr;
4857 if (ccw->cmd_code == DASD_ECKD_CCW_PFX) {
4940 struct ccw1 *ccw;
4953 memset(&dasd_reserve_req->ccw, 0,
4954 sizeof(dasd_reserve_req->ccw));
4955 cqr->cpaddr = &dasd_reserve_req->ccw;
4959 ccw = cqr->cpaddr;
4960 ccw->cmd_code = DASD_ECKD_CCW_RELEASE;
4961 ccw->flags |= CCW_FLAG_SLI;
4962 ccw->count = 32;
4963 ccw->cda = (__u32)(addr_t) cqr->data;
4995 struct ccw1 *ccw;
5008 memset(&dasd_reserve_req->ccw, 0,
5009 sizeof(dasd_reserve_req->ccw));
5010 cqr->cpaddr = &dasd_reserve_req->ccw;
5014 ccw = cqr->cpaddr;
5015 ccw->cmd_code = DASD_ECKD_CCW_RESERVE;
5016 ccw->flags |= CCW_FLAG_SLI;
5017 ccw->count = 32;
5018 ccw->cda = (__u32)(addr_t) cqr->data;
5049 struct ccw1 *ccw;
5062 memset(&dasd_reserve_req->ccw, 0,
5063 sizeof(dasd_reserve_req->ccw));
5064 cqr->cpaddr = &dasd_reserve_req->ccw;
5068 ccw = cqr->cpaddr;
5069 ccw->cmd_code = DASD_ECKD_CCW_SLCK;
5070 ccw->flags |= CCW_FLAG_SLI;
5071 ccw->count = 32;
5072 ccw->cda = (__u32)(addr_t) cqr->data;
5104 struct ccw1 *ccw;
5123 memset(&dasd_reserve_req->ccw, 0,
5124 sizeof(dasd_reserve_req->ccw));
5125 cqr->cpaddr = &dasd_reserve_req->ccw;
5129 ccw = cqr->cpaddr;
5130 ccw->cmd_code = DASD_ECKD_CCW_SNID;
5131 ccw->flags |= CCW_FLAG_SLI;
5132 ccw->count = 12;
5133 ccw->cda = (__u32)(addr_t) cqr->data;
5171 struct ccw1 *ccw;
5196 ccw = cqr->cpaddr;
5197 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5198 ccw->count = sizeof(struct dasd_psf_prssd_data);
5199 ccw->flags |= CCW_FLAG_CC;
5200 ccw->cda = (__u32)(addr_t) prssdp;
5206 ccw++;
5207 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5208 ccw->count = sizeof(struct dasd_rssd_perf_stats_t);
5209 ccw->cda = (__u32)(addr_t) stats;
5283 struct ccw1 *ccw;
5347 ccw = cqr->cpaddr;
5349 /* PSF ccw */
5350 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5351 ccw->count = usrparm.psf_data_len;
5352 ccw->flags |= CCW_FLAG_CC;
5353 ccw->cda = (__u32)(addr_t) psf_data;
5355 ccw++;
5357 /* RSSD ccw */
5358 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5359 ccw->count = usrparm.rssd_result_len;
5360 ccw->flags = CCW_FLAG_SLI ;
5361 ccw->cda = (__u32)(addr_t) rssd_result;
5891 struct ccw1 *ccw;
5924 ccw = cqr->cpaddr;
5925 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5926 ccw->count = sizeof(struct dasd_psf_prssd_data);
5927 ccw->flags |= CCW_FLAG_CC;
5928 ccw->flags |= CCW_FLAG_SLI;
5929 ccw->cda = (__u32)(addr_t) prssdp;
5935 ccw++;
5936 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5937 ccw->count = sizeof(struct dasd_rssd_messages);
5938 ccw->flags |= CCW_FLAG_SLI;
5939 ccw->cda = (__u32)(addr_t) message_buf;
5973 struct ccw1 *ccw;
6015 ccw = cqr->cpaddr;
6016 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6017 ccw->count = sizeof(struct dasd_psf_prssd_data);
6018 ccw->flags |= CCW_FLAG_CC;
6019 ccw->flags |= CCW_FLAG_SLI;
6020 ccw->cda = (__u32)(addr_t) prssdp;
6023 ccw++;
6024 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
6025 ccw->count = sizeof(struct dasd_psf_query_host_access);
6026 ccw->flags |= CCW_FLAG_SLI;
6027 ccw->cda = (__u32)(addr_t) host_access;
6140 struct ccw1 *ccw;
6160 ccw = cqr->cpaddr;
6161 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6162 ccw->cda = (__u32)(addr_t)psf_cuir;
6163 ccw->flags = CCW_FLAG_SLI;
6164 ccw->count = sizeof(struct dasd_psf_cuir_response);
6662 * only need one ccw per track