(null)
     'ˆÊÍ993À¿Ë á    '/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _SCSI_SCSI_TCQ_H
#define _SCSI_SCSI_TCQ_H

#include <linux/blkdev.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_host.h>

#define SCSI_NO_TAG	(-1)    /* identify no tag in use */


#ifdef CONFIG_BLOCK
/**
 * scsi_host_find_tag - find the tagged command by host
 * @shost:	pointer to scsi_host
 * @tag:	tag
 *
 * Note: for devices using multiple hardware queues tag must have been
 * generated by blk_mq_unique_tag().
 **/
static inline struct scsi_cmnd *scsi_host_find_tag(struct Scsi_Host *shost,
		int tag)
{
	struct request *req = NULL;
	u16 hwq;

	if (tag == SCSI_NO_TAG)
		return NULL;

	hwq = blk_mq_unique_tag_to_hwq(tag);
	if (hwq < shost->tag_set.nr_hw_queues) {
		req = blk_mq_tag_to_rq(shost->tag_set.tags[hwq],
					blk_mq_unique_tag_to_tag(tag));
	}

	if (!req || !blk_mq_request_started(req))
		return NULL;
	return blk_mq_rq_to_pdu(req);
}

#endif /* CONFIG_BLOCK */
#endif /* _SCSI_SCSI_TCQ_H */
  0   )ˆl–ßi~”êh¥8 Eq—î2Ê˜´oÎƒ®_ŒuÐb&=Ly[Ï¿ÁÍ 
È    )ý7zXZ  i"Þ6 !   t/å£à
Œ] +“D�%áà=Ü=�ÓÂŸÀi"C/Ô„ëµ$1®1x%
$†º…&6{´¾[Þl@y]XšƒéA˜É`µ!3Ó*<xsŠžúEpM©}Ò£ñH+­ésÐ|×ØONÆRÜs¨Ò°ÉÛd!Þ=ž‹-ëÅ-¾côÎÊÁUðÑ›6Ø?1Ö‰k³{U)mÄª¼@?jj×Dw‘jÇîI'pƒ�eRV¹\±`´Q¦CT‰ñ¨Äy�âZáµº¢î�‡½C)vd¶®q$™S¾êz²Ò°ÞÖèÜY>³<`w×ñÊ:½”æ&FÌdð‹%)·¨OVÒïéñQª¾ê‹%mL¶¡q
Ì(¦auLckóå+mJHã­ù5�ñ
	6û�—Üÿ™ÿœ3lÚ¿ãõXÜ|Ô5òÈEJo@`=†¥Çnz'–C€,'‹ÃÕòÇÔÂÃ‘oÉù%”5"ÿD%â—óÕïÇîÏnŒfÄæÞ¼<¼¶‚¬^æ¤‹™@¾=Ý³±¸“µ^ÁŸ´8R|ßþOqï"qÈCá%Ç—Oðx6Òf¹=÷ªóúóôZ ™Çm?j¡ð‰_Þ¤ˆ'dþæ!“mQÝ^›Y cÌŽð×¦¹_vÖ³ b7"âUîÿPßõð§Aøq}AŸïó#•¨zÝë-ÛO�Û-”ˆô8à¿‰HrÄw ¢áðÜœìWxen\Wø4œ.ÅHÅÅ€Ê"ëLˆW±Ã'>üazŸ×R¾Ê”AheP¬Q9J[;=FÎ!h�º,JÐ¼_‘+îW“¬?yÿÜq‹gÎ¡«?VG}I I˜„#}…TháV× ‹O‰jq9¼2r°mÛ"°/Ó±—Á\i¾h(˜®n«[}¯íöˆžL©”FæQP.çµ´ÃeDYX&¢¢¯Ù—a,äGéâ¤²‘(Ë2±x„åH ‡‘ÞN"*�Bï·[»›àÄ¢äï­©OäÐd$nxÖvÊ J<ëÆ–±9Neû1ßžf@{Àdf=Æ”×ãš–|"Âð{•Ö¿Q‡Û³U%bVŽ Ávúå�ßQ¸ÑzùâÐ·\¢ƒbç4øáùŒlwœãù›ØÊ¹?U€i,ŽFXÓ™oL‘¶�öª­š÷“€½T�B@DMc ^]êÌ[8çìç5?Ì]fµçò�d+4éï¼h@þ:“uˆ,ˆé4²%%¼`T‚ °òcx¤qêTôÌeWò\uNä)eå@�*ÐuÔÐerÌA5Ógrß—\ˆSøÁj†€Qî…óŒ70Ô›—ïmŽëƒ/Ó¹ß×f¬¯tE×÷ë�æ»4]êµCO3Z¨o’]¼§ÌS€X™¾Æôì×ê‰ot-õáÊMB‰ñ�.øïj50�Èidå´ ÇAðõ7bÐKŸáTu²ç­Y²fI§;�ì=¶ÜM%V™¢<ÛŽ»èJ%éž*…¢ïDÛkT’
ÒÖN€òÿ¢òþÁÄhybA+Á§8°
¶~Åí¤,èN*ò÷°Ú›´|è’B¶�§šI}�9g­› sUÎ<P.
 jm,OÙá¼k¸èæðyAÝ£´ÝÇä˜ª·»àåñÈÜS“ñÇÞåÚQ2¥ôF„
9û!põÐÞƒÇk³ŒgÃø‘ rBÂÚÜá­PÝe€ãZÝqÏÕ¤mY-!å#†ð˜™ÁÒ©[±c×6l¡u%èñþ»–päƒLÛ¬}Ä‘URV¼\Y² q�”ä�"»ôeAØáÅ	,Ä T2uÂ‡å•ßq˜‰¶4œvgÓX¿x<±[÷Xtf#ÅŽŸ† ÅÅyùçä,ÙÊÏû¥Ê$Á,r•wªá)Œb¯ÿüÜ�{Et×[Ó ©ìa§=ÀéÛUµN0{»•Ô‘¡b?ÓÀ}•û}ÂÃ{ÍÎÊ©yÿÁ‚Èê¯ËwÆM[åµ¨.îŸ‚k–}•t¶ÙÑ+±�˜DPRNƒHö5dç+	!òµuWÏµc[ÞpÊQÍ‰È6øO˜|`$Ã{�ö”ÇàŒ]i�±ì2©8¥ïXq#–K/Nƒ�ë£'0òZ�TQ1> ƒ&ès÷Ó~¡:/MÛ5%yfçª¢Äü¸üS�r	ûo•AèàýX0�Í—�ðÒœÃÿd¯ÀÜ¨>@OêtÉT&ydQñ_1žú€aÚ™æn C0ŸÙ„ÇZ€[åØSqF5JäŽ«uÐ	ÃÈÛ%<Ìêä2ÐÀÚ³— áÍž§s¸ÓÌ’ŠmE/Ì½Þ¨¨ØêÜüQ$6ZªF×dç&”Ð =Er�Ä ;NRW{úDÔ/Ý€Îã–AJléC ï8]¨¾�MíÌøJ=S�ã¼:¥ó¯ú$Ê™OÆã·†¾›Óqøìuž«¦¢«ð]daÀ[ïÐÄm£ÄªÅœZ|[9¾B÷2
è½MÆCñ§sié‹H{æ
¡"Ä0žæ$šáèÝM1±fmÓ.QF%É¹÷Ót¹ŽÙA�,«&k—µEï°�«pàïÕ¦@:£´n21Ÿ9)@¶7êßrßà‡±V„âk• nÉßõ¼xÊ$dú‰OS:þoÑ@4ï�,y7zìíÇõƒ#9�AÆR÷œ‘DÜ[¤“EèóehÁab^´ûy™àúbä¹w¡˜"¥j3«úæ!Åg³|³Àˆuû7J™5h“¿½4ôŸñý¼ÅÑ*oŒ%8ŸáyQFf`S^æ,4zž„U®Ûš£ÖË]^¾úå1UÃ¡,V¡�q{àf(?zó¬ü²“›Ìø=Fð:_Ì'>ÜWÍ`Á’´ß"ÄYbzhEóÚiˆ ‹'DÖˆÕº_|'›ä)Ñ¸ÆÀÜ
Ù%ìöºñ@X°t�×+óâY•fÆ]øŠ�àÁÝì�™rxž�ßR"+¶õ>K©�Í£ž ¥£âX�ûÙ—üïä¿úÅ`ñ“Ì†\`†}htÔºuÎ{0ÎÂöËÖíî02ï‚ú/@	‹°Aƒõ ü7÷Ÿ£„vgj¹*’pÁý<T>§]‹�fÃŽ·£<{²™ÇÆ}žköNÈÁÔ›…ÙáþR»8Ç.µá8ëÇ³[ý�€?eùG\‡[x·2”< ³ºêfÏëT¶ê:�‚ÿH›' LðTºBjÁSÓ –t@ÉD‘ƒS�Œµ FÛÙ;àÀÅæ$ü——�m©ÅJ%¬úgNËœ]DÔ(!iåFqîUGRÑ[lõú8+jLóV¯±ÐDl-µá¦Sygü
%PAÉN<¶4’bÛ(èvPçú ×M!¯÷ŸN(ZF‘¿½Ó(1‚¤cNÏ4Ïb¼«á‡ŸÜžàD AlwµÀæ³;Ózõ~ÿžçÄ{~å™UÉQ ¢¬ÜµˆÝ�À‚ÿÓžQ‚âø¨˜N{ßcÙ£&Ï=yãAd_z÷�ß.HäÚÓ†qtî†(ŠÅýÈÖ*üeM®ÕFÛÞÏ¦ÅA‘¬�Ä †QµI1�4í ù³éýÄdW¯`ÎT‰   ;©‡. ¤Œ*  bU�{>0‹    YZ  $   +ˆl–ßi~”êh¥8 Eq–®õ1hßÐ„€ =¿ÂÎ ?÷     +ý7zXZ  i"Þ6 !   t/å£áyLïþ]  h’­ÈVÛãõ¥­ê½$ÕN›-ÙkËÜÞŸÞÜäÆ4Ûïu¶f �öƒ)d=:·Þà|3®Úß PzŒTÒó¢åìf:ºˆ¶ârˆ¢ÖìÞ¿gYWºíA·úôeÐÒ�7¦›nãPëó®’8jïÏæi•ÐbÙ&ªjitÚŒß¿³,äß!
xø†£hHb³‘"PÖóÌJ