DELTA 360178 0 35 SVN*s,0+G6]!yZ x >x^uSn0 }h55Z ͖d}* 8 lO]%_S4~0C<"wy6򼑟,J Dd 渱¢Lj*YYI&)WQl pA \]X0GRc7j}0GJ ~B8efŪZe`/I G+G*Â\jw]5By[#[5sXX5pe_f.C+su|{{}":QgMo]ݬ.@B<4\Y(DdFs=[:>N|4eY;#J6NnM !hl${xLGu?c- Pɪ\7[, %;fJyprV^@x(R 5~?8\:(m}jTY},|y*m"@tݳ(ܾ\⣧1Ri0DV0`]"y@_.G>H-x^u_K0şOq-mӇ1v bs&iݛ-=9)opE^)Vk.5yVsoD+ 2a@b QY; m)p$]-.eZ~FxL{ReuP/&l2-:`kt"(k PK]ptA *KJm)>R!:a{9Z%!x) t=;EC D C3,<[Njßbш14&{;nJf~[nFA|yC8e?YExU4@cABa:[~Kĝv߳` ENDREP DELTA 360511 727 26 SVN4Rn\jdhmMay 4HYVE_SNAPSHOT Set to include support for save and restore (snapshots) in .Xr bhyve 8 and .Xr bhyvectl 8 ENDREP DELTA 360501 0 89 SVNu  ?>7 HYVE_SNAPSHOTENDREP DELTA 360176 0 216 SVNxE0m/QeO|2p(+xQg5H?y?x^RAn0<+#M5Kl^$ (jU@;ώI6P 9+PE6@EkT ]Y.7/Bm#OQ[ /A+m{COaA^h\A +M d`M1 e,Oi CmC%o3q-`1UbU N%'R5hg2p@@N F,a2Ty5k{#GuR<j֙V$#EVBe\'gǰ#Xؚ ]n̈7.AJ.:x%18|Hww2yx!.@(LENDREP DELTA 349948 641 36 SVNF?p)_'J; 8nstruct vm_snapshot_meta; /* checkpoint */ IOCNUM_SNAPSHOT_REQ = 113, IOCNUM_RESTORE_TIME = 115define VM_SNAPSHOT_REQ \ _IOWR('v', IOCNUM_SNAPSHOT_REQ, struct vm_snapshot_meta) #define VM_RESTORE_TIME \ _IOWR('v', IOCNUM_RESTORE_TIMEENDREP DELTA SVNx^WmoHl}#f%qd"h(f粫W@LI+?^pjaf +$9)+Tɘx`6Yy\\0X|v` yJY(^|Ff l<-3¿7V,jY,H"r&Ol6e73$|cp{<,R U%<Rv`9/Y U2BR|X{K^7YI%Je@ +@J$LeE,a^pR)F2 ÀiL3R)!Kqv?8yb /Ҍ6io;xi9%86e؁gҀ:,B@6 o]9u\'%0w%>V:5}Xh42ck: {vH}m/CL}f"Y2$LmhN]3Ƿ6G: ٹ5rh`ӿ5pf¼D_q FZ#4ppy>kDz ^=lV(.\t8q2} o9$+=dM=Nf .C+}I{VHhIԊ ;Ƣ/]^Z6ztC$Ԛo[mZbdY=䪡C ٵCaLiƛ뾳imeŗq&`@tXD\W^\V(^$yEQ?bZ=L ?mi]1qk!u` }=YQ-`:|mHq|qsg%wmH*!(CeMcbN _HC ;\Vlnt~2tON[ 5 Z`Ԃ 5FkʹFQo~Mԏq^1#9d {#53NWb)igmZ ceb5|j% Sq؟M5B0ݣ)AwY g(U.to|Y}I} Y:O'Asl=ˡwvȽ:"{x9v%/GX]p 2< 81_b <|1_F{EC#_}. g:~dV|mKrۊIuREqAC@ŕnҊ U)Q!y6ٗ#:/ԞGY?[k/ Ч;kNmw:>S~J Pj fWA/ zMMFL Ԋo9Hprԡ v M,'."7Ovk$+[~& .wVpN /vb}$ENDREP DELTA 357974 308 54 SVNq$/.8g-=}KMMGV !x^Zms8 BNsIӗ+8`(s8ҹ[Of,A?lc}=ڕ'qI09br&iM\^fkc~6TSQv=VKnEf¾ ebHwΨUC-5f(+$^.EaStr$1smQZ?op@x +5w[P_Tac7 ۜ^Vv'7CFG/_LNj+` :!<[1H@"PE@ ٮ|LZh=Lဌ+Kߵљa+&K%9#Dg𹞒VZO:f9[º2T\*'"tSN` zSKcG=CE} wU>Jkt@gM"SJs*5U7Z$(-!Dzҹ .eI@$LXxz3W.E]W#3.|9<ւm:^t((j2zk[C&xb,< 㪘RlmC# v}*- :Eϯvp Vp汆9.Ts9E㊐WNr%f 4JR,w?,p3x\ ?p0J[-{xKo]9<&<)j)O[0=@%Ox۩V>1&>e2s N}qedc[־ MH|EmzohA#mީI 72?>XϞ.Gm9cTlb9&0Gd.٘x9 R"(S' SaZBJJ.uхun蝦j2Zf33Z6Æv0]fl{}LíNC&T`a:ϴ孇}ͩ'5𘍧\pzWu8XZٻ쫮w.~r)];;fj G,te-03N%}ib"koϜhPq= ܂΂pE(mʳgu_W9Wط5hpS)`}eǶJ[{9DxF<&6yH~UߓuڄZBB#Ǝ=]F#KBSFBsGB+֎v. m ubhy$XH6-x:\BLF߲yNurc2L/%ٔFCZX=C*"XRY;۬ro]-(m_e5t]͟ª7~m?ѽ׺Rk/Uє"v? Łbȩ ; ^ZqL5 &NT8w(G +׊% O+Fl^l&uA /&+2^L~϶eb9[9^ډrքXQ*v(?~ENDREP DELTA 335030 575 68 SVNw=L;fvstruct svm_softc#ifdef BHYVE_SNAPSHOT int svm_set_tsc_offset(struct svm_softc *sc, int vcpu, uint64_t offset); #endifENDREP DELTA 339936 0 42 SVN} 5w*k] "opt_bhyve_snapshot.h"#ifdef BHYVE_SNAPSHOT case MSR_TSC: error = svm_set_tsc_offset(sc, vcpu, val - rdtsc()); break; #endifENDREP DELTA 335030 1149 68 SVN!Y7,q0u)x^TN0}J(ah1Ph{RI-5Ie;w$:@l:=s|r|qWsx>\EU,BsiS84n錈B:gsqwҲbT2 UPUլD B/Tð̟\RN n[ W aoב79ŝԥCcJ'^8{'+@Q(J t;׹Ikd18;bNHOr]ˀȶvLdQ W̩K0٦Yͅ14GahkNܝ,3Gg)?+YЋ J;`GC5ad( 㒲aoMytcǠ.q )f@ RBoJ{Tr&4h=??y 1'aע;VE5vDq[c oYxQ{t}< }^$"%WENDREP DELTA 335030 1246 68 SVNt 2BEBr-G struct svm_softc; struct vm_snapshot_meta; #ifdef BHYVE_SNAPSHOT int vmcb_getany(struct svm_softc *sc, int vcpu, int ident, uint64_t *val); int vmcb_setany(struct svm_softc *sc, int vcpu, int ident, uint64_t val); int vmcb_snapshot_desc(void *arg, int vcpu, int reg, struct vm_snapshot_meta *meta); int vmcb_snapshot_any(struct svm_softc *sc, int vcpu, int ident, struct vm_snapshot_meta *meta); #endifENDREP DELTA 355724 243 93 SVNqS N~Y.Cx^T]K0}n~UA::jAanҍO׮dmmnsuK${In%0S;4 IV7u7` WlҏQєJC[4ZC@9Ox\L`}Q=16QL1=sĵaxWsnRֵYf\gvk@5<^yfu1jyS/0n I, lXՏ)l$v6~h81u"Qъ͢F@kmأ^q22TԨJx\_sL XD)3H",:A-6>N.RWuלˮgw7֮yPKBb\X'X + _FN]lΧ{z޹ $t"(I!Jv;>܀G@WE'6G ]ENDREP DELTA 339826 0 280 SVNa`2h1cI} struct vm_snapshot_meta; #ifdef BHYVE_SNAPSHOT int vmcs_getany(struct vmcs *vmcs, int running, int ident, uint64_t *val); int vmcs_setany(struct vmcs *vmcs, int running, int ident, uint64_t val); int vmcs_snapshot_reg(struct vmcs *vmcs, int running, int ident, struct vm_snapshot_meta *meta); int vmcs_snapshot_desc(struct vmcs *vmcs, int running, int seg, struct vm_snapshot_meta *meta); int vmcs_snapshot_any(struct vmcs *vmcs, int running, int ident, struct vm_snapshot_meta *meta); #endifENDREP DELTA 358848 0 1468 SVN"m![,P7r[F(ank"opt_bhyve_snapshot.h" #ifdef BHYVE_SNAPSHOT static int vmx_restore_tsc(void *arg, int vcpu, uint64_t now); #endif#ifdef BHYVE_SNAPSHOT if (error == 0) error = vm_set_tsc_offset(vmx->vm, vcpu, offset); #endif|\ "x^XmoHli hWH EGd(V&+v ^o/t w==c` 굦i Ɵ#B x8W_k* Xs+*Ps[!U Ʋ%/?N/yU< 룋)r Yz|W$r.#c ~S#-O%fPɪt|R GɈn:CQİfzÄJgpHPRx/=\O+ނcaՉ8 ȉ3FޜbFH5y2Ӆ8k+]_+%ض?ti0u%tCݵV@H=PBBkN/St:QOLJs)}.Q(i;JڎvWIS)iJڮ.=쪩K[=  ZxS 4%^ȵTQJpJPS%]L9L;Tw;NvF{Ǻu-X"`<`Ad#wp=D;#({qe:pw~I}4sJm]6a @#W伧Z;4KRs g)&g2jr3ra7wFADbZ|nҡ{Z,cG7?ԡr@& Lo2/%#a˭ 8^h~LDK^@=Ҡ`=}zENDREP DELTA 273706 88 238 SVNqtw [fWvm_snapshot_meta;ifdef BHYVE_SNAPSHOT int vatpic_snapshot(struct vatpic *vatpic, struct vm_snapshot_meta *meta); #endifENDREP DELTA 350178 0 636 SVN3AhU].Ex^RQo0~ dMꤢ=mbJb*h$Tww72U]#w:\a.TRt]6y9\|ZIMlR%iW9qdkAІ!jm }7'/R7d?X"%'0HFQ$} |9;~>['gWo|EgE qCf4ɱܦ,FPYSU[qd,K F*Dm-jєkw;̠:WQbWa<"opt_bhyve_snapshot.h"#include ioregsel, meta, ret, done); for (i = 0; i < nitems(vioapic->rtbl); i++) { SNAPSHOT_VAR_OR_LEAVE(vioapic->rtbl[i].reg, meta, ret, done); SNAPSHOT_VAR_OR_LEAVE(vioapic->rtbl[i].acnt, meta, ret, done); } done: return (ret); } #endif ENDREP DELTA 326257 10703 68 SVNlv ^ndstruct vm_snapshot_meta;ifdef BHYVE_SNAPSHOT int vioapic_snapshot(struct vioapic *vioapic, struct vm_snapshot_meta *meta); #endif ENDREP DELTA 358848 1496 135 SVN59V['PBs/d-.x^Vmo6l[Ų& l%&v)ʱYkD=ǻ{ʰZ0]JJs::EՉ79WgVd^e"H Z2 L   :ЇMP++vlŋ$3u2V/k\pkւrx{1b]ތ>.F. d^%'R%2 : O&ɑL!ke=lɴ8E*t:B | X|yF2mKn_4p(H-CnEU,۲Ҧ1Og7q-{ l6fdIG|yXI-2}Ĩs1TuaQ$܈C||4lmp>y"Yor }bԞc<(}{ْ^%ybjOgĞ$:kNOewRu}/9`HHJ e4XJmp4_J8FIuc%: ?ܻ?HתsLJ)ENDREP DELTA 358848 1657 65 SVN(#y2`0axstruct vm_snapshot_meta #ifdef BHYVE_SNAPSHOT int vlapic_snapshot(struct vm *vm, struct vm_snapshot_meta *meta); #endif ENDREP DELTA 335030 1629 68 SVN^h}5*'7G{"opt_bhyve_snapshot.h"#include baseval, meta, ret, done); done: return (ret); } #endif ENDREP DELTA 335030 1724 68 SVN~Zcd}%[-o] {6ӍDBṛ.(cVȷ >fR`צOfrS&aެCӨliibEZ5h1iTĭ[8Uȹ6lwGM! L;@\ ޿B!pka /Ehn LZJo,o.~ЀwjC#12Yj6.\oz}zcV9FTn_h }ENDREP DELTA 335030 1917 68 SVNlhxUS` cwstruct vm_snapshot_metaifdef BHYVE_SNAPSHOT int vrtc_snapshot(struct vrtc *vrtc, struct vm_snapshot_meta *meta); #endifENDREP DELTA 360107 0 27 SVN&6C58;-)mx{' (,[rSdBSx^WmoFŔ(=C %)oQ* kCׯ`.$Stػ;gyv-Be PNjvY.ωVh?3y06'^ bMSo,x~]+WKTX".%!Ń̃?|Y~jn1L|)_)~:Ǜ./?wS]}g\܃ c~#jNih2,@Ž~ϒ,RB2 )4[d˽/9̈́GVLy!2#%cGAC7{P(tD-)OsC`-OH09y5.ƀ+~N|$iLplݏid׿!w,iAwzuoX5?O|ر`>fˤt'{I7~¬#OoIc[+fCl+I2p&ɀ^@- Y1.JC";anj<Q\nK(Ut8 V|9~/f?sy`x֍Z5f ^8rkN  όw`/NDgRXQgJ38$]t$ <@ug9VMJߋ!j=-NYVE_+_=:qYhHԥ tTJd3ۇx6_RpDJ6qccˢ" Sn37EcZ jyjf*E|mOexKY=BuR=5}c:ۄn+ %VBx{O b~dDtEUݴYO׷t+1?5UWS?dKENDREP DELTA 357974 17201 253 SVNm&L%8j-D}xDE;d/PJ"opt_bhyve_snapshot.h"devsnapshot#ifdef BHYVE_SNAPSHOT struct vm_snapshot_meta *snapshot_meta; #endif#ifdef BHYVE_SNAPSHOT case VM_SNAPSHOT_REQ: snapshot_meta = (struct vm_snapshot_meta *)data; error = vm_snapshot_req(sc->vm, snapshot_meta); break; case VM_RESTORE_TIME: error = vm_restore_time(sc->vm); break; #endifENDREP DELTA SVN3o33x^VmOHWڄsý@9ɱXɱsT] F~ UͬR=$fwg`Ѕ'槁G"+ĀEVƋX'0Hx\@1.o%>36xcU6gch_  MSPe#;+QDՓԶo .E\|%;=I@Bk1?`)zy"b)KX^V[^\E"WbU69+2/Je c^Kq 織iqy\y|]̀gQ3(dGB\`!6. s)PR9JF04Hk%4.K:\Iyg7lI~(Ohb)sU*9r%T~-t(M MCfV F S+-E6D0y~l2R)Cy)/E F46 \0|w\x +p@L4`_>{cfu4,6 ӝY&s5Npl6f-z Ɩg\W}l\QTp#DfLm݃ԛB4LƖyH5 ݶwB$u!Aah!E}h+,4g9lWl 5`>Y]i o=E#<$4S\YԳDC?`4uM޷3,lWM}K # ʅǸN}cN`yt0Ѕ{ YM%먜8wE{RM'-|TeQQϠ,~ns1,:u VK|2`uKJ8UeV/[no|4;RԸhԧ?v(XG\,_0ޛz?}h^ޭ22~ʣeu[e<﮷uE>!Zp/)Ȫ>rr~v^rS;zhrvq;ĿpgV(38i#bU޳}Ted6#n"=#6itFr_϶^;GJq}XuPo݈r[ygnnzx\sǢ?HqY 6ZmxVjYzB!Gw$= bk?b>x4ܦFC CN z? ?h,o7sè馯7b&^tvޏCtǾZܭc=Ol?U7 uLENDREP DELTA 357598 0 104 SVNiWYC*?.if ${MK_BHYVE_SNAPSHOT} != "no" opt_bhyve_snapshot.h: @echo "#define BHYVE_SNAPSHOT 1" BHYVE_SNAPSHOT} != "no" KERN_OPTS+= BHYVE_SNAPSHOT .endifENDREP DELTA 357455 2050 75 SVN}  (\!BHYVE_SNAPSHOTENDREP DELTA 342243 7517 22 SVNbq psoBHYVE_SNAPSHOTENDREP DELTA 360072 241 118 SVNPUW _CekU.include KMOD= vmm SRCS= opt_acpi.h opt_bhyve_snapshot.h opt_ddb.h SRCS+= device_if.h bus_if.h pci_if.h pcib_if.h acpi_if.h vnode.if ${KERN_OPTS:MBHYVE_SNAPSHOT} != "" SRCS+= vmm_snapshot.c .endifENDREP DELTA SVN.\" $FreeBSD$ Set to include support for save and restore (snapshots) in .Xr bhyve 8 and .Xr bhyvectl 8 . .Pp This option only affects amd64/amd64. ENDREP DELTA 359950 0 31 SVNr;F|qy=iUM%Dif ${MK_BHYVE_SNAPSHOT} != "no" SRCS+= snapshot.c .endif.if ${MK_BHYVE_SNAPSHOT} != "no" LIBADD+= ucl xo .endif.if ${MK_BHYVE_SNAPSHOT} != "no" CFLAGS+= -I${SRCTOP}/contrib/libucl/include # Temporary disable capsicum, until we integrate checkpoint code with it. CFLAGS+= -DWITHOUT_CAPSICUM CFLAGS+= -DBHYVE_SNAPSHOT .endifENDREP DELTA 355617 12763 251 SVN2 0 |/cl \ lib/libutil \ lib/libvmmapi \ lib/libxoENDREP DELTA 335025 0 68 SVN|u'w#Jv^x^]o ˯`FM]ιD/.:MvE$}>LESzxy[j2aKq|S \11 ]dyGɰm` /0G p:P'\Pc-Wqcڠ=2ʙlu's Ga͡PȬ3&1:^߹5!pG*Yea4RX8DA2+ިQEr _ e Wjqxxn`*Ŵ]1~',)\}?9QށSaeoߡ~E)psgm|p=+P0V}ʬXHoR$鱹ENDREP DELTA 300829 3886 857 SVN8#^=o2O]_snapshot_metaifdef BHYVE_SNAPSHOT int atkbdc_snapshot(struct vm_snapshot_meta *meta); #endifENDREP DELTA 360187 0 357 SVNgI`u}]J}j^May 04p Fl r Ar filer Ar file Resume a guest from a snapshot. The guest memory contents are restored from .Ar file , and the guest device and vCPU state are restored from the file .Dq Ar file Ns .kern . .Pp Note that the current snapshot file format requires that the configuration of devices in the new VM match the VM from which the snapshot was taken by specifying the same .Op Fl s and .Op Fl l options. The count of vCPUs and memory configuration are read from the snapshotENDREP DELTA 359951 0 182 SVNa+)'XBO)S6E*A0p({)KCYGqW~"L\2t/U|ZY9dx^WmOFl!A¥qG) ]Nj {]h{gvHrg^v"w?REi xcѭpeTX&KDe PI\:W^缈E؅$k S9{zCxnsZYO T_?!Mi"͵T/2sg sdžMu?M a]:SD,rPj.)W2cF,9UR02|0ˢ`h-43[ջqxrml~i#YeeQ(#lG63~V{)0TESeFTd 0 [~902? D88!ЇO3vvsz]]' 㺵ʙ\&cB1"L}m+RW'Op`=lE{w=j"gvu`4|fb`Ê[rKqۆk@ݣnŴ?>9]9Nghh0 ͰCR+è&zq+` e!=oG|Z6,рOD\,(nՊ= 4 V26*2onst char *vmname; void *paddr_guest2host(struct vmctx *ctx, uintptr_t addr, size_t len); #ifdef BHYVE_SNAPSHOT uintptr_t paddr_host2guest(struct vmctx *ctx, void *addr); #endifENDREP DELTA 360229 0 139 SVN_GyF^Z>N07)q5k(M*YtXL~,"=ZOx^VmS8-$GZ:C (!P#`9IЛvb}j_gwUyE>$[$ fc;JҮj<̊}5ܧ.iJndBOǃ} NοT̉B5ql>SyFgZ`0N3; BޱdA)A/XN7>et^RLF};|>r|>BgL&P((qY)0puuM ╾YU%#!d=IU40kqٙ7p[ʼnr WQj*L`Sd96XD#}Xn HG" $VxWԬA 3̓ch4fO}3Ofud}qeeF*])~Ws$ Et),[Ļzݔ(<(B̑B>ݷA"} *=ob48߽3js@NdbYTJ+^aɌHi'c ZjJ2h n0G&ʸ껈bsEQ3C]ړ^Ei/4έf!6Ve!Sn(߿@FzhH'6;V7j6>G ݌]qf#7struct vm_snapshot_meta; #ifdef BHYVE_SNAPSHOT void blockif_pause(struct blockif_ctxt *bc); void blockif_resume(struct blockif_ctxt *bc); int blockif_snapshot_req(struct blockif_req *br, struct vm_snapshot_meta *meta); int blockif_snapshot(struct blockif_ctxt *bc, struct vm_snapshot_meta *meta); #endifENDREP DELTA 221828 119848 2968 SVNt qeo :"U9f, :QuiO{Go;96 8gS{@M;}yN'8v{< o x[x^WmsF,3n34LNI3Y:I֋cq{wt N{jv`,rq0 *d$E^M?~3!`C'Rhb NG' i.r-D,xi?*QId4Iy^&IEMnfR7hwEޤJ<њ.1{g n0[. b ?lVDOMexT:u߹g3tmBd D ?RKѷ ^V2Cj d[7 -^T [* n:0DWD?ϟA\ta&8:6C2:J^V1^{ѩ;iۖƏL`E_]:zoתcWչ8< L(U7i{f鑠Q~z& #ŵ@U5K~+ \<0کP+(kʙ">'òV*k#%\k*ڦ6ɀ ݱ;s#D?jZ 6Yc!@>Q p> |Ud"p?Y|Y9\ ͒ԟga%6HH?K|͙ QE16h2;jC2wtmtO? Z-M |Z%uBzVU'8!.7W|N8d/?\7ə$pt/DͱjS7!ѳXzo{C@N7[`ny݇uV |U o;ڝo9j+`v=i7jq;@htWEF^ncګ)cDր\w.+JvW\۸lNfw0t- +82^5Ms`wPBD>vª)5rhIuU-2l5ރ+[q/}/p∳gɠ{u])f؈R7y#,d~½p% $#!Kq?xLW4]D @d ?n&SЯxh5u2S }G:wIW,#frjENDREP DELTA 356523 2616 433 SVN#w>*=A.2o^oJ~6_2}5};F}";x^YOFOil aIֵɱcs ];`;nʇ$>ycҽtJDbI8u(vX;7/||^vQCHG2V#vq&1@3. ҡj'KjDSiCR/Wbiq4AY ZЛx甂-`cͮܧ gi^.Fotl6UE i{bl* /+rc9;rzx$J.C*2Hy$ΈCvţ"*`^iEљ(,44}"mZeԶCCJׅZ,4+UR;nT#9Ym X}JpVc- }ęЍMV u+KYNu7X nNT_.Eף3 UYa҅pջe }zdqhǚ3􏒷sBϑBq"𛴔'p<OPNQ?.RAEn%(ƸN\q3q+"XUbV0u]ʠ*lb:%9񫊐qTٝcaà??ErcN';}>,u8 _*g\YM Q=*ͱp ]MvCP`h(UrlbwGժoF#|s~ބmXԪ&|01,u2;u:ޘ يmH{^9f7 % zݧҳj)֖ >zX;ӆU'ZoozѫpD''OCU@Q{>'ó?{8GhƖyM}U9_cZjd4h0PeYAkp0I--iH"02"_K>[$/qVX,(HC_KA[CȘfbA5,eCPRaj֋$L_`^SP9hY*FI5O`35 Ȣ; ukF[V0fSyR\q^qR#sGl#A>nj.RXܿivb pz}9+M?4 Wg8$0ߍ0Nn_upr"9bj=_Ԙ(OQ(V`Ep7VWF:LNC6;끺02k:]cCps/ҜZr4:E_)ou;ԖW9Ң_k .hVAR,U\lrDtpu7MN}BfeC̹-IߛRKl\ ~Hk7Ԁ#Iʶz!}iX}kV=GZENDREP DELTA 357846 1044 323 SVN ({qp _"kvx^Y]o8}&Ҽjfn+Q )h!v@F<9:>:I(NIJ=68\M}0lOj8#<5qH1C4a=^ Q-Z-1T"6T4{"#TR!!cn*9epy%9/FPðW C&Ɠ й$4V'(ng)7EF*'^!}?֑f9e܋bD"5lFw7uGX 8F- Fn\b2oNj@LDjgFRANỠ'Tc깡H:ƞ,:@bH$ϲTLBx]hMF4Xg 2 t-jZp4|BK{->YDS`16_AL&k+v-2)WlLǒ(DU gNԙzaˊy. !3fLspw]`nbtzEJM48E>6/Źdm8ܬeN%w,o'6$ i)'(BA(ՍHȢ:{Q]߶i? zqAFT)J%d۸Hsh&+44eۍ"G{wF8`^ôP oߖw4;BxG-'fٛF0;hϧyy{'jDh/EwنD߮h3|Fubۻ7G%!P}΄c>;}yq.RwQ}GwrDؾ[6M]cx{e̡2GOBw qح@\ u8[?yokvINq_V,RJB.͎!7xNDf hyn+ `B( =rfkYPMRRKyҘ̫-`""1XÏm? 9`5#Ar(x^XQoH~%uksE*J*q6n"^[uHgfM iÝtjfvg܌%`eVГHr~9/O?\}>pf\JMR> USfx -+nRiB@WIµ 2_$rjLhMY%fKBq }kf4#C%7# '@ȣ87Na4oNWYG/ gZF\񔧡ņd-4W?Ҵ< [@4Ue]_zcvs!4`"+urAȀR3h(vW,W̼fL"nk'Xy`Lm$JigGnwp 5{?A=Kg܈%n5 28~O0.2e>a%y{-;;j#Jc= *[mp,ɄPP,l+ 6"Dr@8Aq9c*I -]Qڵp ѡڷ/ּ4=始 @ )vʕQ =imX= TG)jpe@HH@gBB4xY/ l|amoi 7g7u[{6HoH]&hfl6*g$4JrA`46(J\ZS)/lyTʩɚ8kU=&I?qB{! V+!x-]S CmR]S/P.ˊ)ϸ=s ^84lV \0s -Q7In'Z;.Ǚv*͗Nu>W/l ȵX ( NLp57]I^LxM[ ^$Az1OBD0{aa)Ni-Ŀ*r±Df }?UCJsGl~vl #6nn hq$&rk[iMpOJ3^<7Sm1~[(VO-oENDREP DELTA 221828 132828 1819 SVNP*<;:9P u_9 y6 I.K:xXbx^X[o6~~Ѽ8Zf͂:ڽ4Iۄu+IΆCJdˉ]`}Hsw.҄[IUrRckZ"L?Q-*K;9jRUfi"- &,ru?Lx6~$2-EL%Ta/{A߯#,猯M&NלiUkrg$}3 *5ϋ:.[lGmXZ-FZa?rڰpꠦ's;G0LK2n{†k>329&YYo KgH'FmeXRHwD0!t Y֤m$(@:wB|-@HAi e$+YQlʐ$Xa،XڋL'.! J%*-?f ;D&E A? /|M?݇ ?~Bgӿ'ۊ|}{L,^߼<܍\@2 z:+RQQ" %&o/Kta5&'c0O1 s.Õqu\ gyK"UV }uAH+&AHtY`_i5*c6X4VBq@8ML(#4K%l끬Cnvho(ǥ]"sV-$%s[CmۜH)֋"嘛4af=$AX7j[ԌcrH VU⻅o}lZΙ -BČеl۹qI޽#onϒ\ʙx=,+g AjFAk% B ۪)qV͞*v'h@I %,eK%ߔ](0Eg6 lkXs`~)es+T YfHyqW MCmPCbzφ:4VL W؁<Ӷ {6̡ Gopt5ԏHKlsmva?Q=@DG"=XDG O.L\ݾ>pN˕^(/{ 'r-Uw {)+k^ ؄^,3p[&勥k;jJFCw9AJVwڰߍjt!6hDcyQs0t0X"13q +Uf&X>n9uI뾆cM" t)QEUy 2cvN홲쪺>cL-b:_N@)$x"9QM)eioD跽U_†UX40SS̥(Y^={WX^ǽlr~/?_j(&.f^5a>Q7=|0Mx]b9ͳ?T }(vv &v^%fb_base, FB_SIZE, meta, ret, err); err: return (ret); } #endif, #ifdef BHYVE_SNAPSHOT .pe_snapshot = pci_fbuf_snapshot, #endifENDREP DELTA 359949 3542 2307 SVN|@S<4Q @^#include 1x^O0ǟۿ ӽC0%11iFwAnm5}[Hqdl*UuA7&T@ :!l`Z-7k r l5;gD<>VD퉪+`,F uLB%t[Nܤ|-"P PBWN^WX.C*BԂ#IѦ]3vVKޤ!В`DJtv?~65'iW(CzIjMc%),J~}&Iπ +;VwO\B3āje`K1 FRAԔs_:ډ!4rr[¤+v:ŐJ --(p%n3\³ Yd/~~;07DgF.X v<pG8|jE:Rp fyؽR LVၧ}TU:~O>jy^ENDREP DELTA 356523 9484 1155 SVN=8)S( J0&jYA{x^kOHs+ixt:AAt+ղ$Q&]qBc3》~0Xu"ʓ-Wi^-;?`gs5O5ܭT|'*k+C|zz޼ \߂e%T^qG,?<&yfk\F 2(Y 5}f~{޳߉##lВ sC؍ijd(x :R<+m:R Z_d05\?dCo!cfp*D*=Ѯ2uP%7gg<3HGz\4_ƫFaidQM r|5 'KD qd4ܟ ydB;:F0s؇7kt`b4 sralĘ-^2YN&``LȼMƤ㩌HW^[`"TJze Y_UQ/-NC9Ѕ/slŝؠ_A5wQ \gq},KeY>FD#B% (u\8T_v,$.apf H^yH"$w*$*~GUu%m F'2NgXZ2m4boN‚gq`R񐡫YE' #include #include #include #include #include enabled, meta, ret, done); SNAPSHOT_VAR_OR_LEAVE(sc->curcmd, meta, ret, done); done: return (ret); } #endif ENDREP DELTA 335025 1637 68 SVN/3h2fhstruct vm_snapshot_metaifdef BHYVE_SNAPSHOT int ps2kbd_snapshot(struct ps2kbd_softc *sc, struct vm_snapshot_meta *meta); #endifENDREP DELTA 356523 10912 162 SVN6j y[Z~wx^MK1ϝ_-G+ =V<4|̤(wׯ-B3yڀ{%m `hv٠VD>MxfɆm f_/`Î.}̄?:#kAlY J|GVb1 [)`#z%+y;ٌXqJV?ӿ]fCH\2)BWsr9io%1X'}Z'W0XNA7b0wENDREP DELTA 335025 1829 68 SVN;Dl7klstruct vm_snapshot_meta; ifdef BHYVE_SNAPSHOT int ps2mouse_snapshot(struct ps2mouse_softc *sc, struct vm_snapshot_meta *meta); #endifENDREP DELTA SVN~$~~x^=m{8_^S;u^ڛۋ8Nkgm<:Yc]m+I;/")v\?42  R{;l ~ڿ -7x)`s?VC? V$E|.a?9gÝ2E)n}v&lhO*1KQDq2 4i-XMә.(Z$$iWi G dI=JAlŋtƢF, ̤"s/4qtL!)<[E$FD&[1>>HKX44y WI \J] AdLSo ?&ֿj8'+ C &Zra>"M8pIx0DC }wȆѧ֠z=뜱3j]_7XZCHX>O׃p]_vFΐ]ޜu.fĮ#vuG67"ʷds g{}^ywtݝC-vր] C†8ۗnsvu>vFluyi 0WA$N/ <:6Ȟ$fC 5h?T"Vum` @f!p݌:?"*@? >v۝a]ıaZ=`vA5< ĸը3\:"zb[ܿ1/>@yJ\k!/i+s ~qٽ\;XGDN;D.S3`82juYc î9;7(;; Bo+6yH?MfvVY/bjiKLN٧=P[CȞLv KM|PX!ǧ&O A)X|j כ".oѸ$193v?)g: "t2vY ,8WZ^"}| nCׂ[`'fnubߝ:27 MrLG<zDQ -[ʟ7pjt_@ Lb(aU(I'Y9E2=1h) @e:p- KpM Jrh3&_Il-ptܥYԍWKVЙ2ӈmIWIٞwi/ܯib7|Wp'B>Rv *ib|xL :||@7sfM*.]iR{}Ǜ˺*e`?f5FMjT }ՇJG aApNoΝ+?7Z?v͕ <޹!!xUw*X7/5~r>Z{}tcΰgyc`΀كaʁ=r}r>t>W*U>+I;|`7jÜ8=pБ@PV\sw⦮BQ:Iv/߉0` )Vyχ5]MVa_oɥR[e$) `/[ h:woš+_vjr/st㰚[gNi׍nuzQb1<5`rջˌ6ZxzI ߤ-6*AlTn./S|k]Va?7*h3p:*HG6 oQDtnuAGہH &OiBc]*_[AENhr7[l ugfu~ʄVjo]w۪~nU_ @2il#ֳj3Eި7PjuQ[rV,ghcV;|r\/ `C%d ?Q*Z9spsPhX"%R XTYC{7!3LWB;|1pB z>{ &Gqxɠ1i$1scއ: GaK!hL/z( zP6 " AJWO qN"ZiPbT))dW Q.a^: V=0=`Z0(MgaTb?]TCĂo+ Z#W5"qz¨58ks*NCcM1d⇃~[> & @ 0@Ayx5i|oh. &;Z9]F(Q$^l0"7#4ppEF $va:kY,V!!,*B;|!.o%~VM(=(m%ksXh8b^؟ʥ=Rg~8a+`v:A7a'Bl`dD$ &2}gpֿ\CTJrAKys4n2#io#`'&i9*њM>ЃҐKzԭn@JRZl*9CGKђUܩ9¼I^rԒ0 5,h%c un#>|tlpQ,RGƲP[ܤƀ  KiBIa^t7֕SSiSJ=T,Qw:_i_:׭3p:筛ˑbGMEiQZ'KdP40w2LrJW5:QET8/@IYz#ŸZRܒXFqnk܈di9a5S$Ue"<6Dd1C"\\OHcV*Ep"l8`Ԩa5UP w ZѴ&̸5 n[LDȃlURpUQkMgFU׵$nӔګ$D951Iyٴm˖lD`FShGr\ iY"Q 6xkg f@S`1j\Eg[hoA[SgA@Rh$b~)]@X<5z7%X^VY~ {A𵳚!Y,"P7}(S)a߁A&j؝;_Im[RPƏӆW?ssOz~ CalosQk~Zd)`޽/owE;Yꚋ`sp_{zx(HSJYf?e:ܫ~xC^CM^z +x)¶2ᓘSQ0Ŏu=, hqkKS3NQܐq>HC q7Yj`A`<>`IOde(|-2VH"5eC,Tw'|MΫATL/8Is53Ibm8! 6^QiDAgZmƈW`IIRMEDU9_D7ӳd+` .#|ysb%PC4"2h]8tThLA|1,%r^$fV,t˚@E]"r4^/)2{@?B7ʲ'  )ۘ񤥗]Y`yʪHQxeM?yAEk5ݞk)f!?b&C2Cӑ\3 R\$fR)e+2so]Pf]l鵼YXղ$LJkqwO[F%G`EceM$3B3ⶕ ޖiHZI4!Ƕqr*eJbu-K4ʔͬΆlađɅ[QL46/`uY), c;QKfH(]rY"9tѲH-F+yE N2C9GjHF@ƏYL¨o_|^ ptG£` Y?4LA3_i}uqt OĔ1.3D!OxyI0'j ~o܎ 2sLYSnqTj)u۝ TQ=+2"@D// xFދJ0P*4t4)550iFT` Ssp8^4!h܊HV2\M]*WhWk )dj'ИgdDZ [@Uf+T(c¿KBRDxl 0h*"#毲PV4jZ"BGf0tH*5Zo/¼&_>>e>QnYhGqWJZl4I,K&KciB:fL:ӈ&)q#/~h9x%  K澿dmeB2SdS*r`XUhT #i7Vw""6CmNgDe /tÈU(b1-c{+i-ba6}xVaCuf8h %(=?[YLgs R"4D" ?ei?"43&dI/N0 1 ;^Lx+rXo 25uSA*|J{2km ?62 Ha@ R&jbPWwkL|ti7Pʄ݁Ź NrQ5N0udd°kr3r=F9:V6̓P.d;9y!&K~>IV7\g4PaOH>T_* GpJ )PK,uwy -fNi"ofG5}U$_LmĢwR0v.LfDD2sR^ ]\a4\ګytOmA }S&w2ł 0;6G Eq ?秆[%.%;IdPK?BZ,Z嘴ď6Q틎,+L/yXbXKQ˃hKD1FQy5IdLE[Šw^cX _<ž_$EVS :Pj焔'"9✎t='w?QqŵgxsPx| E&Y()?*MRÆ 6d#Yۜ;f$QЁߊ-0PO9]l 2AfhJ{ha?y[n>:⡟,"&AY Jf&tYZX~\a9;_S&#y#Mc]TW|f+ 7Mf q\rI )f27|nAS3_pRDyYBҿPe9B` XŢJgFɇ/ F#y,2k(fJ=a(q1f0o QX,>d)s6L%C3qʾMj Het)ͺk!-UY@N zD0ӄhDN\jZSPP-s2$Z~X C_#4Ҽt<,]M\ NZvR|,6NT ӿ'2 +ud[ˢP,ophLLy:ce;x30ꬶ$c~WIc쮛ҁO^&PD[Cwf5%Eʺߎ'xuK=||#'%|*+L'go*a£k&D0_q: &u{Y44+r)>SٓY':!6+tVul`Q2a]:8M&ymnFcLb4׈my/L]Tx|gեȦ+-I\{^Pop/:ۚ v.NɋJ|NX;[(U/P_/Ʋ ּm34DiC:SGLQu^kP  ->. 6+v()|h򗆙, ; }Vb[3uE35lZWNѮ) --eTں_; ɺ(O0\N魴kxl&02DdeTPe P]N7'ŗ.*ŕ>m"[UƥmLd}U5TܙdX"TH22$?ƳRr?uN0TZQuRxOY\M};,H[Z//H -i;BHs nذ^,tۻwȫASг=78Cyf@mxƛH仵oYtMy8C9RcoGtl; .MY^ PMyL@D&Z}doZoڙAީt es3SlPC>vt:Jv'zoJY,%/8 [B<ۨ=N2rST]TN99G~{7Hkƽ":l_t*̏/`Sfd&ѹ +CrEZjb{QGI/QlD -;y`c%I0 ,aĘD_pSE#'NKfy?]V -!P4N_PNNkH|>YHLIRݻWCz#vhB9ujX-߬[ .ˠG$ůɶd~dv~N!2:_$8P4:Lʞ1xJb11s[n|FPC6x 8$n\DCTi7tc|^8/=ܚ[n`DבuݵPaJ7u}/Agc{ii4joGG叻]m0~NN5BT縊w%Sm[w,р)el6vMBŢJh-m 1ioIQ46%\]ѹ';id]`?eAo;׃h.!i-7}O+Qh4d!I){-.?i}>[D+n4%>xjGxH=N(•!{v''Y'꣉@R$z];v 6?`[Ӯ;Z!=;ѩ)7 x /P]g؉8"i{lgd]Rݞ覑.OS-]uClUZ O /2Dfڙj=!@]v`*$Zk*Q料S7ƍN룵~Oy,Jն'`PTW\rk̓7su>!űIy4& JhM*^+9gV">)7(rgҷ#6>z+6h3?zoo{Wtud8ͨGdCf~ HEO@;ⓝA}˶9t9v%b^ؤ{V %LyPOkcEU*Χ|bn[։It䥁2kHk޹su☉]ѵ`̜k#)ʓv*o㱌,oY633bGEݨ<so>?ʰV^%C*C'p\9RMthrnjK ?#b&T3+[E0-W*>ۤ=Eiƾ8"oTe=uܑO<XQ yM7A_ 膌R ƛ9pkz}N0>jj ŵ N cEL .` NnGo%2?xoENDREP DELTA SVN@x^W]oH}JTH~41جmfc{MޱIUiq" ?MD ܔX ;3VHq@1<(ZMN/oQƶ`,5+*}s4@)`ǁ!S9/X ˸NklJTpÅB8+4(ƣ5at6z-KXrVV=Ӑ-䆧P)W7RؘJ0eepycoSK%U)d@AenF`R\T[V%2ŕLq􁡬 W(KQr+RlkVG,XA"TPIq9/S74e))"+]K%CrKSD,q!4dG4CM4ɘȹ2ֿ{*9 : ?ZaJeRx|XhJL7 Fe !(= kw ap YY\φ߼݂a8a~t6q1 yˋ\'4q0GLܩ!,!`-eyn,YAlаQC7';u"018׎A8&(pQ0pP5.cGkhZslK~C:6}\{8SFA\;%ΠX d35-f p3vp< Oky{vDl{H̊~F{ŢWlf}"qC ֙o[Sܔ0nվYRpG` ]߀q#niywqW5v.:Wb7ډCϚc?;pTIVEgΒ5b.y=D&gy8Z% tPVI <)?_>v(SΉ(JKYezYw1#Ms"^ Z|q:x>;k5$'%s4vyr,.׊4Rg4hT@<>b 4mwvH"=;|m(tE$xp|6m=؇xr~yrrѣڍ'O ~eق%w <mmA w\GN@A=L?phTw6( ~Fh[ 88C|pu<<`=eieRUx"i4x[B󸋢H6ՋjK(,M&bA} +٪̀}s?Pl#ʹHu op+?P'" =5ފ{zeŭYm( ~\zos7RD!wdֆ%_?#4@E:pe? ~ENDREP DELTA 356523 11501 59 SVNio x}lczx^K0sW<إu᠃dӂt$NR Rx~ є5ʈsMgOBrXWd{[mW{='9o{I`XԔh)L7B+1FI]nzCn2zZ@4E ;#Q& ,Z*tɻrbD6qo! fV.oЩW1.׃_!|bL . Õy+bסּ,xǓP=ENDREP DELTA 326276 93996 68 SVN{y,=F kds*#define UART_IO_BAR_SIZE 8 struct uart_softc; struct vm_snapshot_metaifdef BHYVE_SNAPSHOT int uart_snapshot(struct uart_softc *sc, struct vm_snapshot_meta *meta); #endifENDREP DELTA 335025 2515 68 SVNa9dX$Y$c~struct usb_hci; struct usb_device_request; struct usb_data_xfer; struct vm_snapshot_meta int (*ue_snapshot)(void *scarg, struct vm_snapshot_meta *metaENDREP DELTA 356523 11587 479 SVN5c7T~ Qx^1k0gWdq5)`PC'!s,%#ܡ*I% $Yt4^V{#ZFaOۗuZ1OmtZKvxrAG?# Xs>Y2YC*XlC2lzx;冯7**1`e蜁9Qjk,Yi+w2:خfwap8RN#(o?8%.84Q%y8Vɟf{YENDREP DELTA 356523 12095 1770 SVN $-^)cx^V]k0}a')6]4i`!,XN,Y]ΗkI=$Ɩι~ &iuG=p-1Z\ZĒ[$ZPP,Mfl Uh>wסWWok.(AJ⇁_LmQYS^އAtB;,2D0ƅ.?L4 H OUpv2yڮ x1'pL{u 7|,Xs|[g}Ff{+Ө2kNIaMd;nB&P19,\e s(6k u-45eMjZK$4>TWlS`xz ImhjX'UY+%E)47e5ᓿfƧ3STdI M cwYKۚDqƶqL_;eEvk4M鉻RSˬK#մۄU꓅v[9 0 N| $$q Zfw!._mf ${MK_BHYVE_SNAPSHOT} != "no" CFLAGS+= -DBHYVE_SNAPSHOT .endifENDREP DELTA 308616 0 41 SVNYz!K ym E3uw%OB(x^j@ ~ =@c[HCzr]߾Blf4&7W0L',\ <%Em% u\J9u% yƞ!yRB#тCOشL q< 0j0XhؚL uI5F__ 12}ϻE/,u<u$ u僽3~b)r=۔ܼVCh >dQُldrF 4$[[J1Iq5<ȓ љ1J_ یV~J}Zc3kR!ENDREP DELTA 357866 169 40 SVN~SR<F.MJreX;UmEG~;D@'}C1#M SF ^x^VS@~ŊS'h|qj-c:.\bKrӧor,)Im;438&{·8 ?r}r57&W&{ Ez-wu^۳|w3woףQ{/bt`ʸ;c'?x}iLddm_Dnxui,z.1GWReA7kY` oNwłURNY__@& 9N~2߰ 2ZaV3*w<k1c pҋc b>[ʢ:'oFXm5̘޼9wn Oh`w{HOB`h1̺ME yϐۋY:E0Tet,bc>c136Xa a7WiiP,? w|wLJ'`*%fJ>qSvbnjhxp QHF/t̒aAl~I PT'8GVMM e`85V