11
     	�_’I|¥‰ÓMjqØ‚¦ð¬÷ÄÃ      	File not found.
  +   ˆl–äY>”ŠeJ‚ÆŸ¸ØÅ£ÆƒŒ¿_‡5#˜¬WTßÆÅ g    ‰PNG

   IHDR           szzô  .IDATx­W”äÌ½uÒ“žÎxæíàÙ¶í÷ÖÞ=Úç÷Û¶mÛ¶mÛ\ï¸í°ê¯®Ó'ƒÅðžs;I%©ï~·¾ª®Æ& 9ñÔc!A^Mˆô%4 ž¿grÖQÊ"„À•d©D %‚ÉRF?f~põ¾ûø€í™PÀ‰'·»iÆNøÎ·¾§ÅãqIÓ4T©ª*dYFõ}J)‚ Gß÷“É{ùÕm×õNÚoŸŽÀv `H’tøoý{ý•W^Á=÷ÜƒD"Á;O"•J!›Í
±XL�ljjÂÂ…Éÿãžûî<Àô€A�F£Øo¿ýÐÞÞEQ`ºººÐÙÙ)²­fÿöÛojÀwÜ�÷ßÿ ê�
�é	ÑÑÑË²D°Ã€¶m�¶…˜š&ã·ßï�L JEððXÈeðãÏk¨k{3xöÍÞÙÐÝÇ.Ë¾‹²í¢PrÐjé c(VlÙ¼	Öçáx>TEÆÇ›ÓøËî7a2�0E…i¨\ˆ‡L¡‰´Y€�ˆ
Ïg`“†2µàé|š,�QŠ²ã¢9A¡\¥±¨ŠdÞ0‹Œš’ŸjªÄü7 Qše `�„
Þ)V  &ŠuFÂê†3EÈ„Žã#qQÌ;bAŠ
’YŒ�yâøÍ‘DYx¹þÄ¼‹õ¿lm»: hŠ="#¢JPx¢]á×ŒBá(lÓ�y—Dæ/ºL,€( Ò/Íæ[ç_¬ý£à"ƒPDsCqS‡eho6aêŒ×�Ž¦Xõu*:[¢ dlÑŽ®ïÑlvÜÀëé7cf�,Éô ¹×=-_:mÁeúI¤Ö;`¢³�6%1”.p–°±7�t®‚MCü| ˆ!nÿú�Â¸! ÚwùìÏ¶}õøƒæ^­óx#À\<™¼ {þéRã_�»û‚ËµËÃ!h¶ê`êV]u(d4Æ4Þ®ÃŒ(h‰ëÛt`ÁeÚ¿úÚ¢ÿîñûôÇç„Å=¦ö:¼�¹N`‡m¬öà¦ÁN»öH„A•e‘Y¹T€çyÈ¦†Áådð|*žU®oãÍìÝHÙë!0nÐù
n{ö¢ÊK>|ækÜ5"ƒZW*.ž/�>.ãæ‡ßÂÆ¬Ž'ß-âîa}á÷¸òÞ·ñq&†„úeÈñÏBˆõþÿpW<ÿá}Þùì¥v»þ5H’4Ö�€Qéáçîª”Ë¥½îü·{ÁødYT>b¦Ž|4ŠÆÆFÔ·Q�hÞxë-T±víZ|á½½½`ßëãìÊ‹pÝÃÏÞu<¥TGèÀ&øDÂS¥re±>nyž‹o|ãhëèStèºŽ7ÞxËçþûïñ|ïÛßD_üâQßÒ)þ9÷»ß…•Ñ¸ë_öÅJi…,“Ç'µ#Úm�]Êóç.2øØ!! 'eâœˆª#áyÕ-Ãˆ¢P(à¼ÎÆ9g�G¦¿åŠ�Þþ^Ñ9#p§ÐÖÚ
EUàº./Æ²Ø¦56ZBd‰_;ŽƒÎ9] ³³3‹%žQŽíˆò�ÉdP,A@ÐÜÜŒt:ƒÎ|D´ &Šp†D0Í:Äbfè€ªªhmmAÜ�¸(á€eÅC ÌØ1æŒa’d¹ÅÐÆÄB4s ›Ø™;ÀEYV½pÀuÜÐÁ
  &ã@“¨�š¢(Ã÷gcÌXÍ�JEdLí€˜z£ð}?|Z{BB$ ¾ãØð½ ÉDŠ3É–àñ ÃÃ	ôõõ‰H8248,Xq|UcŒŽI;@8jíÎh>—¿ú�îýç·¿ý�Hcc³X`4UÕ3câ+H‘U±qñy›aHbÖ®ýO>õ¤ËgÃÍ x· .'eã¿Ç�s¶qv+Šò•Ï}î3Kætv~=�²,IÜÂ1>3& ÆÝ v¥boÙÒûÎúõnä"Þ °™3ÁYE„¶ï@§É«]«5ê£îiµÌ
œEN›Ó«Ñ†h,OäÀ¶„T)ÕHvÀpÛ4Ž´Æ0èx|VÚ˜úìIŒ    IEND®B`‚     ˆÁÇƒh¹ÆÅ      0x00000000
     �ÀÆÅ      File not found.
     �ÀÆÅ      File not found.
     �ÀÆÅ      File not found.
     �ÀÆÅ      File not found.
  9   ˆl–Ðz¾””ÔD¨ 	ÅÍÆ�¸”Å£Èƒh¹a–Ðz¾””ÔD¨ 	ÅÍÆ�¸”Å£Ç      0
  #   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÊƒt,³Å¿È Ý    /* SPDX-License-Identifier: GPL-2.0 */
#ifndef INCLUDE_XEN_OPS_H
#define INCLUDE_XEN_OPS_H

#include <linux/percpu.h>
#include <linux/notifier.h>
#include <linux/efi.h>
#include <linux/virtio_anchor.h>
#include <xen/features.h>
#include <asm/xen/interface.h>
#include <xen/interface/vcpu.h>

DECLARE_PER_CPU(struct vcpu_info *, xen_vcpu);

DECLARE_PER_CPU(uint32_t, xen_vcpu_id);
static inline uint32_t xen_vcpu_nr(int cpu)
{
	return per_cpu(xen_vcpu_id, cpu);
}

#define XEN_VCPU_ID_INVALID U32_MAX

void xen_arch_pre_suspend(void);
void xen_arch_post_suspend(int suspend_cancelled);

void xen_timer_resume(void);
void xen_arch_resume(void);
void xen_arch_suspend(void);

void xen_reboot(int reason);

void xen_resume_notifier_register(struct notifier_block *nb);
void xen_resume_notifier_unregister(struct notifier_block *nb);

bool xen_vcpu_stolen(int vcpu);
void xen_setup_runstate_info(int cpu);
void xen_time_setup_guest(void);
void xen_manage_runstate_time(int action);
void xen_get_runstate_snapshot(struct vcpu_runstate_info *res);
u64 xen_steal_clock(int cpu);

int xen_setup_shutdown_event(void);

extern unsigned long *xen_contiguous_bitmap;

#if defined(CONFIG_XEN_PV)
int xen_remap_pfn(struct vm_area_struct *vma, unsigned long addr,
		  xen_pfn_t *pfn, int nr, int *err_ptr, pgprot_t prot,
		  unsigned int domid, bool no_translate);
#else
static inline int xen_remap_pfn(struct vm_area_struct *vma, unsigned long addr,
				xen_pfn_t *pfn, int nr, int *err_ptr,
				pgprot_t prot,  unsigned int domid,
				bool no_translate)
{
	BUG();
	return 0;
}
#endif

struct vm_area_struct;

#ifdef CONFIG_XEN_AUTO_XLATE
int xen_xlate_remap_gfn_array(struct vm_area_struct *vma,
			      unsigned long addr,
			      xen_pfn_t *gfn, int nr,
			      int *err_ptr, pgprot_t prot,
			      unsigned int domid,
			      struct page **pages);
int xen_xlate_unmap_gfn_range(struct vm_area_struct *vma,
			      int nr, struct page **pages);
#else
/*
 * These two functions are called from arch/x86/xen/mmu.c and so s