1 /*
2  * driver-hypervisor.h: entry points for hypervisor drivers
3  *
4  * Copyright (C) 2006-2015 Red Hat, Inc.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library.  If not, see
18  * <http://www.gnu.org/licenses/>.
19  */
20 
21 #pragma once
22 
23 #ifndef __VIR_DRIVER_H_INCLUDES___
24 # error "Don't include this file directly, only use driver.h"
25 #endif
26 
27 typedef int
28 (*virDrvConnectURIProbe)(char **uri);
29 
30 typedef virDrvOpenStatus
31 (*virDrvConnectOpen)(virConnectPtr conn,
32                      virConnectAuthPtr auth,
33                      virConf *conf,
34                      unsigned int flags);
35 
36 typedef int
37 (*virDrvConnectClose)(virConnectPtr conn);
38 
39 typedef int
40 (*virDrvConnectSetIdentity)(virConnectPtr conn,
41                             virTypedParameterPtr params,
42                             int nparams,
43                             unsigned int flags);
44 
45 typedef int
46 (*virDrvConnectSupportsFeature)(virConnectPtr conn,
47                                 int feature);
48 
49 typedef const char *
50 (*virDrvConnectGetType)(virConnectPtr conn);
51 
52 typedef int
53 (*virDrvConnectGetVersion)(virConnectPtr conn,
54                            unsigned long *hvVer);
55 
56 typedef int
57 (*virDrvConnectGetLibVersion)(virConnectPtr conn,
58                               unsigned long *libVer);
59 
60 typedef char *
61 (*virDrvConnectGetHostname)(virConnectPtr conn);
62 
63 typedef char *
64 (*virDrvConnectGetURI)(virConnectPtr conn);
65 
66 typedef char *
67 (*virDrvConnectGetSysinfo)(virConnectPtr conn,
68                            unsigned int flags);
69 
70 typedef int
71 (*virDrvConnectGetMaxVcpus)(virConnectPtr conn,
72                             const char *type);
73 
74 typedef int
75 (*virDrvNodeGetInfo)(virConnectPtr conn,
76                      virNodeInfoPtr info);
77 
78 typedef char *
79 (*virDrvConnectGetCapabilities)(virConnectPtr conn);
80 
81 typedef char *
82 (*virDrvConnectGetDomainCapabilities)(virConnectPtr conn,
83                                       const char *emulatorbin,
84                                       const char *arch,
85                                       const char *machine,
86                                       const char *virttype,
87                                       unsigned int flags);
88 
89 typedef int
90 (*virDrvConnectListDomains)(virConnectPtr conn,
91                             int *ids,
92                             int maxids);
93 
94 typedef int
95 (*virDrvConnectNumOfDomains)(virConnectPtr conn);
96 
97 typedef virDomainPtr
98 (*virDrvDomainCreateXML)(virConnectPtr conn,
99                          const char *xmlDesc,
100                          unsigned int flags);
101 typedef virDomainPtr
102 (*virDrvDomainCreateXMLWithFiles)(virConnectPtr conn,
103                                   const char *xmlDesc,
104                                   unsigned int nfiles,
105                                   int *files,
106                                   unsigned int flags);
107 
108 typedef virDomainPtr
109 (*virDrvDomainLookupByID)(virConnectPtr conn,
110                           int id);
111 
112 typedef virDomainPtr
113 (*virDrvDomainLookupByUUID)(virConnectPtr conn,
114                             const unsigned char *uuid);
115 
116 typedef virDomainPtr
117 (*virDrvDomainLookupByName)(virConnectPtr conn,
118                             const char *name);
119 
120 typedef int
121 (*virDrvDomainSuspend)(virDomainPtr domain);
122 
123 typedef int
124 (*virDrvDomainResume)(virDomainPtr domain);
125 
126 typedef int
127  (*virDrvDomainPMSuspendForDuration)(virDomainPtr,
128                                      unsigned int target,
129                                      unsigned long long duration,
130                                      unsigned int flags);
131 
132 typedef int
133 (*virDrvDomainPMWakeup)(virDomainPtr domain,
134                         unsigned int flags);
135 
136 typedef int
137 (*virDrvDomainShutdown)(virDomainPtr domain);
138 
139 typedef int
140 (*virDrvDomainReboot)(virDomainPtr domain,
141                       unsigned int flags);
142 
143 typedef int
144 (*virDrvDomainReset)(virDomainPtr domain,
145                      unsigned int flags);
146 
147 typedef int
148 (*virDrvDomainDestroy)(virDomainPtr domain);
149 
150 typedef int
151 (*virDrvDomainDestroyFlags)(virDomainPtr domain,
152                             unsigned int flags);
153 
154 typedef char *
155 (*virDrvDomainGetOSType)(virDomainPtr domain);
156 
157 typedef char *
158 (*virDrvDomainGetHostname)(virDomainPtr domain,
159                            unsigned int flags);
160 
161 typedef unsigned long long
162 (*virDrvDomainGetMaxMemory)(virDomainPtr domain);
163 
164 typedef int
165 (*virDrvDomainSetMaxMemory)(virDomainPtr domain,
166                             unsigned long memory);
167 
168 typedef int
169 (*virDrvDomainSetMemory)(virDomainPtr domain,
170                          unsigned long memory);
171 
172 typedef int
173 (*virDrvDomainSetMemoryFlags)(virDomainPtr domain,
174                               unsigned long memory,
175                               unsigned int flags);
176 
177 typedef int
178 (*virDrvDomainSetMemoryStatsPeriod)(virDomainPtr domain,
179                                     int period,
180                                     unsigned int flags);
181 
182 typedef int
183 (*virDrvDomainSetMemoryParameters)(virDomainPtr domain,
184                                    virTypedParameterPtr params,
185                                    int nparams,
186                                    unsigned int flags);
187 
188 typedef int
189 (*virDrvDomainGetMemoryParameters)(virDomainPtr domain,
190                                    virTypedParameterPtr params,
191                                    int *nparams,
192                                    unsigned int flags);
193 
194 typedef int
195 (*virDrvDomainSetNumaParameters)(virDomainPtr domain,
196                                  virTypedParameterPtr params,
197                                  int nparams,
198                                  unsigned int flags);
199 
200 typedef int
201 (*virDrvDomainGetNumaParameters)(virDomainPtr domain,
202                                  virTypedParameterPtr params,
203                                  int *nparams,
204                                  unsigned int flags);
205 
206 typedef int
207 (*virDrvDomainSetBlkioParameters)(virDomainPtr domain,
208                                   virTypedParameterPtr params,
209                                   int nparams,
210                                   unsigned int flags);
211 
212 typedef int
213 (*virDrvDomainGetBlkioParameters)(virDomainPtr domain,
214                                   virTypedParameterPtr params,
215                                   int *nparams,
216                                   unsigned int flags);
217 
218 typedef int
219 (*virDrvDomainGetInfo)(virDomainPtr domain,
220                        virDomainInfoPtr info);
221 
222 typedef int
223 (*virDrvDomainGetState)(virDomainPtr domain,
224                         int *state,
225                         int *reason,
226                         unsigned int flags);
227 
228 typedef int
229 (*virDrvDomainGetControlInfo)(virDomainPtr domain,
230                               virDomainControlInfoPtr info,
231                               unsigned int flags);
232 
233 typedef int
234 (*virDrvDomainSave)(virDomainPtr domain,
235                     const char *to);
236 
237 typedef int
238 (*virDrvDomainSaveFlags)(virDomainPtr domain,
239                          const char *to,
240                          const char *dxml,
241                          unsigned int flags);
242 
243 typedef int
244 (*virDrvDomainRestore)(virConnectPtr conn,
245                        const char *from);
246 
247 typedef int
248 (*virDrvDomainRestoreFlags)(virConnectPtr conn,
249                             const char *from,
250                             const char *dxml,
251                             unsigned int flags);
252 
253 typedef char *
254 (*virDrvDomainSaveImageGetXMLDesc)(virConnectPtr conn,
255                                    const char *file,
256                                    unsigned int flags);
257 
258 typedef int
259 (*virDrvDomainSaveImageDefineXML)(virConnectPtr conn,
260                                   const char *file,
261                                   const char *dxml,
262                                   unsigned int flags);
263 
264 typedef int
265 (*virDrvDomainCoreDump)(virDomainPtr domain,
266                         const char *to,
267                         unsigned int flags);
268 
269 typedef int
270 (*virDrvDomainCoreDumpWithFormat)(virDomainPtr domain,
271                                   const char *to,
272                                   unsigned int dumpformat,
273                                   unsigned int flags);
274 
275 typedef char *
276 (*virDrvDomainScreenshot)(virDomainPtr domain,
277                           virStreamPtr stream,
278                           unsigned int screen,
279                           unsigned int flags);
280 
281 typedef char *
282 (*virDrvDomainGetXMLDesc)(virDomainPtr dom,
283                           unsigned int flags);
284 
285 typedef char *
286 (*virDrvConnectDomainXMLFromNative)(virConnectPtr conn,
287                                     const char *nativeFormat,
288                                     const char *nativeConfig,
289                                     unsigned int flags);
290 
291 typedef char *
292 (*virDrvConnectDomainXMLToNative)(virConnectPtr conn,
293                                   const char *nativeFormat,
294                                   const char *domainXml,
295                                   unsigned int flags);
296 
297 typedef int
298 (*virDrvConnectListDefinedDomains)(virConnectPtr conn,
299                                    char **const names,
300                                    int maxnames);
301 
302 typedef int
303 (*virDrvConnectListAllDomains)(virConnectPtr conn,
304                                virDomainPtr **domains,
305                                unsigned int flags);
306 
307 typedef int
308 (*virDrvConnectNumOfDefinedDomains)(virConnectPtr conn);
309 
310 typedef int
311 (*virDrvDomainCreate)(virDomainPtr dom);
312 
313 typedef int
314 (*virDrvDomainCreateWithFlags)(virDomainPtr dom,
315                                unsigned int flags);
316 typedef int
317 (*virDrvDomainCreateWithFiles)(virDomainPtr dom,
318                                unsigned int nfiles,
319                                int *files,
320                                unsigned int flags);
321 
322 typedef virDomainPtr
323 (*virDrvDomainDefineXML)(virConnectPtr conn,
324                          const char *xml);
325 typedef virDomainPtr
326 (*virDrvDomainDefineXMLFlags)(virConnectPtr conn,
327                               const char *xml,
328                               unsigned int flags);
329 
330 typedef int
331 (*virDrvDomainUndefine)(virDomainPtr dom);
332 
333 typedef int
334 (*virDrvDomainUndefineFlags)(virDomainPtr dom,
335                              unsigned int flags);
336 
337 typedef int
338 (*virDrvDomainSetVcpus)(virDomainPtr domain,
339                         unsigned int nvcpus);
340 
341 typedef int
342 (*virDrvDomainSetVcpusFlags)(virDomainPtr domain,
343                              unsigned int nvcpus,
344                              unsigned int flags);
345 
346 typedef int
347 (*virDrvDomainGetVcpusFlags)(virDomainPtr domain,
348                              unsigned int flags);
349 
350 typedef int
351 (*virDrvDomainPinVcpu)(virDomainPtr domain,
352                        unsigned int vcpu,
353                        unsigned char *cpumap,
354                        int maplen);
355 
356 typedef int
357 (*virDrvDomainPinVcpuFlags)(virDomainPtr domain,
358                             unsigned int vcpu,
359                             unsigned char *cpumap,
360                             int maplen,
361                             unsigned int flags);
362 
363 typedef int
364 (*virDrvDomainGetVcpuPinInfo)(virDomainPtr domain,
365                               int ncpumaps,
366                               unsigned char *cpumaps,
367                               int maplen,
368                               unsigned int flags);
369 
370 typedef int
371 (*virDrvDomainPinEmulator)(virDomainPtr domain,
372                            unsigned char *cpumap,
373                            int maplen,
374                            unsigned int flags);
375 
376 typedef int
377 (*virDrvDomainGetEmulatorPinInfo)(virDomainPtr domain,
378                                   unsigned char *cpumaps,
379                                   int maplen,
380                                   unsigned int flags);
381 
382 typedef int
383 (*virDrvDomainGetVcpus)(virDomainPtr domain,
384                         virVcpuInfoPtr info,
385                         int maxinfo,
386                         unsigned char *cpumaps,
387                         int maplen);
388 
389 typedef int
390 (*virDrvDomainGetMaxVcpus)(virDomainPtr domain);
391 
392 typedef int
393 (*virDrvDomainGetIOThreadInfo)(virDomainPtr domain,
394                                virDomainIOThreadInfoPtr **info,
395                                unsigned int flags);
396 
397 typedef int
398 (*virDrvDomainPinIOThread)(virDomainPtr domain,
399                            unsigned int iothread_id,
400                            unsigned char *cpumap,
401                            int maplen,
402                            unsigned int flags);
403 
404 typedef int
405 (*virDrvDomainAddIOThread)(virDomainPtr domain,
406                            unsigned int iothread_id,
407                            unsigned int flags);
408 
409 typedef int
410 (*virDrvDomainDelIOThread)(virDomainPtr domain,
411                            unsigned int iothread_id,
412                            unsigned int flags);
413 
414 typedef int
415 (*virDrvDomainSetIOThreadParams)(virDomainPtr domain,
416                                  unsigned int iothread_id,
417                                  virTypedParameterPtr params,
418                                  int nparams,
419                                  unsigned int flags);
420 
421 typedef int
422 (*virDrvDomainGetSecurityLabel)(virDomainPtr domain,
423                                 virSecurityLabelPtr seclabel);
424 
425 typedef int
426 (*virDrvDomainGetSecurityLabelList)(virDomainPtr domain,
427                                     virSecurityLabelPtr* seclabels);
428 
429 typedef int
430 (*virDrvNodeGetSecurityModel)(virConnectPtr conn,
431                               virSecurityModelPtr secmodel);
432 
433 typedef int
434 (*virDrvDomainAttachDevice)(virDomainPtr domain,
435                             const char *xml);
436 
437 typedef int
438 (*virDrvDomainAttachDeviceFlags)(virDomainPtr domain,
439                                  const char *xml,
440                                  unsigned int flags);
441 
442 typedef int
443 (*virDrvDomainDetachDevice)(virDomainPtr domain,
444                             const char *xml);
445 
446 typedef int
447 (*virDrvDomainDetachDeviceFlags)(virDomainPtr domain,
448                                  const char *xml,
449                                  unsigned int flags);
450 
451 typedef int
452 (*virDrvDomainUpdateDeviceFlags)(virDomainPtr domain,
453                                  const char *xml,
454                                  unsigned int flags);
455 
456 typedef int
457 (*virDrvDomainDetachDeviceAlias)(virDomainPtr domain,
458                                  const char *alias,
459                                  unsigned int flags);
460 
461 typedef int
462 (*virDrvDomainGetAutostart)(virDomainPtr domain,
463                             int *autostart);
464 
465 typedef int
466 (*virDrvDomainSetAutostart)(virDomainPtr domain,
467                             int autostart);
468 
469 typedef char *
470 (*virDrvDomainGetSchedulerType)(virDomainPtr domain,
471                                 int *nparams);
472 
473 typedef int
474 (*virDrvDomainGetSchedulerParameters)(virDomainPtr domain,
475                                       virTypedParameterPtr params,
476                                       int *nparams);
477 
478 typedef int
479 (*virDrvDomainGetSchedulerParametersFlags)(virDomainPtr domain,
480                                            virTypedParameterPtr params,
481                                            int *nparams,
482                                            unsigned int flags);
483 
484 typedef int
485 (*virDrvDomainSetSchedulerParameters)(virDomainPtr domain,
486                                       virTypedParameterPtr params,
487                                       int nparams);
488 
489 typedef int
490 (*virDrvDomainSetSchedulerParametersFlags)(virDomainPtr domain,
491                                            virTypedParameterPtr params,
492                                            int nparams,
493                                            unsigned int flags);
494 
495 typedef int
496 (*virDrvDomainBlockStats)(virDomainPtr domain,
497                           const char *path,
498                           virDomainBlockStatsPtr stats);
499 
500 typedef int
501 (*virDrvDomainBlockStatsFlags)(virDomainPtr domain,
502                                const char *path,
503                                virTypedParameterPtr params,
504                                int *nparams,
505                                unsigned int flags);
506 
507 typedef int
508 (*virDrvDomainInterfaceStats)(virDomainPtr domain,
509                               const char *device,
510                               virDomainInterfaceStatsPtr stats);
511 
512 typedef int
513 (*virDrvDomainSetInterfaceParameters)(virDomainPtr dom,
514                                       const char *device,
515                                       virTypedParameterPtr params,
516                                       int nparams,
517                                       unsigned int flags);
518 
519 typedef int
520 (*virDrvDomainGetInterfaceParameters)(virDomainPtr dom,
521                                       const char *device,
522                                       virTypedParameterPtr params,
523                                       int *nparams,
524                                       unsigned int flags);
525 
526 typedef int
527 (*virDrvDomainMemoryStats)(virDomainPtr domain,
528                            virDomainMemoryStatPtr stats,
529                            unsigned int nr_stats,
530                            unsigned int flags);
531 
532 typedef int
533 (*virDrvDomainBlockPeek)(virDomainPtr domain,
534                          const char *path,
535                          unsigned long long offset,
536                          size_t size,
537                          void *buffer,
538                          unsigned int flags);
539 
540 typedef int
541 (*virDrvDomainBlockResize)(virDomainPtr domain,
542                            const char *path,
543                            unsigned long long size,
544                            unsigned int flags);
545 
546 typedef int
547 (*virDrvDomainMemoryPeek)(virDomainPtr domain,
548                           unsigned long long start,
549                           size_t size,
550                           void *buffer,
551                           unsigned int flags);
552 
553 typedef int
554 (*virDrvDomainGetBlockInfo)(virDomainPtr domain,
555                             const char *path,
556                             virDomainBlockInfoPtr info,
557                             unsigned int flags);
558 
559 typedef int
560 (*virDrvDomainMigratePrepare)(virConnectPtr dconn,
561                               char **cookie,
562                               int *cookielen,
563                               const char *uri_in,
564                               char **uri_out,
565                               unsigned long flags,
566                               const char *dname,
567                               unsigned long resource);
568 
569 typedef int
570 (*virDrvDomainMigratePerform)(virDomainPtr domain,
571                               const char *cookie,
572                               int cookielen,
573                               const char *uri,
574                               unsigned long flags,
575                               const char *dname,
576                               unsigned long resource);
577 
578 typedef virDomainPtr
579 (*virDrvDomainMigrateFinish)(virConnectPtr dconn,
580                              const char *dname,
581                              const char *cookie,
582                              int cookielen,
583                              const char *uri,
584                              unsigned long flags);
585 
586 typedef int
587 (*virDrvNodeGetCPUStats)(virConnectPtr conn,
588                          int cpuNum,
589                          virNodeCPUStatsPtr params,
590                          int *nparams,
591                          unsigned int flags);
592 
593 typedef int
594 (*virDrvNodeGetMemoryStats)(virConnectPtr conn,
595                             int cellNum,
596                             virNodeMemoryStatsPtr params,
597                             int *nparams,
598                             unsigned int flags);
599 
600 typedef int
601 (*virDrvNodeGetCellsFreeMemory)(virConnectPtr conn,
602                                 unsigned long long *freeMems,
603                                 int startCell,
604                                 int maxCells);
605 
606 typedef unsigned long long
607 (*virDrvNodeGetFreeMemory)(virConnectPtr conn);
608 
609 typedef int
610 (*virDrvConnectDomainEventRegister)(virConnectPtr conn,
611                                     virConnectDomainEventCallback cb,
612                                     void *opaque,
613                                     virFreeCallback freecb);
614 
615 typedef int
616 (*virDrvConnectDomainEventDeregister)(virConnectPtr conn,
617                                       virConnectDomainEventCallback cb);
618 
619 typedef int
620 (*virDrvDomainMigratePrepare2)(virConnectPtr dconn,
621                                char **cookie,
622                                int *cookielen,
623                                const char *uri_in,
624                                char **uri_out,
625                                unsigned long flags,
626                                const char *dname,
627                                unsigned long resource,
628                                const char *dom_xml);
629 
630 typedef virDomainPtr
631 (*virDrvDomainMigrateFinish2)(virConnectPtr dconn,
632                               const char *dname,
633                               const char *cookie,
634                               int cookielen,
635                               const char *uri,
636                               unsigned long flags,
637                               int retcode);
638 
639 typedef int
640 (*virDrvNodeDeviceDettach)(virNodeDevicePtr dev);
641 
642 typedef int
643 (*virDrvNodeDeviceDetachFlags)(virNodeDevicePtr dev,
644                                const char *driverName,
645                                unsigned int flags);
646 
647 typedef int
648 (*virDrvNodeDeviceReAttach)(virNodeDevicePtr dev);
649 
650 typedef int
651 (*virDrvNodeDeviceReset)(virNodeDevicePtr dev);
652 
653 typedef int
654 (*virDrvDomainMigratePrepareTunnel)(virConnectPtr dconn,
655                                     virStreamPtr st,
656                                     unsigned long flags,
657                                     const char *dname,
658                                     unsigned long resource,
659                                     const char *dom_xml);
660 
661 typedef int
662 (*virDrvDomainMigrateStartPostCopy)(virDomainPtr domain,
663                                     unsigned int flags);
664 
665 typedef int
666 (*virDrvConnectIsEncrypted)(virConnectPtr conn);
667 
668 typedef int
669 (*virDrvConnectIsSecure)(virConnectPtr conn);
670 
671 typedef int
672 (*virDrvConnectIsAlive)(virConnectPtr conn);
673 
674 typedef int
675 (*virDrvDomainIsActive)(virDomainPtr dom);
676 
677 typedef int
678 (*virDrvDomainRename)(virDomainPtr dom,
679                       const char *new_name,
680                       unsigned int flags);
681 
682 typedef int
683 (*virDrvDomainIsPersistent)(virDomainPtr dom);
684 
685 typedef int
686 (*virDrvDomainIsUpdated)(virDomainPtr dom);
687 
688 typedef int
689 (*virDrvConnectCompareCPU)(virConnectPtr conn,
690                            const char *cpu,
691                            unsigned int flags);
692 
693 typedef int
694 (*virDrvConnectCompareHypervisorCPU)(virConnectPtr conn,
695                                      const char *emulator,
696                                      const char *arch,
697                                      const char *machine,
698                                      const char *virttype,
699                                      const char *xmlCPU,
700                                      unsigned int flags);
701 
702 typedef char *
703 (*virDrvConnectBaselineCPU)(virConnectPtr conn,
704                             const char **xmlCPUs,
705                             unsigned int ncpus,
706                             unsigned int flags);
707 typedef char *
708 (*virDrvConnectBaselineHypervisorCPU)(virConnectPtr conn,
709                                       const char *emulator,
710                                       const char *arch,
711                                       const char *machine,
712                                       const char *virttype,
713                                       const char **xmlCPUs,
714                                       unsigned int ncpus,
715                                       unsigned int flags);
716 
717 typedef int
718 (*virDrvConnectGetCPUModelNames)(virConnectPtr conn,
719                                  const char *archName,
720                                  char ***models,
721                                  unsigned int flags);
722 
723 typedef int
724 (*virDrvDomainGetJobInfo)(virDomainPtr domain,
725                           virDomainJobInfoPtr info);
726 
727 typedef int
728 (*virDrvDomainGetJobStats)(virDomainPtr domain,
729                            int *type,
730                            virTypedParameterPtr *params,
731                            int *nparams,
732                            unsigned int flags);
733 
734 typedef int
735 (*virDrvDomainAbortJob)(virDomainPtr domain);
736 
737 typedef int
738 (*virDrvDomainMigrateGetMaxDowntime)(virDomainPtr domain,
739                                      unsigned long long *downtime,
740                                      unsigned int flags);
741 
742 typedef int
743 (*virDrvDomainMigrateSetMaxDowntime)(virDomainPtr domain,
744                                      unsigned long long downtime,
745                                      unsigned int flags);
746 
747 typedef int
748 (*virDrvDomainMigrateGetCompressionCache)(virDomainPtr domain,
749                                           unsigned long long *cacheSize,
750                                           unsigned int flags);
751 
752 typedef int
753 (*virDrvDomainMigrateSetCompressionCache)(virDomainPtr domain,
754                                           unsigned long long cacheSize,
755                                           unsigned int flags);
756 
757 typedef int
758 (*virDrvDomainMigrateSetMaxSpeed)(virDomainPtr domain,
759                                   unsigned long bandwidth,
760                                   unsigned int flags);
761 
762 typedef int
763 (*virDrvDomainMigrateGetMaxSpeed)(virDomainPtr domain,
764                                   unsigned long *bandwidth,
765                                   unsigned int flags);
766 
767 typedef int
768 (*virDrvConnectDomainEventRegisterAny)(virConnectPtr conn,
769                                        virDomainPtr dom,
770                                        int eventID,
771                                        virConnectDomainEventGenericCallback cb,
772                                        void *opaque,
773                                        virFreeCallback freecb);
774 
775 typedef int
776 (*virDrvConnectDomainEventDeregisterAny)(virConnectPtr conn,
777                                          int callbackID);
778 
779 typedef int
780 (*virDrvDomainManagedSave)(virDomainPtr domain,
781                            unsigned int flags);
782 
783 typedef int
784 (*virDrvDomainHasManagedSaveImage)(virDomainPtr domain,
785                                    unsigned int flags);
786 
787 typedef int
788 (*virDrvDomainManagedSaveRemove)(virDomainPtr domain,
789                                  unsigned int flags);
790 
791 typedef char *
792 (*virDrvDomainManagedSaveGetXMLDesc)(virDomainPtr domain,
793                                      unsigned int flags);
794 
795 typedef int
796 (*virDrvDomainManagedSaveDefineXML)(virDomainPtr domain,
797                                     const char *dxml,
798                                     unsigned int flags);
799 
800 typedef virDomainSnapshotPtr
801 (*virDrvDomainSnapshotCreateXML)(virDomainPtr domain,
802                                  const char *xmlDesc,
803                                  unsigned int flags);
804 
805 typedef char *
806 (*virDrvDomainSnapshotGetXMLDesc)(virDomainSnapshotPtr snapshot,
807                                   unsigned int flags);
808 
809 typedef int
810 (*virDrvDomainSnapshotNum)(virDomainPtr domain,
811                            unsigned int flags);
812 
813 typedef int
814 (*virDrvDomainSnapshotListNames)(virDomainPtr domain,
815                                  char **names,
816                                  int nameslen,
817                                  unsigned int flags);
818 
819 typedef int
820 (*virDrvDomainListAllSnapshots)(virDomainPtr domain,
821                                 virDomainSnapshotPtr **snaps,
822                                 unsigned int flags);
823 
824 typedef int
825 (*virDrvDomainSnapshotNumChildren)(virDomainSnapshotPtr snapshot,
826                                    unsigned int flags);
827 
828 typedef int
829 (*virDrvDomainSnapshotListChildrenNames)(virDomainSnapshotPtr snapshot,
830                                          char **names,
831                                          int nameslen,
832                                          unsigned int flags);
833 
834 typedef int
835 (*virDrvDomainSnapshotListAllChildren)(virDomainSnapshotPtr snapshot,
836                                        virDomainSnapshotPtr **snaps,
837                                        unsigned int flags);
838 
839 typedef virDomainSnapshotPtr
840 (*virDrvDomainSnapshotLookupByName)(virDomainPtr domain,
841                                     const char *name,
842                                     unsigned int flags);
843 
844 typedef int
845 (*virDrvDomainHasCurrentSnapshot)(virDomainPtr domain,
846                                   unsigned int flags);
847 
848 typedef virDomainSnapshotPtr
849 (*virDrvDomainSnapshotGetParent)(virDomainSnapshotPtr snapshot,
850                                  unsigned int flags);
851 
852 typedef virDomainSnapshotPtr
853 (*virDrvDomainSnapshotCurrent)(virDomainPtr domain,
854                                unsigned int flags);
855 
856 typedef int
857 (*virDrvDomainSnapshotIsCurrent)(virDomainSnapshotPtr snapshot,
858                                  unsigned int flags);
859 
860 typedef int
861 (*virDrvDomainSnapshotHasMetadata)(virDomainSnapshotPtr snapshot,
862                                    unsigned int flags);
863 
864 typedef int
865 (*virDrvDomainRevertToSnapshot)(virDomainSnapshotPtr snapshot,
866                                 unsigned int flags);
867 
868 typedef int
869 (*virDrvDomainSnapshotDelete)(virDomainSnapshotPtr snapshot,
870                               unsigned int flags);
871 
872 typedef int
873 (*virDrvDomainQemuMonitorCommand)(virDomainPtr domain,
874                                   const char *cmd,
875                                   char **result,
876                                   unsigned int flags);
877 
878 typedef char *
879 (*virDrvDomainQemuAgentCommand)(virDomainPtr domain,
880                                 const char *cmd,
881                                 int timeout,
882                                 unsigned int flags);
883 
884 /* Choice of unsigned int rather than pid_t is intentional.  */
885 typedef virDomainPtr
886 (*virDrvDomainQemuAttach)(virConnectPtr conn,
887                           unsigned int pid_value,
888                           unsigned int flags);
889 
890 typedef int
891 (*virDrvConnectDomainQemuMonitorEventRegister)(virConnectPtr conn,
892                                                virDomainPtr dom,
893                                                const char *event,
894                                                virConnectDomainQemuMonitorEventCallback cb,
895                                                void *opaque,
896                                                virFreeCallback freecb,
897                                                unsigned int flags);
898 
899 typedef int
900 (*virDrvConnectDomainQemuMonitorEventDeregister)(virConnectPtr conn,
901                                                  int callbackID);
902 
903 typedef int
904 (*virDrvDomainOpenConsole)(virDomainPtr dom,
905                            const char *dev_name,
906                            virStreamPtr st,
907                            unsigned int flags);
908 
909 typedef int
910 (*virDrvDomainOpenChannel)(virDomainPtr dom,
911                            const char *name,
912                            virStreamPtr st,
913                            unsigned int flags);
914 
915 typedef int
916 (*virDrvDomainOpenGraphics)(virDomainPtr dom,
917                             unsigned int idx,
918                             int fd,
919                             unsigned int flags);
920 
921 typedef int
922 (*virDrvDomainOpenGraphicsFD)(virDomainPtr dom,
923                               unsigned int idx,
924                               unsigned int flags);
925 
926 typedef int
927 (*virDrvDomainInjectNMI)(virDomainPtr dom,
928                          unsigned int flags);
929 
930 typedef int
931 (*virDrvDomainSendKey)(virDomainPtr dom,
932                        unsigned int codeset,
933                        unsigned int holdtime,
934                        unsigned int *keycodes,
935                        int nkeycodes,
936                        unsigned int flags);
937 
938 typedef int
939 (*virDrvDomainSendProcessSignal)(virDomainPtr dom,
940                                  long long pid_value,
941                                  unsigned int signum,
942                                  unsigned int flags);
943 
944 typedef char *
945 (*virDrvDomainMigrateBegin3)(virDomainPtr domain,
946                              const char *xmlin,
947                              char **cookieout,
948                              int *cookieoutlen,
949                              unsigned long flags,
950                              const char *dname,
951                              unsigned long resource);
952 
953 typedef int
954 (*virDrvDomainMigratePrepare3)(virConnectPtr dconn,
955                                const char *cookiein,
956                                int cookieinlen,
957                                char **cookieout,
958                                int *cookieoutlen,
959                                const char *uri_in,
960                                char **uri_out,
961                                unsigned long flags,
962                                const char *dname,
963                                unsigned long resource,
964                                const char *dom_xml);
965 
966 typedef int
967 (*virDrvDomainMigratePrepareTunnel3)(virConnectPtr dconn,
968                                      virStreamPtr st,
969                                      const char *cookiein,
970                                      int cookieinlen,
971                                      char **cookieout,
972                                      int *cookieoutlen,
973                                      unsigned long flags,
974                                      const char *dname,
975                                      unsigned long resource,
976                                      const char *dom_xml);
977 
978 
979 typedef int
980 (*virDrvDomainMigratePerform3)(virDomainPtr dom,
981                                const char *xmlin,
982                                const char *cookiein,
983                                int cookieinlen,
984                                char **cookieout,
985                                int *cookieoutlen,
986                                const char *dconnuri,
987                                const char *uri,
988                                unsigned long flags,
989                                const char *dname,
990                                unsigned long resource);
991 
992 typedef virDomainPtr
993 (*virDrvDomainMigrateFinish3)(virConnectPtr dconn,
994                               const char *dname,
995                               const char *cookiein,
996                               int cookieinlen,
997                               char **cookieout,
998                               int *cookieoutlen,
999                               const char *dconnuri,
1000                               const char *uri,
1001                               unsigned long flags,
1002                               int cancelled);
1003 
1004 typedef int
1005 (*virDrvDomainMigrateConfirm3)(virDomainPtr domain,
1006                                const char *cookiein,
1007                                int cookieinlen,
1008                                unsigned long flags,
1009                                int cancelled);
1010 
1011 typedef int
1012 (*virDrvNodeSuspendForDuration)(virConnectPtr conn,
1013                                 unsigned int target,
1014                                 unsigned long long duration,
1015                                 unsigned int flags);
1016 
1017 typedef int
1018 (*virDrvDomainGetPerfEvents)(virDomainPtr dom,
1019                              virTypedParameterPtr *params,
1020                              int *nparams,
1021                              unsigned int flags);
1022 
1023 typedef int
1024 (*virDrvDomainSetPerfEvents)(virDomainPtr dom,
1025                              virTypedParameterPtr params,
1026                              int nparams,
1027                              unsigned int flags);
1028 
1029 typedef int
1030 (*virDrvDomainBlockJobAbort)(virDomainPtr dom,
1031                              const char *path,
1032                              unsigned int flags);
1033 
1034 typedef int
1035 (*virDrvDomainGetBlockJobInfo)(virDomainPtr dom,
1036                                const char *path,
1037                                virDomainBlockJobInfoPtr info,
1038                                unsigned int flags);
1039 
1040 typedef int
1041 (*virDrvDomainBlockJobSetSpeed)(virDomainPtr dom,
1042                                 const char *path,
1043                                 unsigned long bandwidth,
1044                                 unsigned int flags);
1045 
1046 typedef int
1047 (*virDrvDomainBlockPull)(virDomainPtr dom,
1048                          const char *path,
1049                          unsigned long bandwidth,
1050                          unsigned int flags);
1051 
1052 typedef int
1053 (*virDrvDomainBlockRebase)(virDomainPtr dom,
1054                            const char *path,
1055                            const char *base,
1056                            unsigned long bandwidth,
1057                            unsigned int flags);
1058 
1059 typedef int
1060 (*virDrvDomainBlockCopy)(virDomainPtr dom,
1061                          const char *path,
1062                          const char *destxml,
1063                          virTypedParameterPtr params,
1064                          int nparams,
1065                          unsigned int flags);
1066 
1067 typedef int
1068 (*virDrvDomainBlockCommit)(virDomainPtr dom,
1069                            const char *disk,
1070                            const char *base,
1071                            const char *top,
1072                            unsigned long bandwidth,
1073                            unsigned int flags);
1074 
1075 typedef int
1076 (*virDrvConnectSetKeepAlive)(virConnectPtr conn,
1077                              int interval,
1078                              unsigned int count);
1079 
1080 typedef int
1081 (*virDrvDomainSetBlockIoTune)(virDomainPtr dom,
1082                               const char *disk,
1083                               virTypedParameterPtr params,
1084                               int nparams,
1085                               unsigned int flags);
1086 
1087 typedef int
1088 (*virDrvDomainGetBlockIoTune)(virDomainPtr dom,
1089                               const char *disk,
1090                               virTypedParameterPtr params,
1091                               int *nparams,
1092                               unsigned int flags);
1093 
1094 typedef int
1095 (*virDrvDomainShutdownFlags)(virDomainPtr domain,
1096                              unsigned int flags);
1097 
1098 typedef int
1099 (*virDrvDomainGetCPUStats)(virDomainPtr domain,
1100                            virTypedParameterPtr params,
1101                            unsigned int nparams,
1102                            int start_cpu,
1103                            unsigned int ncpus,
1104                            unsigned int flags);
1105 
1106 typedef int
1107 (*virDrvDomainGetDiskErrors)(virDomainPtr dom,
1108                              virDomainDiskErrorPtr errors,
1109                              unsigned int maxerrors,
1110                              unsigned int flags);
1111 
1112 typedef int
1113 (*virDrvDomainSetMetadata)(virDomainPtr dom,
1114                            int type,
1115                            const char *metadata,
1116                            const char *key,
1117                            const char *uri,
1118                            unsigned int flags);
1119 
1120 typedef char *
1121 (*virDrvDomainGetMetadata)(virDomainPtr dom,
1122                            int type,
1123                            const char *uri,
1124                            unsigned int flags);
1125 
1126 typedef int
1127 (*virDrvNodeGetMemoryParameters)(virConnectPtr conn,
1128                                  virTypedParameterPtr params,
1129                                  int *nparams,
1130                                  unsigned int flags);
1131 
1132 typedef int
1133 (*virDrvNodeSetMemoryParameters)(virConnectPtr conn,
1134                                  virTypedParameterPtr params,
1135                                  int nparams,
1136                                  unsigned int flags);
1137 
1138 typedef int
1139 (*virDrvNodeGetCPUMap)(virConnectPtr conn,
1140                        unsigned char **cpumap,
1141                        unsigned int *online,
1142                        unsigned int flags);
1143 
1144 typedef int
1145 (*virDrvDomainFSTrim)(virDomainPtr dom,
1146                       const char *mountPoint,
1147                       unsigned long long minimum,
1148                       unsigned int flags);
1149 
1150 typedef int
1151 (*virDrvDomainGetTime)(virDomainPtr dom,
1152                        long long *seconds,
1153                        unsigned int *nseconds,
1154                        unsigned int flags);
1155 
1156 typedef int
1157 (*virDrvDomainSetTime)(virDomainPtr dom,
1158                        long long seconds,
1159                        unsigned int nseconds,
1160                        unsigned int flags);
1161 
1162 typedef int
1163 (*virDrvDomainLxcOpenNamespace)(virDomainPtr dom,
1164                                 int **fdlist,
1165                                 unsigned int flags);
1166 
1167 typedef char *
1168 (*virDrvDomainMigrateBegin3Params)(virDomainPtr domain,
1169                                    virTypedParameterPtr params,
1170                                    int nparams,
1171                                    char **cookieout,
1172                                    int *cookieoutlen,
1173                                    unsigned int flags);
1174 
1175 typedef int
1176 (*virDrvDomainMigratePrepare3Params)(virConnectPtr dconn,
1177                                      virTypedParameterPtr params,
1178                                      int nparams,
1179                                      const char *cookiein,
1180                                      int cookieinlen,
1181                                      char **cookieout,
1182                                      int *cookieoutlen,
1183                                      char **uri_out,
1184                                      unsigned int flags);
1185 
1186 typedef int
1187 (*virDrvDomainMigratePrepareTunnel3Params)(virConnectPtr dconn,
1188                                            virStreamPtr st,
1189                                            virTypedParameterPtr params,
1190                                            int nparams,
1191                                            const char *cookiein,
1192                                            int cookieinlen,
1193                                            char **cookieout,
1194                                            int *cookieoutlen,
1195                                            unsigned int flags);
1196 
1197 typedef int
1198 (*virDrvDomainMigratePerform3Params)(virDomainPtr dom,
1199                                      const char *dconnuri,
1200                                      virTypedParameterPtr params,
1201                                      int nparams,
1202                                      const char *cookiein,
1203                                      int cookieinlen,
1204                                      char **cookieout,
1205                                      int *cookieoutlen,
1206                                      unsigned int flags);
1207 
1208 typedef virDomainPtr
1209 (*virDrvDomainMigrateFinish3Params)(virConnectPtr dconn,
1210                                     virTypedParameterPtr params,
1211                                     int nparams,
1212                                     const char *cookiein,
1213                                     int cookieinlen,
1214                                     char **cookieout,
1215                                     int *cookieoutlen,
1216                                     unsigned int flags,
1217                                     int cancelled);
1218 
1219 typedef int
1220 (*virDrvDomainMigrateConfirm3Params)(virDomainPtr domain,
1221                                      virTypedParameterPtr params,
1222                                      int nparams,
1223                                      const char *cookiein,
1224                                      int cookieinlen,
1225                                      unsigned int flags,
1226                                      int cancelled);
1227 
1228 typedef int
1229 (*virDrvDomainFSFreeze)(virDomainPtr dom,
1230                         const char **mountpoints,
1231                         unsigned int nmountpoints,
1232                         unsigned int flags);
1233 
1234 typedef int
1235 (*virDrvDomainFSThaw)(virDomainPtr dom,
1236                       const char **mountpoints,
1237                       unsigned int nmountpoints,
1238                       unsigned int flags);
1239 
1240 typedef int
1241 (*virDrvDomainGetFSInfo)(virDomainPtr dom,
1242                          virDomainFSInfoPtr **info,
1243                          unsigned int flags);
1244 
1245 typedef int
1246 (*virDrvNodeGetFreePages)(virConnectPtr conn,
1247                           unsigned int npages,
1248                           unsigned int *pages,
1249                           int startCell,
1250                           unsigned int cellCount,
1251                           unsigned long long *counts,
1252                           unsigned int flags);
1253 
1254 
1255 typedef int
1256 (*virDrvConnectGetAllDomainStats)(virConnectPtr conn,
1257                                   virDomainPtr *doms,
1258                                   unsigned int ndoms,
1259                                   unsigned int stats,
1260                                   virDomainStatsRecordPtr **retStats,
1261                                   unsigned int flags);
1262 
1263 typedef int
1264 (*virDrvNodeAllocPages)(virConnectPtr conn,
1265                         unsigned int npages,
1266                         unsigned int *pageSizes,
1267                         unsigned long long *pageCounts,
1268                         int startCell,
1269                         unsigned int cellCount,
1270                         unsigned int flags);
1271 
1272 typedef int
1273 (*virDrvDomainInterfaceAddresses)(virDomainPtr dom,
1274                                   virDomainInterfacePtr **ifaces,
1275                                   unsigned int source,
1276                                   unsigned int flags);
1277 
1278 typedef int
1279 (*virDrvDomainSetUserPassword)(virDomainPtr dom,
1280                                const char *user,
1281                                const char *password,
1282                                unsigned int flags);
1283 
1284 typedef int
1285 (*virDrvConnectRegisterCloseCallback)(virConnectPtr conn,
1286                                       virConnectCloseFunc cb,
1287                                       void *opaque,
1288                                       virFreeCallback freecb);
1289 
1290 typedef int
1291 (*virDrvConnectUnregisterCloseCallback)(virConnectPtr conn,
1292                                         virConnectCloseFunc cb);
1293 
1294 typedef int
1295 (*virDrvDomainGetGuestVcpus)(virDomainPtr domain,
1296                              virTypedParameterPtr *params,
1297                              unsigned int *nparams,
1298                              unsigned int flags);
1299 
1300 typedef int
1301 (*virDrvDomainSetGuestVcpus)(virDomainPtr domain,
1302                              const char *cpumap,
1303                              int state,
1304                              unsigned int flags);
1305 
1306 typedef int
1307 (*virDrvDomainSetVcpu)(virDomainPtr domain,
1308                        const char *cpumap,
1309                        int state,
1310                        unsigned int flags);
1311 
1312 typedef int
1313 (*virDrvDomainSetBlockThreshold)(virDomainPtr domain,
1314                                  const char *dev,
1315                                  unsigned long long threshold,
1316                                  unsigned int flags);
1317 
1318 typedef int
1319 (*virDrvDomainSetLifecycleAction)(virDomainPtr domain,
1320                                   unsigned int type,
1321                                   unsigned int action,
1322                                   unsigned int flags);
1323 
1324 typedef int
1325 (*virDrvNodeGetSEVInfo)(virConnectPtr conn,
1326                         virTypedParameterPtr *params,
1327                         int *nparams,
1328                         unsigned int flags);
1329 
1330 typedef int
1331 (*virDrvDomainGetLaunchSecurityInfo)(virDomainPtr domain,
1332                                         virTypedParameterPtr *params,
1333                                         int *nparams,
1334                                         unsigned int flags);
1335 
1336 typedef virDomainCheckpointPtr
1337 (*virDrvDomainCheckpointCreateXML)(virDomainPtr domain,
1338                                    const char *xmlDesc,
1339                                    unsigned int flags);
1340 
1341 typedef char *
1342 (*virDrvDomainCheckpointGetXMLDesc)(virDomainCheckpointPtr checkpoint,
1343                                     unsigned int flags);
1344 
1345 typedef int
1346 (*virDrvDomainListAllCheckpoints)(virDomainPtr domain,
1347                                   virDomainCheckpointPtr **checkpoints,
1348                                   unsigned int flags);
1349 
1350 typedef int
1351 (*virDrvDomainCheckpointListAllChildren)(virDomainCheckpointPtr checkpoint,
1352                                          virDomainCheckpointPtr **children,
1353                                          unsigned int flags);
1354 
1355 typedef virDomainCheckpointPtr
1356 (*virDrvDomainCheckpointLookupByName)(virDomainPtr domain,
1357                                       const char *name,
1358                                       unsigned int flags);
1359 
1360 typedef virDomainCheckpointPtr
1361 (*virDrvDomainCheckpointGetParent)(virDomainCheckpointPtr checkpoint,
1362                                    unsigned int flags);
1363 
1364 typedef int
1365 (*virDrvDomainCheckpointDelete)(virDomainCheckpointPtr checkpoint,
1366                                 unsigned int flags);
1367 
1368 typedef int
1369 (*virDrvDomainGetGuestInfo)(virDomainPtr domain,
1370                             unsigned int types,
1371                             virTypedParameterPtr *params,
1372                             int *nparams,
1373                             unsigned int flags);
1374 
1375 typedef int
1376 (*virDrvDomainAgentSetResponseTimeout)(virDomainPtr domain,
1377                                        int timeout,
1378                                        unsigned int flags);
1379 
1380 typedef int
1381 (*virDrvDomainBackupBegin)(virDomainPtr domain,
1382                            const char *backupXML,
1383                            const char *checkpointXML,
1384                            unsigned int flags);
1385 
1386 typedef char *
1387 (*virDrvDomainBackupGetXMLDesc)(virDomainPtr domain,
1388                                 unsigned int flags);
1389 
1390 typedef int
1391 (*virDrvDomainAuthorizedSSHKeysGet)(virDomainPtr domain,
1392                                     const char *user,
1393                                     char ***keys,
1394                                     unsigned int flags);
1395 
1396 typedef int
1397 (*virDrvDomainAuthorizedSSHKeysSet)(virDomainPtr domain,
1398                                     const char *user,
1399                                     const char **keys,
1400                                     unsigned int nkeys,
1401                                     unsigned int flags);
1402 
1403 typedef int
1404 (*virDrvDomainGetMessages)(virDomainPtr domain,
1405                            char ***msgs,
1406                            unsigned int flags);
1407 
1408 typedef int
1409 (*virDrvDomainStartDirtyRateCalc)(virDomainPtr domain,
1410                                   int seconds,
1411                                   unsigned int flags);
1412 
1413 typedef struct _virHypervisorDriver virHypervisorDriver;
1414 
1415 /**
1416  * _virHypervisorDriver:
1417  *
1418  * Structure associated to a virtualization driver, defining the various
1419  * entry points for it.
1420  *
1421  * All drivers must support the following fields/methods:
1422  *  - name
1423  *  - open
1424  *  - close
1425  */
1426 struct _virHypervisorDriver {
1427     const char *name; /* the name of the driver */
1428     virDrvConnectURIProbe connectURIProbe;
1429     virDrvConnectOpen connectOpen;
1430     virDrvConnectClose connectClose;
1431     virDrvConnectSetIdentity connectSetIdentity;
1432     virDrvConnectSupportsFeature connectSupportsFeature;
1433     virDrvConnectGetType connectGetType;
1434     virDrvConnectGetVersion connectGetVersion;
1435     virDrvConnectGetLibVersion connectGetLibVersion;
1436     virDrvConnectGetHostname connectGetHostname;
1437     virDrvConnectGetSysinfo connectGetSysinfo;
1438     virDrvConnectGetMaxVcpus connectGetMaxVcpus;
1439     virDrvNodeGetInfo nodeGetInfo;
1440     virDrvConnectGetCapabilities connectGetCapabilities;
1441     virDrvConnectListDomains connectListDomains;
1442     virDrvConnectNumOfDomains connectNumOfDomains;
1443     virDrvConnectListAllDomains connectListAllDomains;
1444     virDrvDomainCreateXML domainCreateXML;
1445     virDrvDomainCreateXMLWithFiles domainCreateXMLWithFiles;
1446     virDrvDomainLookupByID domainLookupByID;
1447     virDrvDomainLookupByUUID domainLookupByUUID;
1448     virDrvDomainLookupByName domainLookupByName;
1449     virDrvDomainSuspend domainSuspend;
1450     virDrvDomainResume domainResume;
1451     virDrvDomainPMSuspendForDuration domainPMSuspendForDuration;
1452     virDrvDomainPMWakeup domainPMWakeup;
1453     virDrvDomainShutdown domainShutdown;
1454     virDrvDomainShutdownFlags domainShutdownFlags;
1455     virDrvDomainReboot domainReboot;
1456     virDrvDomainReset domainReset;
1457     virDrvDomainDestroy domainDestroy;
1458     virDrvDomainDestroyFlags domainDestroyFlags;
1459     virDrvDomainGetOSType domainGetOSType;
1460     virDrvDomainGetHostname domainGetHostname;
1461     virDrvDomainGetMaxMemory domainGetMaxMemory;
1462     virDrvDomainSetMaxMemory domainSetMaxMemory;
1463     virDrvDomainSetMemory domainSetMemory;
1464     virDrvDomainSetMemoryFlags domainSetMemoryFlags;
1465     virDrvDomainSetMemoryStatsPeriod domainSetMemoryStatsPeriod;
1466     virDrvDomainSetMemoryParameters domainSetMemoryParameters;
1467     virDrvDomainGetMemoryParameters domainGetMemoryParameters;
1468     virDrvDomainSetNumaParameters domainSetNumaParameters;
1469     virDrvDomainGetNumaParameters domainGetNumaParameters;
1470     virDrvDomainSetBlkioParameters domainSetBlkioParameters;
1471     virDrvDomainGetBlkioParameters domainGetBlkioParameters;
1472     virDrvDomainGetInfo domainGetInfo;
1473     virDrvDomainGetState domainGetState;
1474     virDrvDomainGetControlInfo domainGetControlInfo;
1475     virDrvDomainSave domainSave;
1476     virDrvDomainSaveFlags domainSaveFlags;
1477     virDrvDomainRestore domainRestore;
1478     virDrvDomainRestoreFlags domainRestoreFlags;
1479     virDrvDomainSaveImageGetXMLDesc domainSaveImageGetXMLDesc;
1480     virDrvDomainSaveImageDefineXML domainSaveImageDefineXML;
1481     virDrvDomainCoreDump domainCoreDump;
1482     virDrvDomainCoreDumpWithFormat domainCoreDumpWithFormat;
1483     virDrvDomainScreenshot domainScreenshot;
1484     virDrvDomainSetVcpus domainSetVcpus;
1485     virDrvDomainSetVcpusFlags domainSetVcpusFlags;
1486     virDrvDomainGetVcpusFlags domainGetVcpusFlags;
1487     virDrvDomainPinVcpu domainPinVcpu;
1488     virDrvDomainPinVcpuFlags domainPinVcpuFlags;
1489     virDrvDomainGetVcpuPinInfo domainGetVcpuPinInfo;
1490     virDrvDomainPinEmulator domainPinEmulator;
1491     virDrvDomainGetEmulatorPinInfo domainGetEmulatorPinInfo;
1492     virDrvDomainGetVcpus domainGetVcpus;
1493     virDrvDomainGetMaxVcpus domainGetMaxVcpus;
1494     virDrvDomainGetIOThreadInfo domainGetIOThreadInfo;
1495     virDrvDomainPinIOThread domainPinIOThread;
1496     virDrvDomainAddIOThread domainAddIOThread;
1497     virDrvDomainDelIOThread domainDelIOThread;
1498     virDrvDomainSetIOThreadParams domainSetIOThreadParams;
1499     virDrvDomainGetSecurityLabel domainGetSecurityLabel;
1500     virDrvDomainGetSecurityLabelList domainGetSecurityLabelList;
1501     virDrvNodeGetSecurityModel nodeGetSecurityModel;
1502     virDrvDomainGetXMLDesc domainGetXMLDesc;
1503     virDrvConnectDomainXMLFromNative connectDomainXMLFromNative;
1504     virDrvConnectDomainXMLToNative connectDomainXMLToNative;
1505     virDrvConnectListDefinedDomains connectListDefinedDomains;
1506     virDrvConnectNumOfDefinedDomains connectNumOfDefinedDomains;
1507     virDrvDomainCreate domainCreate;
1508     virDrvDomainCreateWithFlags domainCreateWithFlags;
1509     virDrvDomainCreateWithFiles domainCreateWithFiles;
1510     virDrvDomainDefineXML domainDefineXML;
1511     virDrvDomainDefineXMLFlags domainDefineXMLFlags;
1512     virDrvDomainUndefine domainUndefine;
1513     virDrvDomainUndefineFlags domainUndefineFlags;
1514     virDrvDomainAttachDevice domainAttachDevice;
1515     virDrvDomainAttachDeviceFlags domainAttachDeviceFlags;
1516     virDrvDomainDetachDevice domainDetachDevice;
1517     virDrvDomainDetachDeviceFlags domainDetachDeviceFlags;
1518     virDrvDomainUpdateDeviceFlags domainUpdateDeviceFlags;
1519     virDrvDomainDetachDeviceAlias domainDetachDeviceAlias;
1520     virDrvDomainGetAutostart domainGetAutostart;
1521     virDrvDomainSetAutostart domainSetAutostart;
1522     virDrvDomainGetSchedulerType domainGetSchedulerType;
1523     virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
1524     virDrvDomainGetSchedulerParametersFlags domainGetSchedulerParametersFlags;
1525     virDrvDomainSetSchedulerParameters domainSetSchedulerParameters;
1526     virDrvDomainSetSchedulerParametersFlags domainSetSchedulerParametersFlags;
1527     virDrvDomainMigratePrepare domainMigratePrepare;
1528     virDrvDomainMigratePerform domainMigratePerform;
1529     virDrvDomainMigrateFinish domainMigrateFinish;
1530     virDrvDomainBlockResize domainBlockResize;
1531     virDrvDomainBlockStats domainBlockStats;
1532     virDrvDomainBlockStatsFlags domainBlockStatsFlags;
1533     virDrvDomainInterfaceStats domainInterfaceStats;
1534     virDrvDomainSetInterfaceParameters domainSetInterfaceParameters;
1535     virDrvDomainGetInterfaceParameters domainGetInterfaceParameters;
1536     virDrvDomainMemoryStats domainMemoryStats;
1537     virDrvDomainBlockPeek domainBlockPeek;
1538     virDrvDomainMemoryPeek domainMemoryPeek;
1539     virDrvDomainGetBlockInfo domainGetBlockInfo;
1540     virDrvNodeGetCPUStats nodeGetCPUStats;
1541     virDrvNodeGetMemoryStats nodeGetMemoryStats;
1542     virDrvNodeGetCellsFreeMemory nodeGetCellsFreeMemory;
1543     virDrvNodeGetFreeMemory nodeGetFreeMemory;
1544     virDrvConnectDomainEventRegister connectDomainEventRegister;
1545     virDrvConnectDomainEventDeregister connectDomainEventDeregister;
1546     virDrvDomainMigratePrepare2 domainMigratePrepare2;
1547     virDrvDomainMigrateFinish2 domainMigrateFinish2;
1548     virDrvNodeDeviceDettach nodeDeviceDettach;
1549     virDrvNodeDeviceDetachFlags nodeDeviceDetachFlags;
1550     virDrvNodeDeviceReAttach nodeDeviceReAttach;
1551     virDrvNodeDeviceReset nodeDeviceReset;
1552     virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel;
1553     virDrvConnectIsEncrypted connectIsEncrypted;
1554     virDrvConnectIsSecure connectIsSecure;
1555     virDrvDomainIsActive domainIsActive;
1556     virDrvDomainRename domainRename;
1557     virDrvDomainIsPersistent domainIsPersistent;
1558     virDrvDomainIsUpdated domainIsUpdated;
1559     virDrvConnectCompareCPU connectCompareCPU;
1560     virDrvConnectBaselineCPU connectBaselineCPU;
1561     virDrvDomainGetJobInfo domainGetJobInfo;
1562     virDrvDomainGetJobStats domainGetJobStats;
1563     virDrvDomainAbortJob domainAbortJob;
1564     virDrvDomainMigrateGetMaxDowntime domainMigrateGetMaxDowntime;
1565     virDrvDomainMigrateSetMaxDowntime domainMigrateSetMaxDowntime;
1566     virDrvDomainMigrateGetCompressionCache domainMigrateGetCompressionCache;
1567     virDrvDomainMigrateSetCompressionCache domainMigrateSetCompressionCache;
1568     virDrvDomainMigrateGetMaxSpeed domainMigrateGetMaxSpeed;
1569     virDrvDomainMigrateSetMaxSpeed domainMigrateSetMaxSpeed;
1570     virDrvConnectDomainEventRegisterAny connectDomainEventRegisterAny;
1571     virDrvConnectDomainEventDeregisterAny connectDomainEventDeregisterAny;
1572     virDrvDomainManagedSave domainManagedSave;
1573     virDrvDomainHasManagedSaveImage domainHasManagedSaveImage;
1574     virDrvDomainManagedSaveRemove domainManagedSaveRemove;
1575     virDrvDomainManagedSaveGetXMLDesc domainManagedSaveGetXMLDesc;
1576     virDrvDomainManagedSaveDefineXML domainManagedSaveDefineXML;
1577     virDrvDomainSnapshotCreateXML domainSnapshotCreateXML;
1578     virDrvDomainSnapshotGetXMLDesc domainSnapshotGetXMLDesc;
1579     virDrvDomainSnapshotNum domainSnapshotNum;
1580     virDrvDomainSnapshotListNames domainSnapshotListNames;
1581     virDrvDomainListAllSnapshots domainListAllSnapshots;
1582     virDrvDomainSnapshotNumChildren domainSnapshotNumChildren;
1583     virDrvDomainSnapshotListChildrenNames domainSnapshotListChildrenNames;
1584     virDrvDomainSnapshotListAllChildren domainSnapshotListAllChildren;
1585     virDrvDomainSnapshotLookupByName domainSnapshotLookupByName;
1586     virDrvDomainHasCurrentSnapshot domainHasCurrentSnapshot;
1587     virDrvDomainSnapshotGetParent domainSnapshotGetParent;
1588     virDrvDomainSnapshotCurrent domainSnapshotCurrent;
1589     virDrvDomainSnapshotIsCurrent domainSnapshotIsCurrent;
1590     virDrvDomainSnapshotHasMetadata domainSnapshotHasMetadata;
1591     virDrvDomainRevertToSnapshot domainRevertToSnapshot;
1592     virDrvDomainSnapshotDelete domainSnapshotDelete;
1593     virDrvDomainQemuMonitorCommand domainQemuMonitorCommand;
1594     virDrvDomainQemuAttach domainQemuAttach;
1595     virDrvDomainQemuAgentCommand domainQemuAgentCommand;
1596     virDrvConnectDomainQemuMonitorEventRegister connectDomainQemuMonitorEventRegister;
1597     virDrvConnectDomainQemuMonitorEventDeregister connectDomainQemuMonitorEventDeregister;
1598     virDrvDomainOpenConsole domainOpenConsole;
1599     virDrvDomainOpenChannel domainOpenChannel;
1600     virDrvDomainOpenGraphics domainOpenGraphics;
1601     virDrvDomainOpenGraphicsFD domainOpenGraphicsFD;
1602     virDrvDomainInjectNMI domainInjectNMI;
1603     virDrvDomainMigrateBegin3 domainMigrateBegin3;
1604     virDrvDomainMigratePrepare3 domainMigratePrepare3;
1605     virDrvDomainMigratePrepareTunnel3 domainMigratePrepareTunnel3;
1606     virDrvDomainMigratePerform3 domainMigratePerform3;
1607     virDrvDomainMigrateFinish3 domainMigrateFinish3;
1608     virDrvDomainMigrateConfirm3 domainMigrateConfirm3;
1609     virDrvDomainSendKey domainSendKey;
1610     virDrvDomainBlockJobAbort domainBlockJobAbort;
1611     virDrvDomainGetBlockJobInfo domainGetBlockJobInfo;
1612     virDrvDomainBlockJobSetSpeed domainBlockJobSetSpeed;
1613     virDrvDomainBlockPull domainBlockPull;
1614     virDrvDomainBlockRebase domainBlockRebase;
1615     virDrvDomainBlockCopy domainBlockCopy;
1616     virDrvDomainBlockCommit domainBlockCommit;
1617     virDrvConnectSetKeepAlive connectSetKeepAlive;
1618     virDrvConnectIsAlive connectIsAlive;
1619     virDrvNodeSuspendForDuration nodeSuspendForDuration;
1620     virDrvDomainGetPerfEvents domainGetPerfEvents;
1621     virDrvDomainSetPerfEvents domainSetPerfEvents;
1622     virDrvDomainSetBlockIoTune domainSetBlockIoTune;
1623     virDrvDomainGetBlockIoTune domainGetBlockIoTune;
1624     virDrvDomainGetCPUStats domainGetCPUStats;
1625     virDrvDomainGetDiskErrors domainGetDiskErrors;
1626     virDrvDomainSetMetadata domainSetMetadata;
1627     virDrvDomainGetMetadata domainGetMetadata;
1628     virDrvNodeGetMemoryParameters nodeGetMemoryParameters;
1629     virDrvNodeSetMemoryParameters nodeSetMemoryParameters;
1630     virDrvNodeGetCPUMap nodeGetCPUMap;
1631     virDrvDomainFSTrim domainFSTrim;
1632     virDrvDomainSendProcessSignal domainSendProcessSignal;
1633     virDrvDomainLxcOpenNamespace domainLxcOpenNamespace;
1634     virDrvDomainMigrateBegin3Params domainMigrateBegin3Params;
1635     virDrvDomainMigratePrepare3Params domainMigratePrepare3Params;
1636     virDrvDomainMigratePrepareTunnel3Params domainMigratePrepareTunnel3Params;
1637     virDrvDomainMigratePerform3Params domainMigratePerform3Params;
1638     virDrvDomainMigrateFinish3Params domainMigrateFinish3Params;
1639     virDrvDomainMigrateConfirm3Params domainMigrateConfirm3Params;
1640     virDrvConnectGetCPUModelNames connectGetCPUModelNames;
1641     virDrvDomainFSFreeze domainFSFreeze;
1642     virDrvDomainFSThaw domainFSThaw;
1643     virDrvDomainGetTime domainGetTime;
1644     virDrvDomainSetTime domainSetTime;
1645     virDrvNodeGetFreePages nodeGetFreePages;
1646     virDrvConnectGetDomainCapabilities connectGetDomainCapabilities;
1647     virDrvConnectGetAllDomainStats connectGetAllDomainStats;
1648     virDrvNodeAllocPages nodeAllocPages;
1649     virDrvDomainGetFSInfo domainGetFSInfo;
1650     virDrvDomainInterfaceAddresses domainInterfaceAddresses;
1651     virDrvDomainSetUserPassword domainSetUserPassword;
1652     virDrvConnectRegisterCloseCallback connectRegisterCloseCallback;
1653     virDrvConnectUnregisterCloseCallback connectUnregisterCloseCallback;
1654     virDrvDomainMigrateStartPostCopy domainMigrateStartPostCopy;
1655     virDrvDomainGetGuestVcpus domainGetGuestVcpus;
1656     virDrvDomainSetGuestVcpus domainSetGuestVcpus;
1657     virDrvDomainSetVcpu domainSetVcpu;
1658     virDrvDomainSetBlockThreshold domainSetBlockThreshold;
1659     virDrvDomainSetLifecycleAction domainSetLifecycleAction;
1660     virDrvConnectCompareHypervisorCPU connectCompareHypervisorCPU;
1661     virDrvConnectBaselineHypervisorCPU connectBaselineHypervisorCPU;
1662     virDrvNodeGetSEVInfo nodeGetSEVInfo;
1663     virDrvDomainGetLaunchSecurityInfo domainGetLaunchSecurityInfo;
1664     virDrvDomainCheckpointCreateXML domainCheckpointCreateXML;
1665     virDrvDomainCheckpointGetXMLDesc domainCheckpointGetXMLDesc;
1666     virDrvDomainListAllCheckpoints domainListAllCheckpoints;
1667     virDrvDomainCheckpointListAllChildren domainCheckpointListAllChildren;
1668     virDrvDomainCheckpointLookupByName domainCheckpointLookupByName;
1669     virDrvDomainCheckpointGetParent domainCheckpointGetParent;
1670     virDrvDomainCheckpointDelete domainCheckpointDelete;
1671     virDrvDomainGetGuestInfo domainGetGuestInfo;
1672     virDrvDomainAgentSetResponseTimeout domainAgentSetResponseTimeout;
1673     virDrvDomainBackupBegin domainBackupBegin;
1674     virDrvDomainBackupGetXMLDesc domainBackupGetXMLDesc;
1675     virDrvDomainAuthorizedSSHKeysGet domainAuthorizedSSHKeysGet;
1676     virDrvDomainAuthorizedSSHKeysSet domainAuthorizedSSHKeysSet;
1677     virDrvDomainGetMessages domainGetMessages;
1678     virDrvDomainStartDirtyRateCalc domainStartDirtyRateCalc;
1679 };
1680