auto
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÆƒ!o_†I|¥�+ÄÉ #    /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _LINUX_SECRETMEM_H
#define _LINUX_SECRETMEM_H

#ifdef CONFIG_SECRETMEM

extern const struct address_space_operations secretmem_aops;

static inline bool folio_is_secretmem(struct folio *folio)
{
	struct address_space *mapping;

	/*
	 * Using folio_mapping() is quite slow because of the actual call
	 * instruction.
	 * We know that secretmem pages are not compound, so we can
	 * save a couple of cycles here.
	 */
	if (folio_test_large(folio))
		return false;

	mapping = (struct address_space *)
		((unsigned long)folio->mapping & ~PAGE_MAPPING_FLAGS);

	if (!mapping || mapping != folio->mapping)
		return false;

	return mapping->a_ops == &secretmem_aops;
}

static inline bool secretmem_mapping(struct address_space *mapping)
{
	return mapping->a_ops == &secretmem_aops;
}

bool vma_is_secretmem(struct vm_area_struct *vma);
bool secretmem_active(void);

#else

static inline bool vma_is_secretmem(struct vm_area_struct *vma)
{
	return false;
}

static inline bool folio_is_secretmem(struct folio *folio)
{
	return false;
}

static inline bool secretmem_mapping(struct address_space *mapping)
{
	return false;
}

static inline bool secretmem_active(void)
{
	return false;
}

#endif /* CONFIG_SECRETMEM */

#endif /* _LINUX_SECRETMEM_H */
  1   ˆl–Ðz¾”ªe¶…8 ^¸\hJbÑ¿Èƒeð;_�uÐb&=LyZof¯ÆË C    ‹     ÍZ}sÚHÒÿ_Ÿbç6@2àä.ç]§Žµñ™:Ç¦Œ“ÝÔéŽÒ :K­^Àì³O>ûýºG�;{ÉSu®²ÍÌôô{÷tÏ`;{¢—g:”™ïÊ X‰™ŠT"3å‰ÉJµwtôVFâ¥Ýy)ê<ùa(qh¿ì6,ÛÙ£_1ÊdäÉÄq¢d8	ÔO£Ëö”Å(ß«„Yi,]%êË¹ŠÄR	WFµLä©öpÆü©È„�ÆÂ~µàQD#Ë¶×û	áúQÍüH,T2�ø¡ÈÔ]fÙÓLœüdÙÑ¿J8Î:ëMŠ6õ#ï�-×øë3 iC�“X¤:_s™H7S‰È¥¶é(PéÊSS?‚®Ó,ñ£Yjá¼¨·Zbé£šù`‘GhöVBµÂ“é¼I€Ã Øç¹‹½Êœ�šfŒÈÓ9íý%×™j2y _o'þlžmA†Nöw‘ïB¤“ý}@œÈØÏ`ˆ;“ÂOÉ
žÈ40Ýã[±èŒ)›«DMu¢ÄR“í&À»�~@°Ý�%£'5¡îb íÇš€Ù¢DO§MÆélõÑlÆ³hÙ–~6'?¼�]²D8õ?µ`ÊŒ‹gQkÙ�EÍ™×Z�¸æ¤­î~ñyßIÛX®¬Â…\Èù_ÇoB ÌT ,&`ŽØ7#ø[Ý‰êöùñË¼ñ¼Þ	�»ø ìÍ6ÆÛÍkÕÏ-²“ùµè´�+sçŸE×~Ýkƒm�®[E‡mp“½½õèzkµWG5Õ&‰ó–­‚]üæÔUèüVUxˆ«„>~¬ªÕ*„*TJEFé§®Œ•Ha×ÒS2pà#–(üMÄˆi¢C1#«×Rñn©©jð�Ðf»‘êf¬­Þ/àNþB‚óSÌÖÖ„SòLq&d‡”ý¦ÝD’©Q¨ù¼xêN¨|€3�#O%	¹žqo?°P·oÎM1W«4Ñ0Í'©rM*ÀÔS�+¤Á n˜ødŒª$Êä‘ÅNýóoHÃ«S¨ðj*\�')"{¥sbs.¦ˆ•8Ñ®JS‰Qé<‹óŒ  L	§©PÉúœæ�˜"LÁ˜½ÖHo¡}P•	AT.äèâe[k¬vV3)sð3çÄ(É™hs.Œ�O˜*V:¼B.žœ±§ÏŽ�Û�Æ&ÞxãÙfÌncð—Ã,RÙål'sœè;'ÛÃ »ÇL”p@õ?Àu|ÜÝFG?`ç;âsgîLt7sä¤åúMH„�²\æbS	Ö‹_Xù/õg�0µ¥ëŠŽýJ¼~}Ðî´_‹ÑÛÁ÷F©ïN~ÄAÛm˜CäLÉt®óGdÎÒh_jJoI¿dbN¯±L²´�û§¹7S0¦›iø%ÄÈ�’(}*NÅj@?;/…§Á{a¿7CXë°2ü»p¦�Íð�BøèÝA[¯wòVÝÁŒ;Í¿ëæ�Æ»s6¶èýq‹^{‹Úó-bÏ­BØÔ%’•ÿ¥ÒÖª8?Vÿ¬šÕÁ'ñiýùà3â¯s{DY¸Îâ.ó¯:íÎ±gç�šƒ3eï7¬å{Uò�îùˆ%³§VårwO§}Ðé”›þùÀžæÃtµæÀŸîÔ86ÃFíÓ;žãW§žÕ}fkƒÕ=é§«J;4JCÓòé}ô•}0·OŸÎ@G<}|Ê6àín±T³7L ÈÀ0î×+ŒˆÎÒ	1#^Õ÷(ï;K zªVè¦qÐe”-û0b<'¡=EåÍlÈbíŒÔkUiÆÓ\Ö>Õ
DÝWaÍ™v�ú|…#D<³ÍÙiKœ–¼aói¹¹Ó	YíØKM'¬UÕïÑÉ ›Ä VÓýÎ µPÇÈ`èÔ�qPË_tT(u4�m$¸)q¤û]ÚÜ-¸ =‡¯j%.]Yï”Ú’‚ôKvFÅk=%zåZo½Ö_;Œ«“¤<D)âë8_ð±~ß}_ü¹êŒÄgþÉñˆëªRÖž
0ëeˆ@ƒX/·5[faðè%ŽÆT9ñŠS�R6N7ÉØÝƒ8i¬�Æó7ÝCQÞ¿éüY8V5¹	µþüZ¤éz …\†G±uàO³Í4ûH1=_­§ÉtmoÂø†g.†›²Ó†0Y¦_œ~!%gdd$ydpdí“oÜúÑÁ:øYÜP=%ö®G½ñ°wz:¸üëÿÆÃ¿�Œ:ã›Ãþ¸#uš ¿9OÃ‰½n»ûÇV»Óêþ	õï¡ýÊ~…ÿW±ŠF£sšŸ•ISdy	ÊDÿÊÓÌŸ¢%kB#½`)Wéf}¾ŠÑ“òê÷¨êP
Üª”±5™ÆL´!J%Zá®E¹óˆ»ZO»yH‰Î.›V	A…Ò}t.ö.{oû{	KÏC=6Æ¿B¸l«q§)ª«î\¹·Ûë�íî>±»û¹ÝW½þðó{yõ‘�ãp6í<¾Ý€ÜÃéH=´‘æ…Ó2]…¡Bùì¢Šv“ULf±
X£ÒÑ‡Ë«áh02nvÎ…úÖìû	
Tç¹xæGn�£êüAÃGàAI*íù@ 4†Cë}ÃTˆw.”ó¨HN\ŒO”¢ØGÓïòõ
:W‰ÂÛÄ¡Ý6U¿‹f¢¬¹ïy€‡'ø‰
VtcªI v¦?R¾ö/±uÜÆ'Wo‡½êZ§×¦?�è1Ð•Sa¸@ãA‰g!ƒ\5­T)BQÈ0¦:rJ7Ñ)6;¿ÕÿÔ8biHî.Éí£ž}Ìãêy”ú3j è²C¼Èt“÷ ^£&!xòÇ…–¨‘ØB35X¦Aã{ yˆ‘ûÎýõ¬<ÅŒùÃ��ò³œí†Õ�Šºÿ}*¢ðþZ®žàè?Åñ—)ø[ò»”ûŸ–ì�ý-|ç˜ê¤ú�húï‡ã·§âEè5wg vè}±ù¿�šþá[êí«5WžÞÿ¹²¾*%~éß›¹B bã´?:¹oW—ÛõÆÖB/PJò=ä¦ŠðTê&þÄp–gs?±œ¡,OT¥¬°­^EqšŠt®ó€®ÓtøJœ�Rù 3‰áßúP4”Tp%Šƒª¾îîîè·Þ ÚbÃÑ¥'#ðÃ·W%^l%”EµÕ´<e>Ò—8¨GüéjƒÊ—:	ùõ	HV%Ó‘æ7CÃbr#ÝlÎ|Ÿë¥Þ¦Á@E”R½Ù/<ŸzE"¡_Q•-
¹MÓô aU
F×G!Ÿ€½…ìœ\¬zÔpžï Þ;4D ¾ø‘Ä'�l‰åêpB—©WqE©GH/¯Ê~¦(ó°W'ä;[qeZdSRéj®wc	�©L%Fi÷&ÉÖ¦æ]èO 3hb²¢;x6ÍÑT,Sb`ŠF.¯N
 Í²yši´Àì$øŸè|3Â’iÀÙ¢&“„Œàºy’òuoAÖò46’3„JeŒ!õ%4¿ä°)7Ke°”‚4›kÏ~ *ß1~¼VŸòPû†b¯ZTî‰—ªƒL…;+$.N