• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/

Lines Matching refs:arr

282 static int fill_from_dev_buffer(struct scsi_cmnd * scp, unsigned char * arr,
284 static int fetch_to_dev_buffer(struct scsi_cmnd * scp, unsigned char * arr,
299 static int inquiry_evpd_83(unsigned char * arr, int port_group_id,
302 static int inquiry_evpd_88(unsigned char * arr, int target_dev_id);
597 static int fill_from_dev_buffer(struct scsi_cmnd * scp, unsigned char * arr,
615 memcpy(scp->request_buffer, arr, act_len);
636 memcpy(kaddr_off, arr + req_len, len);
649 /* Returns number of bytes fetched into 'arr' or -1 if error. */
650 static int fetch_to_dev_buffer(struct scsi_cmnd * scp, unsigned char * arr,
668 memcpy(arr, scp->request_buffer, len);
682 memcpy(arr + req_len, kaddr_off, len);
696 static int inquiry_evpd_83(unsigned char * arr, int port_group_id,
706 arr[0] = 0x2; /* ASCII */
707 arr[1] = 0x1;
708 arr[2] = 0x0;
709 memcpy(&arr[4], inq_vendor_id, 8);
710 memcpy(&arr[12], inq_product_id, 16);
711 memcpy(&arr[28], dev_id_str, dev_id_str_len);
713 arr[3] = num;
717 arr[num++] = 0x1; /* binary (not necessarily sas) */
718 arr[num++] = 0x3; /* PIV=0, lu, naa */
719 arr[num++] = 0x0;
720 arr[num++] = 0x8;
721 arr[num++] = 0x53; /* naa-5 ieee company id=0x333333 (fake) */
722 arr[num++] = 0x33;
723 arr[num++] = 0x33;
724 arr[num++] = 0x30;
725 arr[num++] = (dev_id_num >> 24);
726 arr[num++] = (dev_id_num >> 16) & 0xff;
727 arr[num++] = (dev_id_num >> 8) & 0xff;
728 arr[num++] = dev_id_num & 0xff;
730 arr[num++] = 0x61; /* proto=sas, binary */
731 arr[num++] = 0x94; /* PIV=1, target port, rel port */
732 arr[num++] = 0x0; /* reserved */
733 arr[num++] = 0x4; /* length */
734 arr[num++] = 0x0; /* reserved */
735 arr[num++] = 0x0; /* reserved */
736 arr[num++] = 0x0;
737 arr[num++] = 0x1; /* relative port A */
740 arr[num++] = 0x61; /* proto=sas, binary */
741 arr[num++] = 0x93; /* piv=1, target port, naa */
742 arr[num++] = 0x0;
743 arr[num++] = 0x8;
744 arr[num++] = 0x52; /* naa-5, company id=0x222222 (fake) */
745 arr[num++] = 0x22;
746 arr[num++] = 0x22;
747 arr[num++] = 0x20;
748 arr[num++] = (port_a >> 24);
749 arr[num++] = (port_a >> 16) & 0xff;
750 arr[num++] = (port_a >> 8) & 0xff;
751 arr[num++] = port_a & 0xff;
753 arr[num++] = 0x61; /* proto=sas, binary */
754 arr[num++] = 0x95; /* piv=1, target port group id */
755 arr[num++] = 0x0;
756 arr[num++] = 0x4;
757 arr[num++] = 0;
758 arr[num++] = 0;
759 arr[num++] = (port_group_id >> 8) & 0xff;
760 arr[num++] = port_group_id & 0xff;
762 arr[num++] = 0x61; /* proto=sas, binary */
763 arr[num++] = 0xa3; /* piv=1, target device, naa */
764 arr[num++] = 0x0;
765 arr[num++] = 0x8;
766 arr[num++] = 0x52; /* naa-5, company id=0x222222 (fake) */
767 arr[num++] = 0x22;
768 arr[num++] = 0x22;
769 arr[num++] = 0x20;
770 arr[num++] = (target_dev_id >> 24);
771 arr[num++] = (target_dev_id >> 16) & 0xff;
772 arr[num++] = (target_dev_id >> 8) & 0xff;
773 arr[num++] = target_dev_id & 0xff;
775 arr[num++] = 0x63; /* proto=sas, UTF-8 */
776 arr[num++] = 0xa8; /* piv=1, target device, SCSI name string */
777 arr[num++] = 0x0;
778 arr[num++] = 24;
779 memcpy(arr + num, "naa.52222220", 12);
782 memcpy(arr + num, b, 8);
784 memset(arr + num, 0, 4);
796 static int inquiry_evpd_84(unsigned char * arr)
798 memcpy(arr, vpd84_data, sizeof(vpd84_data));
802 static int inquiry_evpd_85(unsigned char * arr)
809 arr[num++] = 0x1; /* lu, storage config */
810 arr[num++] = 0x0; /* reserved */
811 arr[num++] = 0x0;
816 arr[num++] = plen; /* length, null termianted, padded */
817 memcpy(arr + num, na1, olen);
818 memset(arr + num + olen, 0, plen - olen);
821 arr[num++] = 0x4; /* lu, logging */
822 arr[num++] = 0x0; /* reserved */
823 arr[num++] = 0x0;
828 arr[num++] = plen; /* length, null terminated, padded */
829 memcpy(arr + num, na2, olen);
830 memset(arr + num + olen, 0, plen - olen);
837 static int inquiry_evpd_88(unsigned char * arr, int target_dev_id)
844 arr[num++] = 0x0; /* reserved */
845 arr[num++] = 0x0; /* reserved */
846 arr[num++] = 0x0;
847 arr[num++] = 0x1; /* relative port 1 (primary) */
848 memset(arr + num, 0, 6);
850 arr[num++] = 0x0;
851 arr[num++] = 12; /* length tp descriptor */
853 arr[num++] = 0x61; /* proto=sas, binary */
854 arr[num++] = 0x93; /* PIV=1, target port, NAA */
855 arr[num++] = 0x0; /* reserved */
856 arr[num++] = 0x8; /* length */
857 arr[num++] = 0x52; /* NAA-5, company_id=0x222222 (fake) */
858 arr[num++] = 0x22;
859 arr[num++] = 0x22;
860 arr[num++] = 0x20;
861 arr[num++] = (port_a >> 24);
862 arr[num++] = (port_a >> 16) & 0xff;
863 arr[num++] = (port_a >> 8) & 0xff;
864 arr[num++] = port_a & 0xff;
866 arr[num++] = 0x0; /* reserved */
867 arr[num++] = 0x0; /* reserved */
868 arr[num++] = 0x0;
869 arr[num++] = 0x2; /* relative port 2 (secondary) */
870 memset(arr + num, 0, 6);
872 arr[num++] = 0x0;
873 arr[num++] = 12; /* length tp descriptor */
875 arr[num++] = 0x61; /* proto=sas, binary */
876 arr[num++] = 0x93; /* PIV=1, target port, NAA */
877 arr[num++] = 0x0; /* reserved */
878 arr[num++] = 0x8; /* length */
879 arr[num++] = 0x52; /* NAA-5, company_id=0x222222 (fake) */
880 arr[num++] = 0x22;
881 arr[num++] = 0x22;
882 arr[num++] = 0x20;
883 arr[num++] = (port_b >> 24);
884 arr[num++] = (port_b >> 16) & 0xff;
885 arr[num++] = (port_b >> 8) & 0xff;
886 arr[num++] = port_b & 0xff;
936 static int inquiry_evpd_89(unsigned char * arr)
938 memcpy(arr, vpd89_data, sizeof(vpd89_data));
949 static int inquiry_evpd_b0(unsigned char * arr)
951 memcpy(arr, vpdb0_data, sizeof(vpdb0_data));
953 arr[4] = (sdebug_store_sectors >> 24) & 0xff;
954 arr[5] = (sdebug_store_sectors >> 16) & 0xff;
955 arr[6] = (sdebug_store_sectors >> 8) & 0xff;
956 arr[7] = sdebug_store_sectors & 0xff;
969 unsigned char * arr;
974 arr = kzalloc(SDEBUG_MAX_INQ_ARR_SZ, GFP_ATOMIC);
975 if (! arr)
983 arr[0] = pq_pdt;
987 kfree(arr);
1004 arr[1] = cmd[2]; /*sanity */
1006 arr[n++] = 0x0; /* this page */
1007 arr[n++] = 0x80; /* unit serial number */
1008 arr[n++] = 0x83; /* device identification */
1009 arr[n++] = 0x84; /* software interface ident. */
1010 arr[n++] = 0x85; /* management network addresses */
1011 arr[n++] = 0x86; /* extended inquiry */
1012 arr[n++] = 0x87; /* mode page policy */
1013 arr[n++] = 0x88; /* SCSI ports */
1014 arr[n++] = 0x89; /* ATA information */
1015 arr[n++] = 0xb0; /* Block limits (SBC) */
1016 arr[3] = n - 4; /* number of supported VPD pages */
1018 arr[1] = cmd[2]; /*sanity */
1019 arr[3] = len;
1020 memcpy(&arr[4], lu_id_str, len);
1022 arr[1] = cmd[2]; /*sanity */
1023 arr[3] = inquiry_evpd_83(&arr[4], port_group_id,
1027 arr[1] = cmd[2]; /*sanity */
1028 arr[3] = inquiry_evpd_84(&arr[4]);
1030 arr[1] = cmd[2]; /*sanity */
1031 arr[3] = inquiry_evpd_85(&arr[4]);
1033 arr[1] = cmd[2]; /*sanity */
1034 arr[3] = 0x3c; /* number of following entries */
1035 arr[4] = 0x0; /* no protection stuff */
1036 arr[5] = 0x7; /* head of q, ordered + simple q's */
1038 arr[1] = cmd[2]; /*sanity */
1039 arr[3] = 0x8; /* number of following entries */
1040 arr[4] = 0x2; /* disconnect-reconnect mp */
1041 arr[6] = 0x80; /* mlus, shared */
1042 arr[8] = 0x18; /* protocol specific lu */
1043 arr[10] = 0x82; /* mlus, per initiator port */
1045 arr[1] = cmd[2]; /*sanity */
1046 arr[3] = inquiry_evpd_88(&arr[4], target_dev_id);
1048 arr[1] = cmd[2]; /*sanity */
1049 n = inquiry_evpd_89(&arr[4]);
1050 arr[2] = (n >> 8);
1051 arr[3] = (n & 0xff);
1053 arr[1] = cmd[2]; /*sanity */
1054 arr[3] = inquiry_evpd_b0(&arr[4]);
1059 kfree(arr);
1062 len = min(((arr[2] << 8) + arr[3]) + 4, alloc_len);
1063 ret = fill_from_dev_buffer(scp, arr,
1065 kfree(arr);
1069 arr[1] = DEV_REMOVEABLE(target) ? 0x80 : 0; /* Removable disk */
1070 arr[2] = scsi_debug_scsi_level;
1071 arr[3] = 2; /* response_data_format==2 */
1072 arr[4] = SDEBUG_LONG_INQ_SZ - 5;
1074 arr[5] = 0x10; /* claim: implicit TGPS */
1075 arr[6] = 0x10; /* claim: MultiP */
1076 /* arr[6] |= 0x40; ... claim: EncServ (enclosure services) */
1077 arr[7] = 0xa; /* claim: LINKED + CMDQUE */
1078 memcpy(&arr[8], inq_vendor_id, 8);
1079 memcpy(&arr[16], inq_product_id, 16);
1080 memcpy(&arr[32], inq_product_rev, 4);
1082 arr[58] = 0x0; arr[59] = 0x77; /* SAM-3 ANSI */
1083 arr[60] = 0x3; arr[61] = 0x14; /* SPC-3 ANSI */
1086 arr[n++] = 0x3; arr[n++] = 0x3d; /* SBC-2 ANSI */
1088 arr[n++] = 0x3; arr[n++] = 0x60; /* SSC-2 no version */
1090 arr[n++] = 0xc; arr[n++] = 0xf; /* SAS-1.1 rev 10 */
1091 ret = fill_from_dev_buffer(scp, arr,
1093 kfree(arr);
1102 unsigned char arr[SDEBUG_SENSE_LEN];
1106 memset(arr, 0, sizeof(arr));
1113 arr[0] = 0x72;
1114 arr[1] = 0x0; /* NO_SENSE in sense_key */
1115 arr[2] = THRESHOLD_EXCEEDED;
1116 arr[3] = 0xff; /* TEST set and MRIE==6 */
1118 arr[0] = 0x70;
1119 arr[2] = 0x0; /* NO_SENSE in sense_key */
1120 arr[7] = 0xa; /* 18 byte sense buffer */
1121 arr[12] = THRESHOLD_EXCEEDED;
1122 arr[13] = 0xff; /* TEST set and MRIE==6 */
1125 memcpy(arr, sbuff, SDEBUG_SENSE_LEN);
1128 memset(arr, 0, sizeof(arr));
1129 arr[0] = 0x72;
1130 arr[1] = sbuff[2]; /* sense key */
1131 arr[2] = sbuff[12]; /* asc */
1132 arr[3] = sbuff[13]; /* ascq */
1137 return fill_from_dev_buffer(scp, arr, len);
1164 unsigned char arr[SDEBUG_READCAP_ARR_SZ];
1176 memset(arr, 0, SDEBUG_READCAP_ARR_SZ);
1179 arr[0] = (capac >> 24);
1180 arr[1] = (capac >> 16) & 0xff;
1181 arr[2] = (capac >> 8) & 0xff;
1182 arr[3] = capac & 0xff;
1184 arr[0] = 0xff;
1185 arr[1] = 0xff;
1186 arr[2] = 0xff;
1187 arr[3] = 0xff;
1189 arr[6] = (SECT_SIZE_PER(target) >> 8) & 0xff;
1190 arr[7] = SECT_SIZE_PER(target) & 0xff;
1191 return fill_from_dev_buffer(scp, arr, SDEBUG_READCAP_ARR_SZ);
1199 unsigned char arr[SDEBUG_READCAP16_ARR_SZ];
1213 memset(arr, 0, SDEBUG_READCAP16_ARR_SZ);
1216 arr[7 - k] = capac & 0xff;
1217 arr[8] = (SECT_SIZE_PER(target) >> 24) & 0xff;
1218 arr[9] = (SECT_SIZE_PER(target) >> 16) & 0xff;
1219 arr[10] = (SECT_SIZE_PER(target) >> 8) & 0xff;
1220 arr[11] = SECT_SIZE_PER(target) & 0xff;
1221 return fill_from_dev_buffer(scp, arr,
1231 unsigned char * arr;
1239 arr = kzalloc(SDEBUG_MAX_TGTPGS_ARR_SZ, GFP_ATOMIC);
1240 if (! arr)
1260 arr[n++] = host_no % 3; /* Asymm access state */
1261 arr[n++] = 0x0F; /* claim: all states are supported */
1263 arr[n++] = 0x0; /* Active/Optimized path */
1264 arr[n++] = 0x01; /* claim: only support active/optimized paths */
1266 arr[n++] = (port_group_a >> 8) & 0xff;
1267 arr[n++] = port_group_a & 0xff;
1268 arr[n++] = 0; /* Reserved */
1269 arr[n++] = 0; /* Status code */
1270 arr[n++] = 0; /* Vendor unique */
1271 arr[n++] = 0x1; /* One port per group */
1272 arr[n++] = 0; /* Reserved */
1273 arr[n++] = 0; /* Reserved */
1274 arr[n++] = (port_a >> 8) & 0xff;
1275 arr[n++] = port_a & 0xff;
1276 arr[n++] = 3; /* Port unavailable */
1277 arr[n++] = 0x08; /* claim: only unavailalbe paths are supported */
1278 arr[n++] = (port_group_b >> 8) & 0xff;
1279 arr[n++] = port_group_b & 0xff;
1280 arr[n++] = 0; /* Reserved */
1281 arr[n++] = 0; /* Status code */
1282 arr[n++] = 0; /* Vendor unique */
1283 arr[n++] = 0x1; /* One port per group */
1284 arr[n++] = 0; /* Reserved */
1285 arr[n++] = 0; /* Reserved */
1286 arr[n++] = (port_b >> 8) & 0xff;
1287 arr[n++] = port_b & 0xff;
1290 arr[0] = (rlen >> 24) & 0xff;
1291 arr[1] = (rlen >> 16) & 0xff;
1292 arr[2] = (rlen >> 8) & 0xff;
1293 arr[3] = rlen & 0xff;
1302 ret = fill_from_dev_buffer(scp, arr,
1304 kfree(arr);
1465 unsigned char arr[SDEBUG_MAX_MSENSE_SZ];
1481 memset(arr, 0, SDEBUG_MAX_MSENSE_SZ);
1495 arr[2] = dev_spec;
1496 arr[3] = bd_len;
1499 arr[3] = dev_spec;
1501 arr[4] = 0x1; /* set LONGLBA bit */
1502 arr[7] = bd_len; /* assume 255 or less */
1505 ap = arr + offset;
1528 ap = arr + offset;
1539 ap = arr + offset;
1616 arr[0] = offset - 1;
1618 arr[0] = ((offset - 2) >> 8) & 0xff;
1619 arr[1] = (offset - 2) & 0xff;
1621 return fill_from_dev_buffer(scp, arr, min(alloc_len, offset));
1631 unsigned char arr[SDEBUG_MAX_MSELECT_SZ];
1636 memset(arr, 0, sizeof(arr));
1645 res = fetch_to_dev_buffer(scp, arr, param_len);
1652 md_len = mselect6 ? (arr[0] + 1) : ((arr[0] << 8) + arr[1] + 2);
1653 bd_len = mselect6 ? arr[3] : ((arr[6] << 8) + arr[7]);
1660 mpage = arr[off] & 0x3f;
1661 ps = !!(arr[off] & 0x80);
1667 spf = !!(arr[off] & 0x40);
1668 pg_len = spf ? ((arr[off + 2] << 8) + arr[off + 3] + 4) :
1669 (arr[off + 1] + 2);
1677 if (ctrl_m_pg[1] == arr[off + 1]) {
1678 memcpy(ctrl_m_pg + 2, arr + off + 2,
1685 if (iec_m_pg[1] == arr[off + 1]) {
1686 memcpy(iec_m_pg + 2, arr + off + 2,
1699 static int resp_temp_l_pg(unsigned char * arr)
1705 memcpy(arr, temp_l_pg, sizeof(temp_l_pg));
1709 static int resp_ie_l_pg(unsigned char * arr)
1714 memcpy(arr, ie_l_pg, sizeof(ie_l_pg));
1716 arr[4] = THRESHOLD_EXCEEDED;
1717 arr[5] = 0xff;
1728 unsigned char arr[SDEBUG_MAX_LSENSE_SZ];
1733 memset(arr, 0, sizeof(arr));
1745 arr[0] = pcode;
1750 arr[n++] = 0x0; /* this page */
1751 arr[n++] = 0xd; /* Temperature */
1752 arr[n++] = 0x2f; /* Informational exceptions */
1753 arr[3] = n - 4;
1756 arr[3] = resp_temp_l_pg(arr + 4);
1759 arr[3] = resp_ie_l_pg(arr + 4);
1767 arr[0] |= 0x40;
1768 arr[1] = subpcode;
1772 arr[n++] = 0x0;
1773 arr[n++] = 0x0; /* 0,0 page */
1774 arr[n++] = 0x0;
1775 arr[n++] = 0xff; /* this page */
1776 arr[n++] = 0xd;
1777 arr[n++] = 0x0; /* Temperature */
1778 arr[n++] = 0x2f;
1779 arr[n++] = 0x0; /* Informational exceptions */
1780 arr[3] = n - 4;
1784 arr[n++] = 0xd;
1785 arr[n++] = 0x0; /* Temperature */
1786 arr[3] = n - 4;
1790 arr[n++] = 0x2f;
1791 arr[n++] = 0x0; /* Informational exceptions */
1792 arr[3] = n - 4;
1804 len = min(((arr[2] << 8) + arr[3]) + 4, alloc_len);
1805 return fill_from_dev_buffer(scp, arr,
1927 unsigned char arr[SDEBUG_RLUN_ARR_SZ];
1937 memset(arr, 0, SDEBUG_RLUN_ARR_SZ);
1945 arr[2] = ((sizeof(struct scsi_lun) * num) >> 8) & 0xff;
1946 arr[3] = (sizeof(struct scsi_lun) * num) & 0xff;
1953 one_lun = (struct scsi_lun *) &arr[8];
1954 max_addr = arr + SDEBUG_RLUN_ARR_SZ;
1969 alloc_len = (unsigned char *)(one_lun + i) - arr;
1970 return fill_from_dev_buffer(scp, arr,
2444 char arr[16];
2449 memcpy(arr, buffer, minLen);
2450 arr[minLen] = '\0';
2451 if (1 != sscanf(arr, "%d", &pos))