
    W'Fg]                         S SK JrJrJr   " S S\5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      rg)   )
XMLBuilderXMLPropertyXMLChildPropertyc                   (    \ rS rSrSr\" S5      rSrg)_InitArg
   initarg. N)__name__
__module____qualname____firstlineno__XML_NAMEr   val__static_attributes__r       -/usr/share/virt-manager/virtinst/domain/os.pyr   r   
   s    H
c
Cr   r   c                   8    \ rS rSrSr\" S5      r\" S5      rSrg)_InitEnv   initenv./@namer
   r   N)	r   r   r   r   r   r   namevaluer   r   r   r   r   r      s    Hy!DEr   r   c                   (    \ rS rSrSr\" S5      rSrg)_BootDevice   bootz./@devr   N)r   r   r   r   r   r   devr   r   r   r   r   r      s    H
h
Cr   r   c                   >    \ rS rSrSrSS/r\" SSS9r\" S5      rS	r	g
)_FirmwareFeature   featureenabledr   z
./@enabledTis_yesnor   r   N)
r   r   r   r   r   _XML_PROP_ORDERr   r%   r   r   r   r   r   r"   r"      s'    H &)O,6Gy!Dr   r"   c                      \ rS rSrSrSrSrSrSr\\\\/r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSr/ SQr\" S5      r\" S5      r\" S5      r\" S5      r\" SSS9r \" S5      r!\" S SS9r"\" S!SS9r#S" r$S# r%\&" \$\%5      r'\(" \)5      r*\" S$5      r+\(" \,S%S&9r-\" S'SS(9r.\" S)5      r/\" S*SS9r0\" S+SS,9r1\" S-SS9r2\" S.SS,9r3\" S/5      r4\" S0SS(9r5\" S1SS(9r6\" S25      r7\" S3SS(9r8\" S4SS(9r9\" S55      r:\" S65      r;\(" \<5      r=\(" \>5      r?\" S75      r@\" S85      rA\" S95      rBS: rCS; rDS<rEg=)>DomainOs"   z.
Class for generating boot device related XML
hdcdromfdnetworkc                      U R                   S:H  $ )Nhvmos_typeselfs    r   is_hvmDomainOs.is_hvm-       ||u$$r   c                      U R                   S;   $ )N)xenlinuxxenpvhr2   r4   s    r   is_xenpvDomainOs.is_xenpv/   s    ||999r   c                      U R                   S:H  $ )Nexer2   r4   s    r   is_containerDomainOs.is_container1   r8   r   c                 L    U R                   S:H  =(       d    U R                   S:H  $ )Nx86_64i686archr4   s    r   is_x86DomainOs.is_x864   s    yyH$;		V(;;r   c                 t    U R                  5       =(       a"    U R                  =(       a    SU R                  ;   $ )Nq35)rH   machiner4   s    r   is_q35DomainOs.is_q356   s-     &&%	'r   c                      U R                   S:H  $ )Narmv7lrF   r4   s    r   is_arm32DomainOs.is_arm32;   s    yyH$$r   c                      U R                   S:H  $ )Naarch64rF   r4   s    r   is_arm64DomainOs.is_arm64=   s    yyI%%r   c                 P    U R                  5       =(       d    U R                  5       $ N)rQ   rU   r4   s    r   is_armDomainOs.is_arm?   s    }}1$--/1r   c                 x    U R                  5       =(       a$    [        U R                  5      R                  S5      $ Nvirt)rY   strrL   
startswithr4   s    r   is_arm_machvirtDomainOs.is_arm_machvirtA   s'    {{}ET\\!2!=!=f!EEr   c                 L    U R                   S:H  =(       d    U R                   S:H  $ )Nppc64ppc64lerF   r4   s    r   is_ppc64DomainOs.is_ppc64D   s    yyG#=tyyI'==r   c                 x    U R                  5       =(       a$    [        U R                  5      R                  S5      $ )Npseries)re   r^   rL   r_   r4   s    r   
is_pseriesDomainOs.is_pseriesF   s'    }}J3t||#4#?#?	#JJr   c                      U R                   S:H  $ )Ns390xrF   r4   s    r   is_s390xDomainOs.is_s390xI   s    yyG##r   c                 L    U R                   S:H  =(       d    U R                   S:H  $ )Nriscv64riscv32rF   r4   s    r   is_riscvDomainOs.is_riscvL   s    yyI%?i)??r   c                 x    U R                  5       =(       a$    [        U R                  5      R                  S5      $ r\   )rr   r^   rL   r_   r4   s    r   is_riscv_virtDomainOs.is_riscv_virtN   s'    }}G3t||#4#?#?#GGr   c                      U R                   S:H  $ )Nloongarch64rF   r4   s    r   is_loongarch64DomainOs.is_loongarch64P   s    yyM))r   os)firmwarer3   rG   rL   firmware_featuresloader	loader_roloader_secureloader_typeloader_statelessnvramnvram_templateinitinitargsinitenvsinitdirinituser	initgroupkernelinitrdkernel_argsdtbacpi_tbacpi_tb_typebootdevsbootmenu_enablebootmenu_timeoutbios_useserialbios_rebootTimeoutsmbios_modez./typez./type/@archz./type/@machinez./loaderz./loader/@readonlyTr&   z./loader/@typez./loader/@securez./loader/@statelessc                 X    U R                    Vs/ s H  oR                  PM     sn$ s  snf rX   )r   r    )r5   r    s     r   _get_bootorderDomainOs._get_bootorderm   s     #'==1=C=111s   'c                     U R                    H  nU R                  U5        M     U H#  nU R                   R                  5       nX2l        M%     g rX   )r   remove_childadd_newr    )r5   newdevsr    ds       r   _set_bootorderDomainOs._set_bootordero   sA    ==Cc" ! A--'')CG r   z./@firmwarez
./firmware)relative_xpathz./nvram)
do_abspathz./nvram/@templatez./bootmenu/@enablez./bootmenu/@timeout)is_intz./bios/@useserialz./bios/@rebootTimeoutz./smbios/@modez./kernelz./initrdz	./cmdlinez./dtbz./acpi/tablez./acpi/table/@typez./initz	./initdirz
./inituserz./initgroupc                     SS K nU R                   H  nU R                  U5        M     UR                  U5       H#  nU R                  R	                  5       nXCl        M%     g )N    )shlexr   r   splitr   r   )r5   	argstringr   objr   s        r   set_initargs_stringDomainOs.set_initargs_string   sK    ==Cc" !;;y)C--'')CG *r   c                     U R                  5       (       a7  U R                  (       d%  UR                  5       (       a  SU l        g SU l        g g g )Nz
/sbin/initz/bin/sh)rA   r   is_full_os_container)r5   guests     r   set_defaultsDomainOs.set_defaults   s<    tyy))++(	%		 (1r   )r   N)Fr   r   r   r   __doc__BOOT_DEVICE_HARDDISKBOOT_DEVICE_CDROMBOOT_DEVICE_FLOPPYBOOT_DEVICE_NETWORKBOOT_DEVICESr6   r=   rA   rH   rM   rQ   rU   rY   r`   re   ri   rm   rr   ru   ry   r   r(   r   r3   rG   rL   r~   r   r   r   r   r   r   property	bootorderr   r   r   r|   r"   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r*   "   s     #(*;&(;=L%:%<'
%&2F>K$@H* HCO (#G~&D+,G$F04@I./K 2TBM"#84H2 8I,H=)H()9,W	d3E !45N!"6FO"#8F !4tDN$%<TJ./K 5F5Fk*K
g$
/C.T:G34L x D)H)H+&G<(HM*I&r   r*   N)	
xmlbuilderr   r   r   r   r   r   r"   r*   r   r   r   <module>r      sL    C Bz 
z  *  
"z "F&z F&r   