ó ¹µiVc@sudZddlmZmZddlmZddlmZddlm Z m Z defd„ƒYZ d„Z d S( sF UEFI firmware backend for pybootmgmt (only 64-bit UEFI is supported) iÿÿÿÿ(tBootmgmtPropertyWriteErrort BootmgmtError(tSystemFirmware(tfind_efi_system_partition(tdevfs_bootdev_set_listtlibdevinfo_errdicttUEFI64FirmwarecBs eZdZd„Zd„ZRS(s]Provide an implementation for the SystemFirmware interface for 64-bit UEFI firmware. cCs=|tjkr |j|ƒdStt|ƒj||ƒdS(sSet property values. N(RtPROP_BOOT_DEVICEt_uefi_set_boot_devicetsuperRtsetprop(tselftproptvalue((s*../../common/bootmgmt/backend/fw/uefi64.pyR 's cCst|tƒr|g}n|}g}xv|D]n}yC|jd|ƒt|ƒ}|jd||fƒ|j|ƒWq.tk r›}t|jƒ‚q.Xq.Wt|ƒ}|jdt |ƒ|fƒ|dkrút j |ƒrútdt |ƒ‚n|dkrtd|ƒ‚ndS(s®Sets the UEFI Boot device via libdevinfo. The value passed here MUST be the EFI System Partition, otherwise the resulting entry will not be correct. sConverting device "%s"s%Converted device "%s" -> ESP dev "%s"s devfs_bootdev_set_list(%s) => %dis$Error updating UEFI boot options: %ss=Unknown error while updating UEFI boot options: error code %dN( t isinstancet basestringt_debugRtappendRRtmsgRtstrRtget(R R t boot_listt efisys_devstdevtespdevtbmetretval((s*../../common/bootmgmt/backend/fw/uefi64.pyR/s,        (t__name__t __module__t__doc__R R(((s*../../common/bootmgmt/backend/fw/uefi64.pyR"s cCstS(sJEntry point for factory to call in and get a SystemFirmware instance. (R(((s*../../common/bootmgmt/backend/fw/uefi64.pytfirmware_backendOsN( RtbootmgmtRRtbootmgmt.bootinfoRtbootmgmt.bootutilRtbootmgmt.pysolRRRR(((s*../../common/bootmgmt/backend/fw/uefi64.pyts -