Codebase list libvirt-glib / de2b022
New upstream version 0.0.4 Guido Günther 12 years ago
204 changed file(s) with 11556 addition(s) and 1325 deletion(s). Raw diff Collapse all Expand all
0 2012-01-12 Daniel P. Berrange <berrange@redhat.com>
1
2 Update NEWS & syms files for 0.0.4 release
3
4 Support setting target attributes for console & channel devices
5
6 2012-01-12 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
7
8 Add API to check if domain is persistent
9 Add a predicate and property to check if domain is persistent or not.
10
11 2012-01-11 Daniel P. Berrange <berrange@redhat.com>
12
13 Add support for shutdown event to avoid console warnings
14
15 Add support for configuring serial, parallel & channel devices
16 The basic config of serial, parallel & channel devices is just
17 the same as console devices. Add basic stubs for these new
18 devices
19
20 2012-01-09 Christophe Fergeau <cfergeau@redhat.com>
21
22 Use g_simple_async_result_is_valid in _finish functions
23 The _finish functions for async operations can be simplified by
24 using g_simple_async_result_is_valid instead of doing the checks
25 it does by ourselves.
26
27 2012-01-08 Christophe Fergeau <cfergeau@redhat.com>
28
29 Follow glib conventions for SimpleAsyncResult source tag
30 g_simple_async_result_is_valid() API documentation says that the
31 source tag field for SimpleAsyncResult objects "by convention, is a
32 pointer to the _async function corresponding to the _finish function from
33 which this function is called"
34 The stream functions were already following this convention, but
35 other places were using the sync function name as the source tag.
36 This commit uses the async function name everywhere.
37
38 2012-01-06 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
39
40 API to save and suspend
41 Its just a set of synchronous and asynchronous wrappers around
42 virDomainManagedSave.
43
44 API to suspend a domain
45
46 Correct namespace prefix for GVirConfig symbols
47 Breaks API and ABI on the fundamental level but lets fix this now while
48 we don't guarantee any API/ABI stability.
49
50 2012-01-06 Christophe Fergeau <cfergeau@redhat.com>
51
52 Don't mix g_new0 and g_slice_free
53 There were 2 places where memory was allocated with g_new0 and was
54 later freed with g_slice_free. This commit uses g_slice_new0 instead.
55 After this, there are no other occurrences of g_new0 in gobject/ so
56 the rest of the codebase should be safe from this issue.
57
58 Add GVirConfigDomainDisk getters
59
60 Add more parsing helpers to GVirConfigObject
61 Add gvir_config_object_get_node_content_genum,
62 gvir_config_object_get_attribute
63 and gvir_config_object_get_attribute_genum to complement the existing
64 methods. They all act on a child node of the current node. The
65 _get_attribute functions can also act on the root node of the
66 GVirConfigObject instance if it's passed NULL instead of a child name.
67
68 Implement gvir_config_domain_get_devices
69 There are some devices which we are not able to parse yet, in these
70 cases a runtime debug warning is printed in debug mode to tell what's
71 going on.
72
73 Add gvir_config_object_foreach_child helper
74 When iterating over xmlNodePtr children to parse an XML document
75 describing a libvirt configuration item, we want to ignore blank
76 nodes that may have been added to make the initial XML document
77 "more human readable". Since this will be useful in several places,
78 move this code to a helper function.
79
80 Add gvir_config_object_new_from_tree
81 This helper function will be useful to create instances of
82 GVirConfigXXX objects when we already have a "top-level" instance
83 (eg to create a GVirConfigDomainDisk using the tree stored in a
84 GVirConfigDomain instance).
85
86 Add helpers to parse xml trees
87 This will be helpful to implement GVirConfig getters.
88
89 Introduce libvirt-gconfig-private.h
90 This header groups all libvirt-gconfig private headers.
91
92 Add {replace,add}_with_attribute
93 These functions may seem very specialized, and the same can easily
94 be achieved with 2 separate API calls, but since this is something
95 that is commonly done, these helpers save quite a few lines of code.
96
97 Remove FIXME from gvir_config_domain_filesys_set_driver_type
98 All that was missing to fix it was gvir_config_object_remove_attribute
99 which now exists.
100
101 Overwrite attributes in GVirObject::set_attribute
102 Zeeshan reported an issue where calling
103 gvir_config_domain_disk_set_target_dev several times would result in
104 duplicated 'dev' attributes in the resulting XML instead of overwriting
105 the existing 'dev' attribute. Since there are no cases interesting to
106 libvirt-gconfig where having several attributes with the same name is
107 useful, when calling gvir_config_object_set_attribute*, we can just
108 remove attributes with the same names as the one we are setting.
109
110 Add gvir_gconfig_object_remove_attribute helper
111
112 2012-01-04 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
113
114 Add docs for gvir_config_domain_set/get_memory
115 Its not obvious what units these functions deal with so docs are
116 critical for these functions.
117
118 Correct gvir_storage_pool_get_volumes' return annotation
119
120 2012-01-04 Christophe Fergeau <cfergeau@redhat.com>
121
122 Call gvir_init_config() in GVirConfig test programs
123 While not strictly necessary, this sets up glib logging properly on
124 older glib so that debug logs are not shown by default.
125
126 2012-01-03 Christophe Fergeau <cfergeau@redhat.com>
127
128 Add gvir_config_domain_graphics_vnc_set_password
129 Based on the similar patch for SPICE
130
131 2012-01-02 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
132
133 API to set SPICE password
134
135 2011-12-23 Christophe Fergeau <cfergeau@redhat.com>
136
137 Fix gvir_config_domain_sound_set_model
138 It's creating an unwanted extra <sound> XML node:
139 <sound>
140 <sound model="xxx">
141 </sound>
142 instead of the correct
143 <sound model="xxx">
144
145 2011-12-22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
146
147 Bump version
148
149 2011-12-22 Christophe Fergeau <cfergeau@redhat.com>
150
151 Add GVirConfigDomainSound
152
153 Add python example for LibvirtGConfig
154
155 2011-12-19 Daniel P. Berrange <berrange@redhat.com>
156
157 Ignore generated .vapi files
158
159 Update min libvirt to 0.9.7
160
161 Update NEWS for 0.0.3 release
162
163 Fix build by exporting missing gvir_config_xml_doc APIs
164
165 Update version in all .sym files
166 Since there are ABI changes, update the version in all .sym
167 files to force a rebuild of apps
168
169 Add binding for virDomainOpenGraphics
170
171 Add binding for virDomainOpenConsole
172
173 Add support for configuring network bridges
174
175 2011-12-15 Christophe Fergeau <cfergeau@redhat.com>
176
177 Add annotations for gvir_stream_add_watch{_full}
178 This should silence this compile warning:
179 GEN LibvirtGObject-1.0.gir
180 libvirt-gobject-stream.c:603: Warning: LibvirtGObject:
181 gvir_stream_add_watch: a rgument func: Missing (scope) annotation for
182 callback without GDestroyNotify (v alid: call, async)
183
184 This also adds API documentation for these functions.
185
186 Add gvir_config_storage_pool_set_pool_type
187
188 2011-12-13 Christophe Fergeau <cfergeau@redhat.com>
189
190 Add GVirConfigStorage* to creation test
191
192 Add methods to link GVirStorage* classes together
193 GVirConfigStorageVolBackingStore and GVirConfigStorageVolTarget can be
194 associated with a GVirConfigStorageVol.
195
196 GVirConfigStoragePoolSource and GVirConfigStoragePoolTarget can be
197 associated with a GVirConfigStoragePool.
198
199 GVirConfigStoragePermissions can be set on either a
200 GVirConfigStorageVolTarget or a GVirConfigStoragePoolTarget.
201
202 Add GVirConfigStoragePermissions setters
203
204 Add gvir_config_storage_pool_target_set_path
205
206 Add GVirConfigStoragePoolSource setters
207
208 Add GVirConfigStorageVolBackingStore setters
209
210 Add gvir_config_storage_vol_target_set_format
211
212 Add GObject boilerplate for GVirConfigStorage*
213 We'll need several helper classes to implement configuration of
214 storage pools and volumes. This commit introduces all of these
215 in one go. It's just the GObject boilerplate, the actual code will
216 come in other commits. GVirConfigStoragePermissions is namespaced this
217 way because it will be used by both GVirConfigStoragePoolTarget and
218 GVirConfigStorageVolTarget.
219
220 Add GVirConfigStoragePool setters
221
222 Add some GVirConfigStorageVol setters
223
224 Add missing items in GVirConfigDomainVirtType
225 Put all the items available in virDomainVirt
226
227 Fix gvir_config_domain_disk_set_target_bus API
228 The bus type is actually an enum, let's reflect that in
229 libvirt-gconfig API
230
231 Add GVirConfigDomainInterface setters
232 These attributes are valid for all types deriving from
233 GVirConfigDomainInterface so we add it to the base class.
234
235 Add GVirConfigDomainInterfaceUser boilerplate
236
237 2011-12-07 Christophe Fergeau <cfergeau@redhat.com>
238
239 Add "priority" argument to gvir_stream_add_watch_full
240 This is more consistent with what all the other glib _full APIs
241 are doing.
242
243 2011-12-07 Daniel P. Berrange <berrange@redhat.com>
244
245 Only enable vala for Fedora 16 and later
246
247 2011-12-06 Daniel P. Berrange <berrange@redhat.com>
248
249 Allow cancelling gvir_stream_send_all & gvir_stream_receive_all
250 Add GCancellable parameters to gvir_stream_send_all and
251 gvir_stream_receive_all to allow I/O to be interrupted
252 before completion
253
254 Add flags for controling how domains are started
255
256 Fix copyright header on chardev related classes
257
258 Add vala files to RPM spec
259
260 2011-12-06 Christophe Fergeau <cfergeau@redhat.com>
261
262 Add test for GVirConfigConsole
263
264 Add GVirConfigDomainChardevSourcePty
265
266 Implement gvir_config_domain_chardev_add_source
267 This is used to associate a ChardevSource (pty, file, ...) with a
268 Chardev (console, serial, ...).
269
270 Introduce GVirConfigDomainChardevSource
271
272 Add objects for dealing with <console> devices
273 Add an abstract GVirConfigDomainChardev object for <console>,
274 <serial>, ... devices and a GVirConfigDomainConsole implementation.
275 This needs to be completed with a separate GVirConfigDomainChardevSource
276 inheritance tree which will be specialized to
277 GVirConfigDomainChardevSourcePty, ... and GVirConfigDomainChardev will
278 offer a helper function to attach a GVirConfigDomainChardevSource to
279 a GVirConfigDomainChardev
280
281 Use gvir_error_set_literal in more places
282 GVirConnection has some gvir_set_error uses that can be replaced
283 by gvir_set_error_set_literal. When passing a single string, this is
284 safer since we are guaranteed that unwanted printf-format sequences
285 in the string won't cause issues.
286
287 2011-12-05 Christophe Fergeau <cfergeau@redhat.com>
288
289 Add gvir_config_domain_set_lifecycle
290 This is used to control what happens (restart, stop, ...) to the VM
291 when it crashes, shuts down, ...
292
293 2011-12-05 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
294
295 Add wrapper for volume deletion API
296
297 2011-12-05 Daniel P. Berrange <berrange@redhat.com>
298
299 Introduce gvir_set_error (and friends) & convert all code
300 The pattern
301
302 GError **error;
303 ....
304 *err = gvir_error_new(...)
305
306 is dangerous because 'err' could be NULL, and it is tedious
307 to expect everyone to check. Introduce a new set of APIs
308 for setting errors
309
310 gvir_set_error(err, ...)
311
312 and convert all callers to this new pattern
313
314 2011-12-01 Daniel P. Berrange <berrange@redhat.com>
315
316 Update copyright dates s/2010/2010-2011/
317
318 Add files for 'make syntax-check' rules from GNULIB
319 The 'syntax-check' rule validates various coding style requirements.
320 It is run as part of the regular automated builds
321
322 * GNUmakefile, maint.mk: syntax-check rules (from GNULIB)
323 * cfg.mk: Local extra rules & exclusions
324 * build-aux/useless-if-before-free,
325 build-aux/vc-list-files: Helpers for syntax check (from
326 GNULIB)
327 * autobuild.sh: Run syntax-check as part of build
328 * configure.ac: Ensure GNUmakefile exists in VPATH builds
329
330 Add <config.h> to test case files
331
332 Remove trailing whitespace from autogen.sh
333
334 Use test -d FOO && test -d BAR instead of test -d FOO -a -d BAR
335 For greater portability do not rely on the test binary having
336 a -a option
337
338 Remove trailing blank lines from all files
339
340 Remove use of '@' in makefiles
341 * Makefile.am, python/Makefile.am: Remove use of @FOO@ in favour
342 of $(FOO)
343
344 Fix copyright header s/Red Hat/Red Hat, Inc./
345
346 Remove useless if before xmlFreeDoc
347
348 Remove indentation with TABs from autogen.sh & conn-test.py
349
350 Ensure that the generated XML is indented in a pretty format
351
352 Add more files to ignore list
353
354 Add the domain OS type for containers
355
356 Add support for <memballoon> configuration
357
358 Fix missing backslash in noinst_HEADERS for libvirt-gconfig
359
360 2011-12-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
361
362 Correct size of GVirStoragePoolInfo.available
363
364 Wrap storage volume info API
365
366 Wrap storage pool info API
367
368 2011-12-01 Daniel P. Berrange <berrange@redhat.com>
369
370 Fix file headers / description in gconfig classes
371
372 Remove redundant #includes from all gconfig files
373 The #include <string.h> and #include <libxml/tree.h> is not
374 required in the vast majority of files
375
376 Add support for setting security labels
377 Add support for the <seclabel> element via a new object
378 GVirConfigDomainSeclabel.
379
380 * libvirt-gconfig-domain-seclabel.c, libvirt-gconfig-domain-seclabel.h,
381 Makefile.am, libvirt-gconfig.h, libvirt-gconfig.sym: New objects
382 * libvirt-gconfig-domain.c, libvirt-gconfig-domain.h: API to
383 associate seclabel with an domain
384
385 Add objects for dealing with SDL and VNC graphics config
386 Add GVirConfigDomainGraphicsSdl and GVirConfigDomainGraphicsVnc
387 Also change SPICE to use a signed int for port number and add
388 ability to set autoport & tls port attributes
389
390 * libvirt-gconfig/Makefile.am,
391 libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c,
392 libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.h,
393 libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c,
394 libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h,
395 libvirt-gconfig/libvirt-gconfig.h,
396 libvirt-gconfig/libvirt-gconfig.sym: Add new objects
397 * libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c,
398 libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.h:
399 Add autoport & tls port setter, change port setter to use
400 a signed int
401
402 Add API for appending a new device to the domain
403 The gvir_config_domain_set_devices API replaces the entire
404 list of devices, but when building up a config incrementally
405 it is useful to append device one at a time. Thus we need
406 a gvir_config_domain_add_device method
407
408 * libvirt-gconfig/libvirt-gconfig-domain.c,
409 libvirt-gconfig/libvirt-gconfig-domain.h,
410 libvirt-gconfig/libvirt-gconfig.syms: gvir_config_domain_add_device
411
412 Add API for setting virt type
413 Add gvir_config_domain_set_virt_type and
414 gvir_config_domain_virt_type_get_type
415
416 * libvirt-gconfig-domain.c, libvirt-gconfig-domain.h,
417 libvirt-gconfig.h, libvirt-gconfig.sym: Add new APIs
418
419 Ensure internal copy of URI is not NULL
420 It is permissible to pass in NULL for a URI to libvirt, which
421 causes it to probe for a supported driver. In such a case we
422 should populate priv->uri with the resulting probed URI after
423 opening the connection
424
425 * libvirt-gobject/libvirt-gobject-connection.c: Populate URI
426 after opening connection, if NULL
427
428 Add support for setting <filesystem> elements
429 Create a new GVirConfigDomainFilesys object for dealing with
430 the <filesystem> element.
431
432 * libvirt-gconfig-domain-filesys.c, libvirt-gconfig-domain-filesys.h,
433 Makefile.am, libvirt-gconfig.sym, libvirt-gconfig.h: New
434 GVirConfigDomainFilesys object
435 * libvirt-gconfig-object.c, libvirt-gconfig-object-private.h: Add
436 gvir_config_object_delete_node for removing an XML node
437
438 Add setters for kernel/ramdisk/cmdline/init in GVirConfigDomainOS
439 Enable setting of the <kernel>, <ramdisk>, <cmdline> and <init>
440 elements inside <os>...</os>.
441
442 * libvirt-gconfig/libvirt-gconfig-domain-os.c,
443 libvirt-gconfig/libvirt-gconfig-domain-os.h,
444 libvirt-gconfig/libvirt-gconfig.sym: Add new setters
445
446 2011-11-30 Christophe Fergeau <cfergeau@redhat.com>
447
448 Fix potential race in GVirObjectConnection::domain_event_cb
449 This method starts by looking up a domain in priv->domains, and later,
450 depending on the kind of event that occurred, it may remove this
451 domain from priv->domains. While the individual operations (lookup,
452 removal) are protected by priv->lock, there is no guarantee that the
453 looked up domain and even priv->domains will stay unchanged when
454 priv->lock isn't held.
455
456 In particular, gvir_connection_close will destroy priv->domains which
457 will unreference all the domains it contains (potentially destroying
458 them too), and gvir_connection_fetch_domains will change priv->domains
459 value.
460
461 To avoid these issues, this commit takes a reference on priv->domains
462 so that it doesn't get away behind our back, and it takes a reference
463 on the looked up domain too to ensure it stays alive for the duration
464 of domain_event_cb run.
465
466 Fix memory leaks in test-domain-create
467 Before the introduction of GVirConfigXmlDoc, we couldn't
468 destroy the objects deriving from GVirConfigObject without
469 memory corruption. Now that we have GVirConfigXmlDoc, we can
470 make sure the memory we allocate for our various
471 GVirConfigObject instances are properly cleaned up.
472
473 Return a GVirConfigObject from gvir_config_object_replace_child
474 This makes it possible to use the other GVirConfigObject helpers
475 with the new child, and hides libxml from one more place in our API.
476
477 Return a GVirConfigObject from gvir_config_object_add_child
478 This makes it possible to use the other GVirConfigObject helpers
479 with the new child, and hides libxml from one more place in our API.
480
481 Simplify GVirConfigDomainGraphicsSpice creation
482 Now that we have gvir_config_object_set_attribute, we can use
483 the gvir_config_object_new{_from_xml} helpers.
484
485 Simplify GVirConfigDomainInterfaceNetwork creation
486 Now that we have gvir_config_object_set_attribute, we can use
487 the gvir_config_object_new{_from_xml} helpers.
488
489 Use gvir_config_object_set_attribute where appropriate
490
491 Add gvir_config_object_set_attribute{_with_type}
492
493 Use gvir_config_object_attach where appropriate
494 This allows us to properly refcount the underlying xmlDocPtr (and
495 the associated xmlNodes) to avoid trying to free twice the same
496 xmlNodes when disposing of GVirConfigObject referencing the same
497 nodes.
498
499 Add gvir_config_object_attach
500 It's needed to be able to keep track of references on the underlying
501 GVirConfigXmlDoc when building a bigger xml tree from smaller
502 separate xml nodes.
503
504 GVirConfigObject is no longer an abstract type
505 Since we want to use GVirConfigObject as a simple wrapper over
506 xmlNodePtr, we need to be able to create instances of this type for
507 "arbitrary" xml nodes.
508
509 Set GVirConfigObject::doc during object creation
510 Now that we have a refcounted GVirConfigXmlDoc type, make sure we use
511 it when creating objects deriving from GVirConfigObject.
512
513 Add GVirConfigObject::doc property
514 It will be used to refcount the xml data and make sure we only
515 free it when all references have went away.
516
517 Add GVirConfigXmlDoc type
518 This class derives from GObject and wraps an xmlDocPtr. It will be
519 useful to refcount xmlDoc so that it can be shared between multiple
520 GVirConfigObject instances.
521
522 Fix gvir_config_domain_clock_set_variable_offset
523 It was creating an extra <clock> node as a child of the "main" one
524 which is not what was intended
525
526 2011-11-30 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
527
528 Remove transient domain reference on shutdown
529
530 Rely on libvirt API to detect transient domains
531
532 2011-11-29 Christophe Fergeau <cfergeau@redhat.com>
533
534 gir: use libraries from build tree, not installed ones
535 If we don't explicitly mention path to our uninstalled libraries
536 to g-ir-scanner, it will use installed libvirt-* libraries instead
537 of the ones we just built to run a binary during the generation of
538 the gir file. However this binary will have been compiled with the
539 uninstalled ones,
540 This is an issue if the installed libraries are not ABI compatible
541 with the uninstalled one, and will cause a compile failure because
542 the binary will fail to run.
543 This fix has been suggested by Colin Walters (gobject-introspection
544 maintainer).
545
546 gir: Use --pkg=libxml-2.0 instead of LIBXML2_CFLAGS
547 g-ir-scanner has a standard way of getting the flags for libraries
548 providing .pc files, this commit uses this --pkg flag for libxml
549 instead of using LIBXML2_CFLAGS we computed ourselves.
550
551 Fix make distcheck
552 Do not ship autogenerated glib enum definitions in the tarball,
553 otherwise they won't get regenerated in the build directory when
554 using a tarball, and rules trying to find these files in the build
555 directory will fail (eg the gir generation rule)
556
557 Cleanup GIR generation rules
558 Remove some redundant arguments (--pkg seems unneeded when
559 --include is used), most include paths are unneeded, ...
560
561 Fix GIR generation
562 Overriding PKG_CONFIG_PATH when generating LibvirtGObject-1.0.gir
563 is wrong since this means that if glib/gio/... are installed in
564 a prefix that is not one of the default pkg-config paths, then
565 they won't be found. PKG_CONFIG_PATH is overridden so that
566 g-ir-scanner can find LibvirtGLib-1.0 and LibvirtGConfig-1.0 in
567 the build tree. Since g-ir-scanner provides --include-uninstalled
568 for that purpose, use that instead.
569
570 Link libvirt-gobject with gthread
571 It uses GMutex so it needs to be linked with gthread
572
573 Add various missing packages to libvirt-gobject-1.0.pc
574
575 2011-11-29 Daniel P. Berrange <berrange@redhat.com>
576
577 Ensure debug defaults to off for all glib versions
578 The previous patch changed all code to directly call g_debug().
579 This relies on the fact that glib >= 2.31 defaults to not
580 printing debug messages. The result is that for older glib we
581 now pollute the stderr with debug messages.
582
583 This introduces 3 env vars for controlling libvirt debug,
584 though on glib >= 2.31 the standard G_LOG_MESSAGES env can
585 be used instead.
586
587 * libvirt-glib/libvirt-glib-main.c: Check for LIBVIRT_GLIB_DEBUG
588 env var
589 * libvirt-gobject/libvirt-gobject-main.c: Check for
590 LIBVIRT_GOBJECT_DEBUG env var
591 * libvirt-gconfig/libvirt-gconfig-main.c: Check for
592 LIBVIRT_GCONFIG_DEBUG env var
593 * libvirt-gconfig/libvirt-gconfig-main.h, libvirt-gconfig/libvirt-gconfig.h,
594 libvirt-gconfig/libvirt-gconfig.sym: Add new files
595 * libvirt-gconfig/Makefile.am, libvirt-glib/Makefile.am,
596 libvirt-gobject/Makefile.am: Set a default G_LOG_DOMAIN to
597 allow filtering the library messages
598
599 2011-11-29 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
600
601 Remove now redundant debug system
602 GLib >= 2.31 filters debug messages by default now[1] and provides ways
603 to output debug log from selected domains only. This patch won't be any
604 good without defining proper fine-grained log domains though.
605
606 http://blogs.gnome.org/mclasen/2011/11/09/better-logging/
607
608 Ensure 'domain-added' signal on transient domain creation
609
610 2011-11-29 Daniel P. Berrange <berrange@redhat.com>
611
612 Convert GVirInputStream/GVirOutputStream over to use watches
613 Since virStreamEventAddCallback only allows a single callback
614 to be registered, GVirInputStream/GVirOutputStream should not
615 use that directly. Instead they should use the gvir_stream_add_watch
616 function
617
618 * libvirt-gobject/libvirt-gobject-input-stream.c,
619 libvirt-gobject/libvirt-gobject-output-stream.c: Convert to
620 use gvir_stream_add_watch
621
622 Cleanup streams coding style violations
623
624 Add missing exports of GVirStream APIs
625 * libvirt-gobject/libvirt-gobject.sym: Export gvir_stream_receive,
626 gvir_stream_send, gvir_stream_send_all
627
628 Add support for creating watches on streams
629 The GIO GInputStream/GOutputStream async model for I/O does not
630 work for working with non-blocking bi-directional streams. To
631 allow that to be done more effectively, add an API to allow
632 main loop watches to be registered against streams.
633
634 Since the libvirt level virStreamEventAddCallback API only allows
635 a single callback to be registered to a stream at any time, the
636 GVirStream object needs to be multiplexing of multiple watches into
637 a single libvirt level callback.
638
639 Watches can be removed in the normal way with g_source_remove
640
641 * libvirt-gobject/libvirt-gobject-stream.c,
642 libvirt-gobject/libvirt-gobject-stream.h,
643 libvirt-gobject/libvirt-gobject.sym: Add gvir_stream_add_watch
644
645 Document some of the coding style conventions required
646 * HACKING: Add notes on coding style conventions
647
648 2011-11-24 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
649
650 Bump version
651
652 2011-11-24 Daniel P. Berrange <berrange@redhat.com>
653
654 Fix VPATH build wrt enum types
655 * libvirt-gconfig/Makefile.am: Built files should live in builddir
656 * libvirt-gconfig/libvirt-gconfig.sym: Export enum types
657
658 2011-11-23 Christophe Fergeau <cfergeau@redhat.com>
659
660 Don't memset GObject private data to 0
661 The GObject private data allocated with g_type_class_add_private
662 will be automatically zero'ed when the GObject is created so we
663 don't need to memset it to 0.
664
665 Add GVirConfigDomainVideo
666 --
667 v2: use g_return_if_fail to test function args for sanity
668 v3: rename to GVirConfigDomainVideo
669
670 Add basic GVirConfigDomainGraphicsSpice
671 Only the (non-TLS) port can be set on it
672
673 --
674 v2: rename to GVirConfigDeviceGraphicsSpice
675 fix node creation (missing "type" attribute)
676 derive GVirConfigDeviceGraphicsSpice from GVirConfigDeviceGraphics
677 use g_return_if_fail to test function args for sanity
678 v3: rename to GVirConfigDomainGraphicsSpice
679
680 Add GObject boilerplate for GVirConfigDomainGraphics
681 This is an abstract type which will be used as a base class for the
682 various type of <graphics> devices (spice, vnc, ...)
683
684 --
685 v3: rename to GVirConfigDomainGraphics
686
687 Add GVirConfigDomainInput
688 --
689 v2: use enum for input bus type
690 use g_return_if_fail to test function args for sanity
691 v3: rename to GVirConfigDomainInput
692
693 Add <network> to creation test
694
695 Add gvir_config_domain_interface_network_set_source
696
697 Add GVirConfigDomainInterfaceNetwork
698 --
699 v2: use g_return_if_fail to test function args for sanity
700 v3: rename to GVirConfigDomainInterfaceNetwork
701
702 Add GObject boilerplate for GVirConfigDomainInterface
703 This base class is mainly useful as a generic type when we manipulate
704 list of interfaces regardless of their actual type.
705
706 --
707 v3: rename to GVirConfigDomainInterface since GVirConfigInterface
708 has a different purpose
709
710 Add test for adding a disk device
711
712 More GVirConfigDomainDisk setters
713 --
714 v2: fix gvir_config_device_disk_set_source
715 use g_return_if_fail to test function args for sanity
716
717 Add gvir_config_object_add_child
718 It's similar to gvir_config_object_replace_child except that if the
719 current node already has a child with the correct name, it returns
720 the existing child instead of replacing it.
721
722 --
723 v2: instead of adding an argument to gvir_config_object_new_child,
724 split the function in 2 separate ones, gvir_config_object_add_child
725 and gvir_config_object_replace_child.
726 use g_return_if_fail to test function args for sanity
727
728 Add gvir_config_domain_set_devices
729 --
730 v2: use g_return_if_fail to test function args for sanity
731
732 Add various GVirConfigDomainDisk setters
733 --
734 v2: use g_return_if_fail to test function args for sanity
735
736 Add gobject boilerplate for GVirConfigDomainDisk
737 --
738 v3: rename to GVirConfigDomainDisk
739
740 Add gobject boilerplate for GVirConfigDomainDevice
741 This is an abstract type which will be used as a base class for
742 all objects stored in the <devices> section of a domain.
743
744 --
745 v3: rename to GVirConfigDomainDevice
746
747 Add GVirConfigDomain::vcpu
748
749 Add test for GVirConfigDomainOs
750
751 Implement gvir_config_domain_set_os
752 --
753 v2: use g_return_if_fail to test function args for sanity
754
755 Add some GVirConfigDomainOs setters
756 --
757 v2: merged several related commits
758 use safer g_strcmp0 for string comparison
759 use g_return_if_fail to test function args for sanity
760
761 Add gobject boilerplate for GVirConfigDomainOs
762 --
763 v3: rename from GVirConfigOs to GVirConfigDomainOs
764
765 Create clock object in domain creation test
766
767 Add gvir_config_genum_get_nick helper
768 We will often need to convert from an enum to its string
769 representation, add an helper for that to avoid duplicating that
770 code.
771
772 --
773 v2: moved before gvir_config_clock_set_offset implementation since
774 it needs it
775
776 Use glib-mkenums to register enums with glib
777 We don't currently have any enum in our API, but we will need some.
778 This commit adds the generation of libvirt-gconfig-enum-types.[ch]
779 using glib-mkenums. These files will register the various enums
780 that will get added to libvirt-gconfig header files with glib.
781
782 --
783 v2: move libvirt-gconfig-enum-types.h to HEADERS in Makefile.am so that
784 it's installed
785
786 Add gvir_config_domain_set_clock
787 The implementation is likely to need to be completed later. We
788 might want to store pointers from GVirConfigDomain to the associated
789 GVirConfigDomainClock, from GVirConfigDomainClock to the GVirConfigDomain
790 that contains it. Since I'm not sure yet if they will be needed, I chose
791 to keep the implementation simple.
792
793 --
794 v2: use g_return_if_fail to test function args for sanity
795
796 Add some GVirDomainConfigClock setters
797 --
798 v2: use g_return_if_fail to test function args for sanity
799 v3: fix typo in gvir_config_domain_clock_set_variable_offset
800 ("timezone" -> "adjustment")
801
802 2011-11-22 Christophe Fergeau <cfergeau@redhat.com>
803
804 Add gobject boilerplate for GVirConfigDomain{Clock,Timer}
805 --
806 v3: rename from GVirConfig* to GVirConfigDomain*
807
808 Use new helpers to simplify gvir_config_domain_set_features
809
810 Add gvir_config_object_replace_child helper
811 This allows us to factor the code to add an XML node to a config
812 object.
813
814 --
815 v2: use g_return_if_fail to test function args for sanity
816
817 replace object
818
819 Make some GVirConfigObject helpers private
820 At this point, I'm not sure how/if the library user should be able
821 to directly manipulate the XML data wrapped by a GVirConfigObject.
822 It's preferrable to hide this API from the user until we have a
823 clearer idea how to expose it.
824
825 Remove unused prototype for gvir_config_object_parse
826 There is no corresponding implementation so no need to keep this
827 prototype.
828
829 Remove unneeded blank line in *_class_init
830
0831 2011-11-22 Daniel P. Berrange <berrange@redhat.com>
1832
2833 Update NEWs with more 0.0.2 release notes
55 pkgconfigdir = $(libdir)/pkgconfig
66 pkgconfig_DATA = libvirt-glib-1.0.pc libvirt-gconfig-1.0.pc libvirt-gobject-1.0.pc
77
8 EXTRA_DIST = @PACKAGE@.spec $(pkgconfig_DATA:%.pc=%.pc.in)
8 EXTRA_DIST = $(PACKAGE).spec $(pkgconfig_DATA:%.pc=%.pc.in)
99
10 DISTCLEAN_FILES = @PACKAGE@.spec $(pkgconfig_DATA)
10 DISTCLEAN_FILES = $(PACKAGE).spec $(pkgconfig_DATA)
1111
1212 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc=yes --enable-introspection=yes
1313
175175 GIO2_LIBS = @GIO2_LIBS@
176176 GLIB2_CFLAGS = @GLIB2_CFLAGS@
177177 GLIB2_LIBS = @GLIB2_LIBS@
178 GLIB_MKENUMS = @GLIB_MKENUMS@
178179 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
179180 GOBJECT2_LIBS = @GOBJECT2_LIBS@
180181 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
183184 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
184185 GTHREAD2_LIBS = @GTHREAD2_LIBS@
185186 GTKDOC_CHECK = @GTKDOC_CHECK@
187 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
188 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
186189 GTKDOC_MKPDF = @GTKDOC_MKPDF@
187190 GTKDOC_REBASE = @GTKDOC_REBASE@
188191 G_IR_COMPILER = @G_IR_COMPILER@
301304 ACLOCAL_AMFLAGS = -I m4
302305 pkgconfigdir = $(libdir)/pkgconfig
303306 pkgconfig_DATA = libvirt-glib-1.0.pc libvirt-gconfig-1.0.pc libvirt-gobject-1.0.pc
304 EXTRA_DIST = @PACKAGE@.spec $(pkgconfig_DATA:%.pc=%.pc.in)
305 DISTCLEAN_FILES = @PACKAGE@.spec $(pkgconfig_DATA)
307 EXTRA_DIST = $(PACKAGE).spec $(pkgconfig_DATA:%.pc=%.pc.in)
308 DISTCLEAN_FILES = $(PACKAGE).spec $(pkgconfig_DATA)
306309 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc=yes --enable-introspection=yes
307310 all: config.h
308311 $(MAKE) $(AM_MAKEFLAGS) all-recursive
0 0.0.4 - Jan 12, 2012
1 ====================
2
3 - Add support for configuring sound, serial, parallel
4 and channel devices
5 - Add support for newer libvirt shutdown event
6 - Add support for setting SPICE/VNC passwords
7 - Fix storage pool annotations
8 - Improve docs for memory APIs
9 - Fix problem with duplicated attributes
10 - Many internal XML helper API cleanups/additions
11 - Add API for retrieving list of all devices
12 - Fix mixup between g_new0/g_slice_free
13 - Change namespace for GVirConfig APIs (breaks ABI
14 and API)
15 - New APIs for save/suspend
16
17 0.0.3 - Dec 19, 2011
18 ====================
19
20 - Flesh out API in libvirt-gconfig to allow basic domain
21 configuration
22 - Don't memset private data fields, since glib already
23 ensures this
24 - Fix VPATH builds
25 - Add syntax-check rules ensuring coding style compliance
26 - Describe coding style in HACKING file
27 - Expand libvirt-gobject API to allow watches on streams
28 - Simplify debug system with new glib
29 - Fix libvirt-gobject pkg-config file
30 - Fix domain event handlig wrt transient guests
31 - Don't crash if given a NULL uri to connect to
32 - Expand libvirt-gobject API for storage pools & volumes
33 - Fix some crashes in error paths where GError instance
34 was NULL
35 - Add vala files to the RPM
36 - Add binding for open domain consoles & graphics
37
038 0.0.2 - Nov 22, 2011
139 ====================
240
1755 ====================
1856
1957 First public release.
20
2626 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
2727 AC_DEFUN([GTK_DOC_CHECK],
2828 [
29 AC_REQUIRE([PKG_PROG_PKG_CONFIG])
2930 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
3031 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
3132
5354 AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
5455 [PKG_CHECK_EXISTS([gtk-doc >= $1],,
5556 AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
57 dnl don't check for glib if we build glib
58 if test "x$PACKAGE_NAME" != "xglib"; then
59 dnl don't fail if someone does not have glib
60 PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,)
61 fi
5662 fi
5763
5864 AC_MSG_CHECKING([whether to build gtk-doc documentation])
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.68 for libvirt-glib 0.0.2.
2 # Generated by GNU Autoconf 2.68 for libvirt-glib 0.0.4.
33 #
44 #
55 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
566566 # Identity of this package.
567567 PACKAGE_NAME='libvirt-glib'
568568 PACKAGE_TARNAME='libvirt-glib'
569 PACKAGE_VERSION='0.0.2'
570 PACKAGE_STRING='libvirt-glib 0.0.2'
569 PACKAGE_VERSION='0.0.4'
570 PACKAGE_STRING='libvirt-glib 0.0.4'
571571 PACKAGE_BUGREPORT=''
572572 PACKAGE_URL=''
573573
635635 CYGWIN_EXTRA_PYTHON_LIBADD
636636 CYGWIN_EXTRA_LIBADD
637637 CYGWIN_EXTRA_LDFLAGS
638 GLIB_MKENUMS
638639 GTK_DOC_USE_REBASE_FALSE
639640 GTK_DOC_USE_REBASE_TRUE
640641 GTK_DOC_USE_LIBTOOL_FALSE
645646 GTK_DOC_BUILD_HTML_TRUE
646647 ENABLE_GTK_DOC_FALSE
647648 ENABLE_GTK_DOC_TRUE
649 GTKDOC_DEPS_LIBS
650 GTKDOC_DEPS_CFLAGS
648651 HTML_DIR
649652 GTKDOC_MKPDF
650653 GTKDOC_REBASE
828831 GIO2_LIBS
829832 LIBXML2_CFLAGS
830833 LIBXML2_LIBS
834 GTKDOC_DEPS_CFLAGS
835 GTKDOC_DEPS_LIBS
831836 GOBJECT_INTROSPECTION_CFLAGS
832837 GOBJECT_INTROSPECTION_LIBS'
833838
13721377 # Omit some internal or obsolete options to make the list less imposing.
13731378 # This message is too long to be a string in the A/UX 3.1 sh.
13741379 cat <<_ACEOF
1375 \`configure' configures libvirt-glib 0.0.2 to adapt to many kinds of systems.
1380 \`configure' configures libvirt-glib 0.0.4 to adapt to many kinds of systems.
13761381
13771382 Usage: $0 [OPTION]... [VAR=VALUE]...
13781383
14421447
14431448 if test -n "$ac_init_help"; then
14441449 case $ac_init_help in
1445 short | recursive ) echo "Configuration of libvirt-glib 0.0.2:";;
1450 short | recursive ) echo "Configuration of libvirt-glib 0.0.4:";;
14461451 esac
14471452 cat <<\_ACEOF
14481453
15151520 C compiler flags for LIBXML2, overriding pkg-config
15161521 LIBXML2_LIBS
15171522 linker flags for LIBXML2, overriding pkg-config
1523 GTKDOC_DEPS_CFLAGS
1524 C compiler flags for GTKDOC_DEPS, overriding pkg-config
1525 GTKDOC_DEPS_LIBS
1526 linker flags for GTKDOC_DEPS, overriding pkg-config
15181527 GOBJECT_INTROSPECTION_CFLAGS
15191528 C compiler flags for GOBJECT_INTROSPECTION, overriding
15201529 pkg-config
15871596 test -n "$ac_init_help" && exit $ac_status
15881597 if $ac_init_version; then
15891598 cat <<\_ACEOF
1590 libvirt-glib configure 0.0.2
1599 libvirt-glib configure 0.0.4
15911600 generated by GNU Autoconf 2.68
15921601
15931602 Copyright (C) 2010 Free Software Foundation, Inc.
18651874 This file contains any messages produced by compilers while
18661875 running configure, to aid debugging if configure makes a mistake.
18671876
1868 It was created by libvirt-glib $as_me 0.0.2, which was
1877 It was created by libvirt-glib $as_me 0.0.4, which was
18691878 generated by GNU Autoconf 2.68. Invocation command line was
18701879
18711880 $ $0 $@
26842693
26852694 # Define the identity of the package.
26862695 PACKAGE='libvirt-glib'
2687 VERSION='0.0.2'
2696 VERSION='0.0.4'
26882697
26892698
26902699 cat >>confdefs.h <<_ACEOF
28092818 AM_BACKSLASH='\'
28102819
28112820
2812 LIBVIRT_REQUIRED=0.9.4
2821 LIBVIRT_REQUIRED=0.9.7
28132822 GLIB2_REQUIRED=2.10.0
28142823 GOBJECT2_REQUIRED=2.10.0
28152824 GIO_REQUIRED=2.10.0
1169411703 $as_echo "#define _GNU_SOURCE /**/" >>confdefs.h
1169511704
1169611705
11706 # Autoconf 2.61a.99 and earlier don't support linking a file only
11707 # in VPATH builds. But since GNUmakefile is for maintainer use
11708 # only, it does not matter if we skip the link with older autoconf.
11709 # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
11710 # builds, so use a shell variable to bypass this.
11711 GNUmakefile=GNUmakefile
11712 ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
11713
11714
1169711715
1169811716
1169911717 # Check whether --enable-compile-warnings was given.
1246612484
1246712485
1246812486
12487
1246912488 # Extract the first word of "gtkdoc-check", so it can be a program name with args.
1247012489 set dummy gtkdoc-check; ac_word=$2
1247112490 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1262312642 else
1262412643 as_fn_error $? "You need to have gtk-doc >= 1.10 installed to build $PACKAGE_NAME" "$LINENO" 5
1262512644 fi
12645 if test "x$PACKAGE_NAME" != "xglib"; then
12646
12647 pkg_failed=no
12648 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
12649 $as_echo_n "checking for GTKDOC_DEPS... " >&6; }
12650
12651 if test -n "$GTKDOC_DEPS_CFLAGS"; then
12652 pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
12653 elif test -n "$PKG_CONFIG"; then
12654 if test -n "$PKG_CONFIG" && \
12655 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
12656 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
12657 ac_status=$?
12658 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12659 test $ac_status = 0; }; then
12660 pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
12661 else
12662 pkg_failed=yes
12663 fi
12664 else
12665 pkg_failed=untried
12666 fi
12667 if test -n "$GTKDOC_DEPS_LIBS"; then
12668 pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
12669 elif test -n "$PKG_CONFIG"; then
12670 if test -n "$PKG_CONFIG" && \
12671 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
12672 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
12673 ac_status=$?
12674 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12675 test $ac_status = 0; }; then
12676 pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
12677 else
12678 pkg_failed=yes
12679 fi
12680 else
12681 pkg_failed=untried
12682 fi
12683
12684
12685
12686 if test $pkg_failed = yes; then
12687 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12688 $as_echo "no" >&6; }
12689
12690 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12691 _pkg_short_errors_supported=yes
12692 else
12693 _pkg_short_errors_supported=no
12694 fi
12695 if test $_pkg_short_errors_supported = yes; then
12696 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
12697 else
12698 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
12699 fi
12700 # Put the nasty error message in config.log where it belongs
12701 echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
12702
12703 as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0) were not met:
12704
12705 $GTKDOC_DEPS_PKG_ERRORS
12706
12707 Consider adjusting the PKG_CONFIG_PATH environment variable if you
12708 installed software in a non-standard prefix.
12709
12710 Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
12711 and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
12712 See the pkg-config man page for more details." "$LINENO" 5
12713
12714 elif test $pkg_failed = untried; then
12715 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12716 $as_echo "no" >&6; }
12717 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12718 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12719 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12720 is in your PATH or set the PKG_CONFIG environment variable to the full
12721 path to pkg-config.
12722
12723 Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
12724 and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
12725 See the pkg-config man page for more details.
12726
12727 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12728 See \`config.log' for more details" "$LINENO" 5; }
12729
12730 else
12731 GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
12732 GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
12733 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12734 $as_echo "yes" >&6; }
12735
12736 fi
12737 fi
1262612738 fi
1262712739
1262812740 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
1269012802 GTK_DOC_USE_REBASE_FALSE=
1269112803 fi
1269212804
12805
12806
12807 # Setup GLIB_MKENUMS to use glib-mkenums even if GLib is uninstalled.
12808 GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
1269312809
1269412810
1269512811 CYGWIN_EXTRA_LDFLAGS=
1287112987 fi
1287212988 if test "$PYTHON_VERSION" != ""
1287312989 then
12874 if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
12875 -d $with_python/lib/python$PYTHON_VERSION/site-packages
12990 if test -r $with_python/include/python$PYTHON_VERSION/Python.h && \
12991 test -d $with_python/lib/python$PYTHON_VERSION/site-packages
1287612992 then
1287712993 PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
1287812994 PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
1368613802 # report actual input values of CONFIG_FILES etc. instead of their
1368713803 # values after options handling.
1368813804 ac_log="
13689 This file was extended by libvirt-glib $as_me 0.0.2, which was
13805 This file was extended by libvirt-glib $as_me 0.0.4, which was
1369013806 generated by GNU Autoconf 2.68. Invocation command line was
1369113807
1369213808 CONFIG_FILES = $CONFIG_FILES
1371313829 # Files that config.status was made for.
1371413830 config_files="$ac_config_files"
1371513831 config_headers="$ac_config_headers"
13832 config_links="$ac_config_links"
1371613833 config_commands="$ac_config_commands"
1371713834
1371813835 _ACEOF
1374313860 Configuration headers:
1374413861 $config_headers
1374513862
13863 Configuration links:
13864 $config_links
13865
1374613866 Configuration commands:
1374713867 $config_commands
1374813868
1375213872 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1375313873 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1375413874 ac_cs_version="\\
13755 libvirt-glib config.status 0.0.2
13875 libvirt-glib config.status 0.0.4
1375613876 configured by $0, generated by GNU Autoconf 2.68,
1375713877 with options \\"\$ac_cs_config\\"
1375813878
1415114271
1415214272
1415314273
14274 GNUmakefile=$GNUmakefile
1415414275
1415514276 _ACEOF
1415614277
1416314284 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
1416414285 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
1416514286 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
14287 "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;;
1416614288 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
1416714289 "libvirt-glib/Makefile") CONFIG_FILES="$CONFIG_FILES libvirt-glib/Makefile" ;;
1416814290 "libvirt-gconfig/Makefile") CONFIG_FILES="$CONFIG_FILES libvirt-gconfig/Makefile" ;;
1419314315 if $ac_need_defaults; then
1419414316 test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
1419514317 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
14318 test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
1419614319 test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
1419714320 fi
1419814321
1449014613 fi # test -n "$CONFIG_HEADERS"
1449114614
1449214615
14493 eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
14616 eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS"
1449414617 shift
1449514618 for ac_tag
1449614619 do
1476714890 }
1476814891 s/.*/./; q'`/stamp-h$_am_stamp_count
1476914892 ;;
14770
14893 :L)
14894 #
14895 # CONFIG_LINK
14896 #
14897
14898 if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
14899 :
14900 else
14901 # Prefer the file from the source tree if names are identical.
14902 if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
14903 ac_source=$srcdir/$ac_source
14904 fi
14905
14906 { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
14907 $as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
14908
14909 if test ! -r "$ac_source"; then
14910 as_fn_error $? "$ac_source: file not found" "$LINENO" 5
14911 fi
14912 rm -f "$ac_file"
14913
14914 # Try a relative symlink, then a hard link, then a copy.
14915 case $ac_source in
14916 [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
14917 *) ac_rel_source=$ac_top_build_prefix$ac_source ;;
14918 esac
14919 ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
14920 ln "$ac_source" "$ac_file" 2>/dev/null ||
14921 cp -p "$ac_source" "$ac_file" ||
14922 as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
14923 fi
14924 ;;
1477114925 :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
1477214926 $as_echo "$as_me: executing $ac_file commands" >&6;}
1477314927 ;;
0 AC_INIT(libvirt-glib, 0.0.2)
0 AC_INIT(libvirt-glib, 0.0.4)
11 AC_CONFIG_SRCDIR(libvirt-glib/libvirt-glib-main.c)
22 AC_CONFIG_AUX_DIR([build-aux])
33 AM_CONFIG_HEADER(config.h)
88
99 AM_SILENT_RULES([yes])
1010
11 LIBVIRT_REQUIRED=0.9.4
11 LIBVIRT_REQUIRED=0.9.7
1212 GLIB2_REQUIRED=2.10.0
1313 GOBJECT2_REQUIRED=2.10.0
1414 GIO_REQUIRED=2.10.0
3939
4040 AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions])
4141
42 # Autoconf 2.61a.99 and earlier don't support linking a file only
43 # in VPATH builds. But since GNUmakefile is for maintainer use
44 # only, it does not matter if we skip the link with older autoconf.
45 # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
46 # builds, so use a shell variable to bypass this.
47 GNUmakefile=GNUmakefile
48 m4_if(m4_version_compare([2.61a.100],
49 m4_defn([m4_PACKAGE_VERSION])), [1], [],
50 [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
51 [GNUmakefile=$GNUmakefile])])
52
4253 LIBVIRT_GLIB_COMPILE_WARNINGS([maximum])
4354
4455 PKG_CHECK_MODULES(LIBVIRT, libvirt >= $LIBVIRT_REQUIRED)
4960 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED)
5061
5162 GTK_DOC_CHECK([1.10],[--flavour no-tmpl])
63
64 # Setup GLIB_MKENUMS to use glib-mkenums even if GLib is uninstalled.
65 GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
66 AC_SUBST(GLIB_MKENUMS)
5267
5368 dnl Extra link-time flags for Cygwin.
5469 dnl Copied from libxml2 configure.in, but I removed mingw changes
133148 fi
134149 if test "$PYTHON_VERSION" != ""
135150 then
136 if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
137 -d $with_python/lib/python$PYTHON_VERSION/site-packages
151 if test -r $with_python/include/python$PYTHON_VERSION/Python.h && \
152 test -d $with_python/lib/python$PYTHON_VERSION/site-packages
138153 then
139154 PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
140155 PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
128128 GIO2_LIBS = @GIO2_LIBS@
129129 GLIB2_CFLAGS = @GLIB2_CFLAGS@
130130 GLIB2_LIBS = @GLIB2_LIBS@
131 GLIB_MKENUMS = @GLIB_MKENUMS@
131132 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
132133 GOBJECT2_LIBS = @GOBJECT2_LIBS@
133134 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
136137 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
137138 GTHREAD2_LIBS = @GTHREAD2_LIBS@
138139 GTKDOC_CHECK = @GTKDOC_CHECK@
140 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
141 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
139142 GTKDOC_MKPDF = @GTKDOC_MKPDF@
140143 GTKDOC_REBASE = @GTKDOC_REBASE@
141144 G_IR_COMPILER = @G_IR_COMPILER@
0 <SECTION>
1 <FILE>libvirt-gconfig-enum-types</FILE>
2 GVIR_CONFIG_TYPE_DOMAIN_CHANNEL_TARGET_TYPE
3 GVIR_CONFIG_TYPE_DOMAIN_CLOCK_OFFSET
4 GVIR_CONFIG_TYPE_DOMAIN_CONSOLE_TARGET_TYPE
5 GVIR_CONFIG_TYPE_DOMAIN_DISK_BUS
6 GVIR_CONFIG_TYPE_DOMAIN_DISK_GUEST_DEVICE_TYPE
7 GVIR_CONFIG_TYPE_DOMAIN_DISK_SNAPSHOT_TYPE
8 GVIR_CONFIG_TYPE_DOMAIN_DISK_TYPE
9 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_ACCESS_TYPE
10 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_DRIVER_TYPE
11 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_TYPE
12 GVIR_CONFIG_TYPE_DOMAIN_INPUT_BUS
13 GVIR_CONFIG_TYPE_DOMAIN_INPUT_DEVICE_TYPE
14 GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_LINK_STATE
15 GVIR_CONFIG_TYPE_DOMAIN_LIFECYCLE_ACTION
16 GVIR_CONFIG_TYPE_DOMAIN_LIFECYCLE_EVENT
17 GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON_MODEL
18 GVIR_CONFIG_TYPE_DOMAIN_OS_BOOT_DEVICE
19 GVIR_CONFIG_TYPE_DOMAIN_OS_SM_BIOS_MODE
20 GVIR_CONFIG_TYPE_DOMAIN_OS_TYPE
21 GVIR_CONFIG_TYPE_DOMAIN_SECLABEL_TYPE
22 GVIR_CONFIG_TYPE_DOMAIN_SOUND_MODEL
23 GVIR_CONFIG_TYPE_DOMAIN_VIDEO_MODEL
24 GVIR_CONFIG_TYPE_DOMAIN_VIRT_TYPE
25 GVIR_CONFIG_TYPE_STORAGE_POOL_TYPE
26 <SUBSECTION Standard>
27 gvir_config_domain_channel_target_type_get_type
28 gvir_config_domain_clock_offset_get_type
29 gvir_config_domain_console_target_type_get_type
30 gvir_config_domain_disk_bus_get_type
31 gvir_config_domain_disk_guest_device_type_get_type
32 gvir_config_domain_disk_snapshot_type_get_type
33 gvir_config_domain_disk_type_get_type
34 gvir_config_domain_filesys_access_type_get_type
35 gvir_config_domain_filesys_driver_type_get_type
36 gvir_config_domain_filesys_type_get_type
37 gvir_config_domain_input_bus_get_type
38 gvir_config_domain_input_device_type_get_type
39 gvir_config_domain_interface_link_state_get_type
40 gvir_config_domain_lifecycle_action_get_type
41 gvir_config_domain_lifecycle_event_get_type
42 gvir_config_domain_memballoon_model_get_type
43 gvir_config_domain_os_boot_device_get_type
44 gvir_config_domain_os_sm_bios_mode_get_type
45 gvir_config_domain_os_type_get_type
46 gvir_config_domain_seclabel_type_get_type
47 gvir_config_domain_sound_model_get_type
48 gvir_config_domain_video_model_get_type
49 gvir_config_domain_virt_type_get_type
50 gvir_config_storage_pool_type_get_type
51 </SECTION>
52
0 gvir_config_domain_channel_target_type_get_type
1 gvir_config_domain_clock_offset_get_type
2 gvir_config_domain_console_target_type_get_type
3 gvir_config_domain_disk_bus_get_type
4 gvir_config_domain_disk_guest_device_type_get_type
5 gvir_config_domain_disk_snapshot_type_get_type
6 gvir_config_domain_disk_type_get_type
7 gvir_config_domain_filesys_access_type_get_type
8 gvir_config_domain_filesys_driver_type_get_type
9 gvir_config_domain_filesys_type_get_type
10 gvir_config_domain_input_bus_get_type
11 gvir_config_domain_input_device_type_get_type
12 gvir_config_domain_interface_link_state_get_type
13 gvir_config_domain_lifecycle_action_get_type
14 gvir_config_domain_lifecycle_event_get_type
15 gvir_config_domain_memballoon_model_get_type
16 gvir_config_domain_os_boot_device_get_type
17 gvir_config_domain_os_sm_bios_mode_get_type
18 gvir_config_domain_os_type_get_type
19 gvir_config_domain_seclabel_type_get_type
20 gvir_config_domain_sound_model_get_type
21 gvir_config_domain_video_model_get_type
22 gvir_config_domain_virt_type_get_type
23 gvir_config_storage_pool_type_get_type
3838 $(top_builddir)/libvirt-gconfig/libvirt-gconfig-1.0.la
3939
4040 include $(top_srcdir)/gtk-doc.make
41
9595 GIO2_LIBS = @GIO2_LIBS@
9696 GLIB2_CFLAGS = @GLIB2_CFLAGS@
9797 GLIB2_LIBS = @GLIB2_LIBS@
98 GLIB_MKENUMS = @GLIB_MKENUMS@
9899 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
99100 GOBJECT2_LIBS = @GOBJECT2_LIBS@
100101 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
103104 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
104105 GTHREAD2_LIBS = @GTHREAD2_LIBS@
105106 GTKDOC_CHECK = @GTKDOC_CHECK@
107 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
108 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
106109 GTKDOC_MKPDF = @GTKDOC_MKPDF@
107110 GTKDOC_REBASE = @GTKDOC_REBASE@
108111 G_IR_COMPILER = @G_IR_COMPILER@
+0
-10
docs/libvirt-gconfig/html/Libvirt-gconfig.devhelp less more
0 <?xml version="1.0" encoding="utf-8" standalone="no"?>
1 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
2 <book xmlns="http://www.devhelp.net/book" title="Libvirt-gconfig Reference Manual" link="index.html" author="" name="Libvirt-gconfig">
3 <chapters>
4 <sub name="Libvirt-gconfig" link="ch01.html"/>
5 <sub name="Object Hierarchy" link="object-tree.html"/>
6 <sub name="API Index" link="api-index-full.html"/>
7 </chapters>
8 <functions/>
9 </book>
66 <link rel="home" href="index.html" title="Libvirt-gconfig Reference Manual">
77 <link rel="up" href="index.html" title="Libvirt-gconfig Reference Manual">
88 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
9 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1010 <link rel="stylesheet" href="style.css" type="text/css">
1111 </head>
1212 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
13 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
14 <tr valign="middle">
1415 <td><a accesskey="p" href="object-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1516 <td> </td>
1617 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1718 <th width="100%" align="center">Libvirt-gconfig Reference Manual</th>
1819 <td> </td>
19 </tr></table>
20 </tr>
21 <tr><td colspan="5" class="shortcuts"><a class="shortcut" href="#idxC">C</a></td></tr>
22 </table>
2023 <div class="index">
2124 <div class="titlepage"><div><div><h2 class="title">
2225 <a name="api-index-full"></a>API Index</h2></div></div></div>
23 <a name="idx"></a>
26 <a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
27 <dt>
28 GVIR_CONFIG_TYPE_DOMAIN_CHANNEL_TARGET_TYPE, macro in libvirt-gconfig-enum-types
29 </dt>
30 <dd></dd>
31 <dt>
32 GVIR_CONFIG_TYPE_DOMAIN_CLOCK_OFFSET, macro in libvirt-gconfig-enum-types
33 </dt>
34 <dd></dd>
35 <dt>
36 GVIR_CONFIG_TYPE_DOMAIN_CONSOLE_TARGET_TYPE, macro in libvirt-gconfig-enum-types
37 </dt>
38 <dd></dd>
39 <dt>
40 GVIR_CONFIG_TYPE_DOMAIN_DISK_BUS, macro in libvirt-gconfig-enum-types
41 </dt>
42 <dd></dd>
43 <dt>
44 GVIR_CONFIG_TYPE_DOMAIN_DISK_GUEST_DEVICE_TYPE, macro in libvirt-gconfig-enum-types
45 </dt>
46 <dd></dd>
47 <dt>
48 GVIR_CONFIG_TYPE_DOMAIN_DISK_SNAPSHOT_TYPE, macro in libvirt-gconfig-enum-types
49 </dt>
50 <dd></dd>
51 <dt>
52 GVIR_CONFIG_TYPE_DOMAIN_DISK_TYPE, macro in libvirt-gconfig-enum-types
53 </dt>
54 <dd></dd>
55 <dt>
56 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_ACCESS_TYPE, macro in libvirt-gconfig-enum-types
57 </dt>
58 <dd></dd>
59 <dt>
60 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_DRIVER_TYPE, macro in libvirt-gconfig-enum-types
61 </dt>
62 <dd></dd>
63 <dt>
64 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_TYPE, macro in libvirt-gconfig-enum-types
65 </dt>
66 <dd></dd>
67 <dt>
68 GVIR_CONFIG_TYPE_DOMAIN_INPUT_BUS, macro in libvirt-gconfig-enum-types
69 </dt>
70 <dd></dd>
71 <dt>
72 GVIR_CONFIG_TYPE_DOMAIN_INPUT_DEVICE_TYPE, macro in libvirt-gconfig-enum-types
73 </dt>
74 <dd></dd>
75 <dt>
76 GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_LINK_STATE, macro in libvirt-gconfig-enum-types
77 </dt>
78 <dd></dd>
79 <dt>
80 GVIR_CONFIG_TYPE_DOMAIN_LIFECYCLE_ACTION, macro in libvirt-gconfig-enum-types
81 </dt>
82 <dd></dd>
83 <dt>
84 GVIR_CONFIG_TYPE_DOMAIN_LIFECYCLE_EVENT, macro in libvirt-gconfig-enum-types
85 </dt>
86 <dd></dd>
87 <dt>
88 GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON_MODEL, macro in libvirt-gconfig-enum-types
89 </dt>
90 <dd></dd>
91 <dt>
92 GVIR_CONFIG_TYPE_DOMAIN_OS_BOOT_DEVICE, macro in libvirt-gconfig-enum-types
93 </dt>
94 <dd></dd>
95 <dt>
96 GVIR_CONFIG_TYPE_DOMAIN_OS_SM_BIOS_MODE, macro in libvirt-gconfig-enum-types
97 </dt>
98 <dd></dd>
99 <dt>
100 GVIR_CONFIG_TYPE_DOMAIN_OS_TYPE, macro in libvirt-gconfig-enum-types
101 </dt>
102 <dd></dd>
103 <dt>
104 GVIR_CONFIG_TYPE_DOMAIN_SECLABEL_TYPE, macro in libvirt-gconfig-enum-types
105 </dt>
106 <dd></dd>
107 <dt>
108 GVIR_CONFIG_TYPE_DOMAIN_SOUND_MODEL, macro in libvirt-gconfig-enum-types
109 </dt>
110 <dd></dd>
111 <dt>
112 GVIR_CONFIG_TYPE_DOMAIN_VIDEO_MODEL, macro in libvirt-gconfig-enum-types
113 </dt>
114 <dd></dd>
115 <dt>
116 GVIR_CONFIG_TYPE_DOMAIN_VIRT_TYPE, macro in libvirt-gconfig-enum-types
117 </dt>
118 <dd></dd>
119 <dt>
120 GVIR_CONFIG_TYPE_STORAGE_POOL_TYPE, macro in libvirt-gconfig-enum-types
121 </dt>
122 <dd></dd>
24123 </div>
25124 <div class="footer">
26125 <hr>
27 Generated by GTK-Doc V1.17</div>
126 Generated by GTK-Doc V1.18</div>
28127 </body>
29128 </html>
77 <link rel="up" href="index.html" title="Libvirt-gconfig Reference Manual">
88 <link rel="prev" href="index.html" title="Libvirt-gconfig Reference Manual">
99 <link rel="next" href="object-tree.html" title="Object Hierarchy">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2020 </tr></table>
2121 <div class="chapter">
2222 <div class="titlepage"><div><div><h2 class="title">
23 <a name="id410353"></a>Libvirt-gconfig</h2></div></div></div>
23 <a name="id486980"></a>Libvirt-gconfig</h2></div></div></div>
2424 <span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
2525 </div>
2626 <div class="footer">
2727 <hr>
28 Generated by GTK-Doc V1.17</div>
28 Generated by GTK-Doc V1.18</div>
2929 </body>
3030 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Libvirt-gconfig Reference Manual">
77 <link rel="next" href="ch01.html" title="Libvirt-gconfig">
8 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
8 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
99 <link rel="stylesheet" href="style.css" type="text/css">
1010 </head>
1111 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2222 </div>
2323 <div class="footer">
2424 <hr>
25 Generated by GTK-Doc V1.17</div>
25 Generated by GTK-Doc V1.18</div>
2626 </body>
2727 </html>
77 <link rel="up" href="index.html" title="Libvirt-gconfig Reference Manual">
88 <link rel="prev" href="ch01.html" title="Libvirt-gconfig">
99 <link rel="next" href="api-index-full.html" title="API Index">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2626 </div>
2727 <div class="footer">
2828 <hr>
29 Generated by GTK-Doc V1.17</div>
29 Generated by GTK-Doc V1.18</div>
3030 </body>
3131 </html>
4040 $(top_builddir)/libvirt-glib/libvirt-glib-1.0.la
4141
4242 include $(top_srcdir)/gtk-doc.make
43
9595 GIO2_LIBS = @GIO2_LIBS@
9696 GLIB2_CFLAGS = @GLIB2_CFLAGS@
9797 GLIB2_LIBS = @GLIB2_LIBS@
98 GLIB_MKENUMS = @GLIB_MKENUMS@
9899 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
99100 GOBJECT2_LIBS = @GOBJECT2_LIBS@
100101 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
103104 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
104105 GTHREAD2_LIBS = @GTHREAD2_LIBS@
105106 GTKDOC_CHECK = @GTKDOC_CHECK@
107 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
108 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
106109 GTKDOC_MKPDF = @GTKDOC_MKPDF@
107110 GTKDOC_REBASE = @GTKDOC_REBASE@
108111 G_IR_COMPILER = @G_IR_COMPILER@
+0
-10
docs/libvirt-glib/html/Libvirt-glib.devhelp less more
0 <?xml version="1.0" encoding="utf-8" standalone="no"?>
1 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
2 <book xmlns="http://www.devhelp.net/book" title="Libvirt-glib Reference Manual" link="index.html" author="" name="Libvirt-glib">
3 <chapters>
4 <sub name="Libvirt-glib" link="ch01.html"/>
5 <sub name="Object Hierarchy" link="object-tree.html"/>
6 <sub name="API Index" link="api-index-full.html"/>
7 </chapters>
8 <functions/>
9 </book>
66 <link rel="home" href="index.html" title="Libvirt-glib Reference Manual">
77 <link rel="up" href="index.html" title="Libvirt-glib Reference Manual">
88 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
9 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1010 <link rel="stylesheet" href="style.css" type="text/css">
1111 </head>
1212 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2424 </div>
2525 <div class="footer">
2626 <hr>
27 Generated by GTK-Doc V1.17</div>
27 Generated by GTK-Doc V1.18</div>
2828 </body>
2929 </html>
77 <link rel="up" href="index.html" title="Libvirt-glib Reference Manual">
88 <link rel="prev" href="index.html" title="Libvirt-glib Reference Manual">
99 <link rel="next" href="object-tree.html" title="Object Hierarchy">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2020 </tr></table>
2121 <div class="chapter">
2222 <div class="titlepage"><div><div><h2 class="title">
23 <a name="id479404"></a>Libvirt-glib</h2></div></div></div>
23 <a name="id533095"></a>Libvirt-glib</h2></div></div></div>
2424 <span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
2525 </div>
2626 <div class="footer">
2727 <hr>
28 Generated by GTK-Doc V1.17</div>
28 Generated by GTK-Doc V1.18</div>
2929 </body>
3030 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Libvirt-glib Reference Manual">
77 <link rel="next" href="ch01.html" title="Libvirt-glib">
8 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
8 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
99 <link rel="stylesheet" href="style.css" type="text/css">
1010 </head>
1111 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2222 </div>
2323 <div class="footer">
2424 <hr>
25 Generated by GTK-Doc V1.17</div>
25 Generated by GTK-Doc V1.18</div>
2626 </body>
2727 </html>
77 <link rel="up" href="index.html" title="Libvirt-glib Reference Manual">
88 <link rel="prev" href="ch01.html" title="Libvirt-glib">
99 <link rel="next" href="api-index-full.html" title="API Index">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2626 </div>
2727 <div class="footer">
2828 <hr>
29 Generated by GTK-Doc V1.17</div>
29 Generated by GTK-Doc V1.18</div>
3030 </body>
3131 </html>
00 <SECTION>
11 <FILE>libvirt-gobject-enums</FILE>
2 <SUBSECTION Standard>
3 GVIR_TYPE_DOMAIN_START_FLAGS
24 GVIR_TYPE_DOMAIN_STATE
5 gvir_domain_start_flags_get_type
36 gvir_domain_state_get_type
47 </SECTION>
58
0 gvir_domain_start_flags_get_type
01 gvir_domain_state_get_type
4040 $(top_builddir)/libvirt-gobject/libvirt-gobject-1.0.la
4141
4242 include $(top_srcdir)/gtk-doc.make
43
9595 GIO2_LIBS = @GIO2_LIBS@
9696 GLIB2_CFLAGS = @GLIB2_CFLAGS@
9797 GLIB2_LIBS = @GLIB2_LIBS@
98 GLIB_MKENUMS = @GLIB_MKENUMS@
9899 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
99100 GOBJECT2_LIBS = @GOBJECT2_LIBS@
100101 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
103104 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
104105 GTHREAD2_LIBS = @GTHREAD2_LIBS@
105106 GTKDOC_CHECK = @GTKDOC_CHECK@
107 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
108 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
106109 GTKDOC_MKPDF = @GTKDOC_MKPDF@
107110 GTKDOC_REBASE = @GTKDOC_REBASE@
108111 G_IR_COMPILER = @G_IR_COMPILER@
+0
-10
docs/libvirt-gobject/html/Libvirt-gobject.devhelp less more
0 <?xml version="1.0" encoding="utf-8" standalone="no"?>
1 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
2 <book xmlns="http://www.devhelp.net/book" title="Libvirt-gobject Reference Manual" link="index.html" author="" name="Libvirt-gobject">
3 <chapters>
4 <sub name="Libvirt-gobject" link="ch01.html"/>
5 <sub name="Object Hierarchy" link="object-tree.html"/>
6 <sub name="API Index" link="api-index-full.html"/>
7 </chapters>
8 <functions/>
9 </book>
66 <link rel="home" href="index.html" title="Libvirt-gobject Reference Manual">
77 <link rel="up" href="index.html" title="Libvirt-gobject Reference Manual">
88 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
9 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1010 <link rel="stylesheet" href="style.css" type="text/css">
1111 </head>
1212 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
14 <tr valign="middle">
13 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
1514 <td><a accesskey="p" href="object-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1615 <td> </td>
1716 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1817 <th width="100%" align="center">Libvirt-gobject Reference Manual</th>
1918 <td> </td>
20 </tr>
21 <tr><td colspan="5" class="shortcuts">
22 <a class="shortcut" href="#idxD">D</a>
23  | 
24 <a class="shortcut" href="#idxT">T</a>
25 </td></tr>
26 </table>
19 </tr></table>
2720 <div class="index">
2821 <div class="titlepage"><div><div><h2 class="title">
2922 <a name="api-index-full"></a>API Index</h2></div></div></div>
30 <a name="idx"></a><a name="idxD"></a><h3 class="title">D</h3>
31 <dt>
32 gvir_domain_state_get_type, function in libvirt-gobject-enums
33 </dt>
34 <dd></dd>
35 <a name="idxT"></a><h3 class="title">T</h3>
36 <dt>
37 GVIR_TYPE_DOMAIN_STATE, macro in libvirt-gobject-enums
38 </dt>
39 <dd></dd>
23 <a name="idx"></a>
4024 </div>
4125 <div class="footer">
4226 <hr>
43 Generated by GTK-Doc V1.17</div>
27 Generated by GTK-Doc V1.18</div>
4428 </body>
4529 </html>
77 <link rel="up" href="index.html" title="Libvirt-gobject Reference Manual">
88 <link rel="prev" href="index.html" title="Libvirt-gobject Reference Manual">
99 <link rel="next" href="object-tree.html" title="Object Hierarchy">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2020 </tr></table>
2121 <div class="chapter">
2222 <div class="titlepage"><div><div><h2 class="title">
23 <a name="id382227"></a>Libvirt-gobject</h2></div></div></div>
23 <a name="id383591"></a>Libvirt-gobject</h2></div></div></div>
2424 <span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span><span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
2525 </div>
2626 <div class="footer">
2727 <hr>
28 Generated by GTK-Doc V1.17</div>
28 Generated by GTK-Doc V1.18</div>
2929 </body>
3030 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Libvirt-gobject Reference Manual">
77 <link rel="next" href="ch01.html" title="Libvirt-gobject">
8 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
8 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
99 <link rel="stylesheet" href="style.css" type="text/css">
1010 </head>
1111 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2222 </div>
2323 <div class="footer">
2424 <hr>
25 Generated by GTK-Doc V1.17</div>
25 Generated by GTK-Doc V1.18</div>
2626 </body>
2727 </html>
77 <link rel="up" href="index.html" title="Libvirt-gobject Reference Manual">
88 <link rel="prev" href="ch01.html" title="Libvirt-gobject">
99 <link rel="next" href="api-index-full.html" title="API Index">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2626 </div>
2727 <div class="footer">
2828 <hr>
29 Generated by GTK-Doc V1.17</div>
29 Generated by GTK-Doc V1.18</div>
3030 </body>
3131 </html>
00
11 noinst_PROGRAMS = event-test conn-test
22
3 EXTRA_DIST = event-test.py
3 EXTRA_DIST = event-test.py config-demo.py
44
55 event_test_CFLAGS = \
66 $(WARN_CFLAGS) \
132132 GIO2_LIBS = @GIO2_LIBS@
133133 GLIB2_CFLAGS = @GLIB2_CFLAGS@
134134 GLIB2_LIBS = @GLIB2_LIBS@
135 GLIB_MKENUMS = @GLIB_MKENUMS@
135136 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
136137 GOBJECT2_LIBS = @GOBJECT2_LIBS@
137138 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
140141 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
141142 GTHREAD2_LIBS = @GTHREAD2_LIBS@
142143 GTKDOC_CHECK = @GTKDOC_CHECK@
144 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
145 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
143146 GTKDOC_MKPDF = @GTKDOC_MKPDF@
144147 GTKDOC_REBASE = @GTKDOC_REBASE@
145148 G_IR_COMPILER = @G_IR_COMPILER@
254257 top_build_prefix = @top_build_prefix@
255258 top_builddir = @top_builddir@
256259 top_srcdir = @top_srcdir@
257 EXTRA_DIST = event-test.py
260 EXTRA_DIST = event-test.py config-demo.py
258261 event_test_CFLAGS = \
259262 $(WARN_CFLAGS) \
260263 $(GLIB2_CFLAGS) \
0 #!/usr/bin/python
1
2 from gi.repository import LibvirtGConfig;
3
4 domain = LibvirtGConfig.Domain.new()
5 domain.set_name("foo")
6 domain.set_memory(1024*1024*1024)
7 domain.set_vcpus(2)
8 domain.set_lifecycle(LibvirtGConfig.DomainLifecycleEvent.ON_POWEROFF,
9 LibvirtGConfig.DomainLifecycleAction.DESTROY)
10
11 clock = LibvirtGConfig.DomainClock.new()
12 clock.set_offset(LibvirtGConfig.DomainClockOffset.UTC)
13 domain.set_clock(clock)
14
15 os = LibvirtGConfig.DomainOs.new()
16 os.set_os_type(LibvirtGConfig.DomainOsType.HVM)
17 os.set_arch("x86_64")
18 devices = [ LibvirtGConfig.DomainOsBootDevice.CDROM,
19 LibvirtGConfig.DomainOsBootDevice.NETWORK ]
20 os.set_boot_devices(devices)
21 domain.set_os(os)
22
23 disk = LibvirtGConfig.DomainDisk.new()
24 disk.set_type(LibvirtGConfig.DomainDiskType.FILE)
25 disk.set_guest_device_type(LibvirtGConfig.DomainDiskGuestDeviceType.DISK)
26 disk.set_source("/tmp/foo/bar")
27 disk.set_driver_name("qemu")
28 disk.set_driver_type("qcow2")
29 disk.set_target_bus(LibvirtGConfig.DomainDiskBus.IDE)
30 disk.set_target_dev("hda")
31 domain.add_device(disk)
32
33 interface = LibvirtGConfig.DomainInterfaceNetwork.new()
34 interface.set_source("default")
35 domain.add_device(interface)
36
37 interface = LibvirtGConfig.DomainInterfaceUser.new()
38 interface.set_ifname("eth0")
39 interface.set_link_state(LibvirtGConfig.DomainInterfaceLinkState.UP)
40 interface.set_mac("00:11:22:33:44:55")
41 interface.set_model("foo")
42 domain.add_device(interface)
43
44 input = LibvirtGConfig.DomainInput.new()
45 input.set_device_type(LibvirtGConfig.DomainInputDeviceType.TABLET)
46 input.set_bus(LibvirtGConfig.DomainInputBus.USB)
47 domain.add_device(input)
48
49 graphics = LibvirtGConfig.DomainGraphicsSpice.new()
50 graphics.set_port(1234)
51 domain.add_device(graphics)
52
53 video = LibvirtGConfig.DomainVideo.new()
54 video.set_model(LibvirtGConfig.DomainVideoModel.QXL)
55 domain.add_device(video)
56
57 console = LibvirtGConfig.DomainConsole.new()
58 pty = LibvirtGConfig.DomainChardevSourcePty.new()
59 console.set_source(pty)
60 domain.add_device(console)
61
62 print domain.to_xml()
63
64
65 pool = LibvirtGConfig.StoragePool.new()
66 pool.set_pool_type(LibvirtGConfig.StoragePoolType.DIR)
67
68 pool_source = LibvirtGConfig.StoragePoolSource.new()
69 pool_source.set_directory("/foo/bar")
70 pool.set_source(pool_source)
71
72 perms = LibvirtGConfig.StoragePermissions.new()
73 perms.set_owner(1001)
74 perms.set_group(1005)
75 perms.set_mode(0744)
76 perms.set_label("virt_image_t")
77
78 pool_target = LibvirtGConfig.StoragePoolTarget.new()
79 pool_target.set_path("/dev/disk/by-path")
80 pool_target.set_permissions(perms)
81 pool.set_target(pool_target)
82
83 print pool.to_xml()
84
85
86 vol = LibvirtGConfig.StorageVol.new()
87 vol.set_name("my-vol")
88 vol.set_capacity(0xdeadbeef)
89
90 vol_target = LibvirtGConfig.StorageVolTarget.new()
91 vol_target.set_format("qcow2")
92 vol_target.set_permissions(perms)
93 vol.set_target(vol_target)
94
95 print vol.to_xml()
00 /*
11 * conn-test.c: test libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
7171
7272 return 0;
7373 }
74
55 #include <libvirt/libvirt.h>
66 #include <libvirt-glib/libvirt-glib.h>
77
8 #define DEBUG0(fmt) printf("%s:%d :: " fmt "\n", __FUNCTION__, __LINE__)
9 #define DEBUG(fmt, ...) printf("%s:%d: " fmt "\n", __FUNCTION__, __LINE__, __VA_ARGS__)
108 #define STREQ(a,b) (strcmp((a),(b)) == 0)
119
1210 #ifndef ATTRIBUTE_UNUSED
170168 return -1;
171169 }
172170
173 DEBUG0("Registering domain event cbs");
171 g_debug("Registering domain event cbs");
174172
175173 /* Add 2 callbacks to prove this works with more than just one */
176174 virConnectDomainEventRegister(dconn, myDomainEventCallback1, NULL, NULL);
184182 printf("done\n");
185183 return 0;
186184 }
187
5858
5959 if __name__ == "__main__":
6060 main()
61
00 SUBDIRS = . tests
11
2 EXTRA_DIST = libvirt-gconfig.sym
2 EXTRA_DIST = \
3 libvirt-gconfig.sym \
4 libvirt-gconfig-enum-types.h.template \
5 libvirt-gconfig-enum-types.c.template
36
47 lib_LTLIBRARIES = libvirt-gconfig-1.0.la
58
69 GCONFIG_HEADER_FILES = \
710 libvirt-gconfig.h \
11 libvirt-gconfig-main.h \
812 libvirt-gconfig-object.h \
913 libvirt-gconfig-capabilities.h \
1014 libvirt-gconfig-domain.h \
15 libvirt-gconfig-domain-channel.h \
16 libvirt-gconfig-domain-chardev.h \
17 libvirt-gconfig-domain-chardev-source.h \
18 libvirt-gconfig-domain-chardev-source-pty.h \
19 libvirt-gconfig-domain-clock.h \
20 libvirt-gconfig-domain-console.h \
21 libvirt-gconfig-domain-device.h \
22 libvirt-gconfig-domain-disk.h \
23 libvirt-gconfig-domain-filesys.h \
24 libvirt-gconfig-domain-graphics.h \
25 libvirt-gconfig-domain-graphics-sdl.h \
26 libvirt-gconfig-domain-graphics-spice.h \
27 libvirt-gconfig-domain-graphics-vnc.h \
28 libvirt-gconfig-domain-input.h \
29 libvirt-gconfig-domain-interface.h \
30 libvirt-gconfig-domain-interface-bridge.h \
31 libvirt-gconfig-domain-interface-network.h \
32 libvirt-gconfig-domain-interface-user.h \
33 libvirt-gconfig-domain-memballoon.h \
34 libvirt-gconfig-domain-os.h \
35 libvirt-gconfig-domain-parallel.h \
36 libvirt-gconfig-domain-seclabel.h \
37 libvirt-gconfig-domain-serial.h \
1138 libvirt-gconfig-domain-snapshot.h \
39 libvirt-gconfig-domain-sound.h \
40 libvirt-gconfig-domain-timer.h \
41 libvirt-gconfig-domain-video.h \
1242 libvirt-gconfig-helpers.h \
1343 libvirt-gconfig-interface.h \
1444 libvirt-gconfig-network.h \
1545 libvirt-gconfig-network-filter.h \
1646 libvirt-gconfig-node-device.h \
1747 libvirt-gconfig-secret.h \
48 libvirt-gconfig-storage-permissions.h \
1849 libvirt-gconfig-storage-pool.h \
19 libvirt-gconfig-storage-vol.h
50 libvirt-gconfig-storage-pool-source.h \
51 libvirt-gconfig-storage-pool-target.h \
52 libvirt-gconfig-storage-vol.h \
53 libvirt-gconfig-storage-vol-backing-store.h \
54 libvirt-gconfig-storage-vol-target.h
2055 noinst_HEADERS = \
21 libvirt-gconfig-helpers-private.h
56 libvirt-gconfig-private.h \
57 libvirt-gconfig-domain-device-private.h \
58 libvirt-gconfig-helpers-private.h \
59 libvirt-gconfig-object-private.h \
60 libvirt-gconfig-xml-doc.h
2261 GCONFIG_SOURCE_FILES = \
2362 libvirt-gconfig-object.c \
63 libvirt-gconfig-main.c \
2464 libvirt-gconfig-capabilities.c \
2565 libvirt-gconfig-domain.c \
66 libvirt-gconfig-domain-channel.c \
67 libvirt-gconfig-domain-chardev.c \
68 libvirt-gconfig-domain-chardev-source.c \
69 libvirt-gconfig-domain-chardev-source-pty.c \
70 libvirt-gconfig-domain-clock.c \
71 libvirt-gconfig-domain-console.c \
72 libvirt-gconfig-domain-device.c \
73 libvirt-gconfig-domain-disk.c \
74 libvirt-gconfig-domain-filesys.c \
75 libvirt-gconfig-domain-graphics.c \
76 libvirt-gconfig-domain-graphics-sdl.c \
77 libvirt-gconfig-domain-graphics-spice.c \
78 libvirt-gconfig-domain-graphics-vnc.c \
79 libvirt-gconfig-domain-input.c \
80 libvirt-gconfig-domain-interface.c \
81 libvirt-gconfig-domain-interface-bridge.c \
82 libvirt-gconfig-domain-interface-network.c \
83 libvirt-gconfig-domain-interface-user.c \
84 libvirt-gconfig-domain-memballoon.c \
85 libvirt-gconfig-domain-os.c \
86 libvirt-gconfig-domain-parallel.c \
87 libvirt-gconfig-domain-seclabel.c \
88 libvirt-gconfig-domain-serial.c \
2689 libvirt-gconfig-domain-snapshot.c \
90 libvirt-gconfig-domain-sound.c \
91 libvirt-gconfig-domain-timer.c \
92 libvirt-gconfig-domain-video.c \
2793 libvirt-gconfig-helpers.c \
2894 libvirt-gconfig-interface.c \
2995 libvirt-gconfig-network.c \
3096 libvirt-gconfig-network-filter.c \
3197 libvirt-gconfig-node-device.c \
3298 libvirt-gconfig-secret.c \
99 libvirt-gconfig-storage-permissions.c \
33100 libvirt-gconfig-storage-pool.c \
34 libvirt-gconfig-storage-vol.c
101 libvirt-gconfig-storage-pool-source.c \
102 libvirt-gconfig-storage-pool-target.c \
103 libvirt-gconfig-storage-vol.c \
104 libvirt-gconfig-storage-vol-backing-store.c \
105 libvirt-gconfig-storage-vol-target.c \
106 libvirt-gconfig-xml-doc.c
35107
36108 libvirt_gconfig_1_0_ladir = $(includedir)/libvirt-gconfig-1.0/libvirt-gconfig
37109 libvirt_gconfig_1_0_la_HEADERS = \
38110 $(GCONFIG_HEADER_FILES)
111 nodist_libvirt_gconfig_1_0_la_HEADERS = \
112 $(builddir)/libvirt-gconfig-enum-types.h
39113 libvirt_gconfig_1_0_la_SOURCES = \
40114 $(libvirt_gconfig_1_0_la_HEADERS) \
41115 $(GCONFIG_SOURCE_FILES)
116 nodist_libvirt_gconfig_1_0_la_SOURCES = \
117 $(builddir)/libvirt-gconfig-enum-types.c
42118 libvirt_gconfig_1_0_la_CFLAGS = \
119 -DG_LOG_DOMAIN="\"Libvirt.GConfig\"" \
43120 -DDATADIR="\"$(datadir)\"" \
44121 -DLIBVIRT_GCONFIG_BUILD \
45122 $(COVERAGE_CFLAGS) \
59136 -Wl,--version-script=$(srcdir)/libvirt-gconfig.sym \
60137 -version-info $(LIBVIRT_GLIB_VERSION_INFO)
61138
139 BUILT_SOURCES = \
140 libvirt-gconfig-enum-types.c \
141 libvirt-gconfig-enum-types.h
142
143 CLEANFILES = $(BUILT_SOURCES)
144
145 libvirt-gconfig-enum-types.h: $(GCONFIG_HEADER_FILES) libvirt-gconfig-enum-types.h.template
146 $(AM_V_GEN) ( $(GLIB_MKENUMS) --template $(srcdir)/libvirt-gconfig-enum-types.h.template $(GCONFIG_HEADER_FILES:%=$(srcdir)/%) ) | \
147 sed -e "s/G_TYPE_VIR_CONFIG/GVIR_CONFIG_TYPE/" -e "s/g_vir/gvir/" > libvirt-gconfig-enum-types.h
148
149 libvirt-gconfig-enum-types.c: $(GCONFIG_HEADER_FILES) libvirt-gconfig-enum-types.c.template
150 $(AM_V_GEN) ( $(GLIB_MKENUMS) --template $(srcdir)/libvirt-gconfig-enum-types.c.template $(GCONFIG_HEADER_FILES:%=$(srcdir)/%) ) | \
151 sed -e "s/G_TYPE_VIR_CONFIG/GVIR_CONFIG_TYPE/" -e "s/g_vir/gvir/" > libvirt-gconfig-enum-types.c
152
62153 if WITH_GOBJECT_INTROSPECTION
63154
64155 LibvirtGConfig-1.0.gir: libvirt-gconfig-1.0.la $(G_IR_SCANNER) Makefile.am
69160 --nsversion 1.0 \
70161 --include GObject-2.0 \
71162 --identifier-prefix=GVirConfig \
72 --symbol-prefix=gvir \
163 --symbol-prefix=gvir_config \
73164 --library=$(builddir)/libvirt-gconfig-1.0.la \
74165 --output $@ \
166 -I$(top_builddir) \
75167 -I$(top_srcdir) \
76 -I$(top_builddir) \
77 $(LIBXML2_CFLAGS) \
78168 --verbose \
79 --pkg=gobject-2.0 \
80169 --c-include="libvirt-gconfig/libvirt-gconfig.h" \
170 --pkg=libxml-2.0 \
81171 --pkg-export=libvirt-gconfig-1.0 \
82 $(srcdir)/libvirt-gconfig.h \
172 $(srcdir)/libvirt-gconfig.h \
83173 $(GCONFIG_SOURCE_FILES:%=$(srcdir)/%) \
84 $(GCONFIG_HEADER_FILES:%=$(srcdir)/%)
174 $(GCONFIG_HEADER_FILES:%=$(srcdir)/%) \
175 $(builddir)/libvirt-gconfig-enum-types.c \
176 $(builddir)/libvirt-gconfig-enum-types.h
177
85178
86179 girdir = $(datadir)/gir-1.0
87180 gir_DATA = LibvirtGConfig-1.0.gir
95188 --includedir=$(girdir) \
96189 -o $@ $<
97190
98 CLEANFILES = $(gir_DATA) $(typelibs_DATA)
191 CLEANFILES += $(gir_DATA) $(typelibs_DATA)
99192
100193 endif # WITH_GOBJECT_INTROSPECTION
3535 POST_UNINSTALL = :
3636 build_triplet = @build@
3737 host_triplet = @host@
38 @WITH_GOBJECT_INTROSPECTION_TRUE@am__append_1 = $(gir_DATA) $(typelibs_DATA)
3839 subdir = libvirt-gconfig
3940 DIST_COMMON = $(libvirt_gconfig_1_0_la_HEADERS) $(noinst_HEADERS) \
4041 $(srcdir)/Makefile.am $(srcdir)/Makefile.in
7071 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
7172 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
7273 "$(DESTDIR)$(typelibsdir)" \
74 "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)" \
7375 "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)"
7476 LTLIBRARIES = $(lib_LTLIBRARIES)
7577 am__DEPENDENCIES_1 =
7678 am__objects_1 =
7779 am__objects_2 = $(am__objects_1)
7880 am__objects_3 = libvirt_gconfig_1_0_la-libvirt-gconfig-object.lo \
81 libvirt_gconfig_1_0_la-libvirt-gconfig-main.lo \
7982 libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.lo \
8083 libvirt_gconfig_1_0_la-libvirt-gconfig-domain.lo \
84 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.lo \
85 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.lo \
86 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.lo \
87 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.lo \
88 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.lo \
89 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.lo \
90 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.lo \
91 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.lo \
92 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.lo \
93 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.lo \
94 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.lo \
95 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.lo \
96 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.lo \
97 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.lo \
98 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.lo \
99 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.lo \
100 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.lo \
101 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.lo \
102 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.lo \
103 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.lo \
104 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.lo \
105 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.lo \
106 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.lo \
81107 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.lo \
108 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.lo \
109 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.lo \
110 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.lo \
82111 libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.lo \
83112 libvirt_gconfig_1_0_la-libvirt-gconfig-interface.lo \
84113 libvirt_gconfig_1_0_la-libvirt-gconfig-network.lo \
85114 libvirt_gconfig_1_0_la-libvirt-gconfig-network-filter.lo \
86115 libvirt_gconfig_1_0_la-libvirt-gconfig-node-device.lo \
87116 libvirt_gconfig_1_0_la-libvirt-gconfig-secret.lo \
117 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.lo \
88118 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.lo \
89 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo
119 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.lo \
120 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.lo \
121 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo \
122 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.lo \
123 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.lo \
124 libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.lo
90125 am_libvirt_gconfig_1_0_la_OBJECTS = $(am__objects_2) $(am__objects_3)
91 libvirt_gconfig_1_0_la_OBJECTS = $(am_libvirt_gconfig_1_0_la_OBJECTS)
126 nodist_libvirt_gconfig_1_0_la_OBJECTS = \
127 libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.lo
128 libvirt_gconfig_1_0_la_OBJECTS = $(am_libvirt_gconfig_1_0_la_OBJECTS) \
129 $(nodist_libvirt_gconfig_1_0_la_OBJECTS)
92130 AM_V_lt = $(am__v_lt_$(V))
93131 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
94132 am__v_lt_0 = --silent
122160 AM_V_GEN = $(am__v_GEN_$(V))
123161 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
124162 am__v_GEN_0 = @echo " GEN " $@;
125 SOURCES = $(libvirt_gconfig_1_0_la_SOURCES)
163 SOURCES = $(libvirt_gconfig_1_0_la_SOURCES) \
164 $(nodist_libvirt_gconfig_1_0_la_SOURCES)
126165 DIST_SOURCES = $(libvirt_gconfig_1_0_la_SOURCES)
127166 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
128167 html-recursive info-recursive install-data-recursive \
132171 installcheck-recursive installdirs-recursive pdf-recursive \
133172 ps-recursive uninstall-recursive
134173 DATA = $(gir_DATA) $(typelibs_DATA)
135 HEADERS = $(libvirt_gconfig_1_0_la_HEADERS) $(noinst_HEADERS)
174 HEADERS = $(libvirt_gconfig_1_0_la_HEADERS) \
175 $(nodist_libvirt_gconfig_1_0_la_HEADERS) $(noinst_HEADERS)
136176 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
137177 distclean-recursive maintainer-clean-recursive
138178 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
203243 GIO2_LIBS = @GIO2_LIBS@
204244 GLIB2_CFLAGS = @GLIB2_CFLAGS@
205245 GLIB2_LIBS = @GLIB2_LIBS@
246 GLIB_MKENUMS = @GLIB_MKENUMS@
206247 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
207248 GOBJECT2_LIBS = @GOBJECT2_LIBS@
208249 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
211252 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
212253 GTHREAD2_LIBS = @GTHREAD2_LIBS@
213254 GTKDOC_CHECK = @GTKDOC_CHECK@
255 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
256 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
214257 GTKDOC_MKPDF = @GTKDOC_MKPDF@
215258 GTKDOC_REBASE = @GTKDOC_REBASE@
216259 G_IR_COMPILER = @G_IR_COMPILER@
326369 top_builddir = @top_builddir@
327370 top_srcdir = @top_srcdir@
328371 SUBDIRS = . tests
329 EXTRA_DIST = libvirt-gconfig.sym
372 EXTRA_DIST = \
373 libvirt-gconfig.sym \
374 libvirt-gconfig-enum-types.h.template \
375 libvirt-gconfig-enum-types.c.template
376
330377 lib_LTLIBRARIES = libvirt-gconfig-1.0.la
331378 GCONFIG_HEADER_FILES = \
332379 libvirt-gconfig.h \
380 libvirt-gconfig-main.h \
333381 libvirt-gconfig-object.h \
334382 libvirt-gconfig-capabilities.h \
335383 libvirt-gconfig-domain.h \
384 libvirt-gconfig-domain-channel.h \
385 libvirt-gconfig-domain-chardev.h \
386 libvirt-gconfig-domain-chardev-source.h \
387 libvirt-gconfig-domain-chardev-source-pty.h \
388 libvirt-gconfig-domain-clock.h \
389 libvirt-gconfig-domain-console.h \
390 libvirt-gconfig-domain-device.h \
391 libvirt-gconfig-domain-disk.h \
392 libvirt-gconfig-domain-filesys.h \
393 libvirt-gconfig-domain-graphics.h \
394 libvirt-gconfig-domain-graphics-sdl.h \
395 libvirt-gconfig-domain-graphics-spice.h \
396 libvirt-gconfig-domain-graphics-vnc.h \
397 libvirt-gconfig-domain-input.h \
398 libvirt-gconfig-domain-interface.h \
399 libvirt-gconfig-domain-interface-bridge.h \
400 libvirt-gconfig-domain-interface-network.h \
401 libvirt-gconfig-domain-interface-user.h \
402 libvirt-gconfig-domain-memballoon.h \
403 libvirt-gconfig-domain-os.h \
404 libvirt-gconfig-domain-parallel.h \
405 libvirt-gconfig-domain-seclabel.h \
406 libvirt-gconfig-domain-serial.h \
336407 libvirt-gconfig-domain-snapshot.h \
408 libvirt-gconfig-domain-sound.h \
409 libvirt-gconfig-domain-timer.h \
410 libvirt-gconfig-domain-video.h \
337411 libvirt-gconfig-helpers.h \
338412 libvirt-gconfig-interface.h \
339413 libvirt-gconfig-network.h \
340414 libvirt-gconfig-network-filter.h \
341415 libvirt-gconfig-node-device.h \
342416 libvirt-gconfig-secret.h \
417 libvirt-gconfig-storage-permissions.h \
343418 libvirt-gconfig-storage-pool.h \
344 libvirt-gconfig-storage-vol.h
419 libvirt-gconfig-storage-pool-source.h \
420 libvirt-gconfig-storage-pool-target.h \
421 libvirt-gconfig-storage-vol.h \
422 libvirt-gconfig-storage-vol-backing-store.h \
423 libvirt-gconfig-storage-vol-target.h
345424
346425 noinst_HEADERS = \
347 libvirt-gconfig-helpers-private.h
426 libvirt-gconfig-private.h \
427 libvirt-gconfig-domain-device-private.h \
428 libvirt-gconfig-helpers-private.h \
429 libvirt-gconfig-object-private.h \
430 libvirt-gconfig-xml-doc.h
348431
349432 GCONFIG_SOURCE_FILES = \
350433 libvirt-gconfig-object.c \
434 libvirt-gconfig-main.c \
351435 libvirt-gconfig-capabilities.c \
352436 libvirt-gconfig-domain.c \
437 libvirt-gconfig-domain-channel.c \
438 libvirt-gconfig-domain-chardev.c \
439 libvirt-gconfig-domain-chardev-source.c \
440 libvirt-gconfig-domain-chardev-source-pty.c \
441 libvirt-gconfig-domain-clock.c \
442 libvirt-gconfig-domain-console.c \
443 libvirt-gconfig-domain-device.c \
444 libvirt-gconfig-domain-disk.c \
445 libvirt-gconfig-domain-filesys.c \
446 libvirt-gconfig-domain-graphics.c \
447 libvirt-gconfig-domain-graphics-sdl.c \
448 libvirt-gconfig-domain-graphics-spice.c \
449 libvirt-gconfig-domain-graphics-vnc.c \
450 libvirt-gconfig-domain-input.c \
451 libvirt-gconfig-domain-interface.c \
452 libvirt-gconfig-domain-interface-bridge.c \
453 libvirt-gconfig-domain-interface-network.c \
454 libvirt-gconfig-domain-interface-user.c \
455 libvirt-gconfig-domain-memballoon.c \
456 libvirt-gconfig-domain-os.c \
457 libvirt-gconfig-domain-parallel.c \
458 libvirt-gconfig-domain-seclabel.c \
459 libvirt-gconfig-domain-serial.c \
353460 libvirt-gconfig-domain-snapshot.c \
461 libvirt-gconfig-domain-sound.c \
462 libvirt-gconfig-domain-timer.c \
463 libvirt-gconfig-domain-video.c \
354464 libvirt-gconfig-helpers.c \
355465 libvirt-gconfig-interface.c \
356466 libvirt-gconfig-network.c \
357467 libvirt-gconfig-network-filter.c \
358468 libvirt-gconfig-node-device.c \
359469 libvirt-gconfig-secret.c \
470 libvirt-gconfig-storage-permissions.c \
360471 libvirt-gconfig-storage-pool.c \
361 libvirt-gconfig-storage-vol.c
472 libvirt-gconfig-storage-pool-source.c \
473 libvirt-gconfig-storage-pool-target.c \
474 libvirt-gconfig-storage-vol.c \
475 libvirt-gconfig-storage-vol-backing-store.c \
476 libvirt-gconfig-storage-vol-target.c \
477 libvirt-gconfig-xml-doc.c
362478
363479 libvirt_gconfig_1_0_ladir = $(includedir)/libvirt-gconfig-1.0/libvirt-gconfig
364480 libvirt_gconfig_1_0_la_HEADERS = \
365481 $(GCONFIG_HEADER_FILES)
366482
483 nodist_libvirt_gconfig_1_0_la_HEADERS = \
484 $(builddir)/libvirt-gconfig-enum-types.h
485
367486 libvirt_gconfig_1_0_la_SOURCES = \
368487 $(libvirt_gconfig_1_0_la_HEADERS) \
369488 $(GCONFIG_SOURCE_FILES)
370489
490 nodist_libvirt_gconfig_1_0_la_SOURCES = \
491 $(builddir)/libvirt-gconfig-enum-types.c
492
371493 libvirt_gconfig_1_0_la_CFLAGS = \
494 -DG_LOG_DOMAIN="\"Libvirt.GConfig\"" \
372495 -DDATADIR="\"$(datadir)\"" \
373496 -DLIBVIRT_GCONFIG_BUILD \
374497 $(COVERAGE_CFLAGS) \
391514 -Wl,--version-script=$(srcdir)/libvirt-gconfig.sym \
392515 -version-info $(LIBVIRT_GLIB_VERSION_INFO)
393516
517 BUILT_SOURCES = \
518 libvirt-gconfig-enum-types.c \
519 libvirt-gconfig-enum-types.h
520
521 CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
394522 @WITH_GOBJECT_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
395523 @WITH_GOBJECT_INTROSPECTION_TRUE@gir_DATA = LibvirtGConfig-1.0.gir
396524 @WITH_GOBJECT_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0
397525 @WITH_GOBJECT_INTROSPECTION_TRUE@typelibs_DATA = LibvirtGConfig-1.0.typelib
398 @WITH_GOBJECT_INTROSPECTION_TRUE@CLEANFILES = $(gir_DATA) $(typelibs_DATA)
399 all: all-recursive
526 all: $(BUILT_SOURCES)
527 $(MAKE) $(AM_MAKEFLAGS) all-recursive
400528
401529 .SUFFIXES:
402530 .SUFFIXES: .c .lo .o .obj
471599 -rm -f *.tab.c
472600
473601 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.Plo@am__quote@
602 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.Plo@am__quote@
603 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.Plo@am__quote@
604 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.Plo@am__quote@
605 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.Plo@am__quote@
606 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.Plo@am__quote@
607 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.Plo@am__quote@
608 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.Plo@am__quote@
609 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.Plo@am__quote@
610 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.Plo@am__quote@
611 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.Plo@am__quote@
612 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.Plo@am__quote@
613 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.Plo@am__quote@
614 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.Plo@am__quote@
615 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.Plo@am__quote@
616 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.Plo@am__quote@
617 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.Plo@am__quote@
618 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.Plo@am__quote@
619 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.Plo@am__quote@
620 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.Plo@am__quote@
621 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.Plo@am__quote@
622 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.Plo@am__quote@
623 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.Plo@am__quote@
624 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.Plo@am__quote@
474625 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.Plo@am__quote@
626 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.Plo@am__quote@
627 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.Plo@am__quote@
628 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.Plo@am__quote@
475629 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain.Plo@am__quote@
630 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.Plo@am__quote@
476631 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.Plo@am__quote@
477632 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-interface.Plo@am__quote@
633 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-main.Plo@am__quote@
478634 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-network-filter.Plo@am__quote@
479635 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-network.Plo@am__quote@
480636 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-node-device.Plo@am__quote@
481637 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-object.Plo@am__quote@
482638 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-secret.Plo@am__quote@
639 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.Plo@am__quote@
640 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.Plo@am__quote@
641 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.Plo@am__quote@
483642 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.Plo@am__quote@
643 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.Plo@am__quote@
644 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.Plo@am__quote@
484645 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.Plo@am__quote@
646 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.Plo@am__quote@
485647
486648 .c.o:
487649 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
515677 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
516678 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-object.lo `test -f 'libvirt-gconfig-object.c' || echo '$(srcdir)/'`libvirt-gconfig-object.c
517679
680 libvirt_gconfig_1_0_la-libvirt-gconfig-main.lo: libvirt-gconfig-main.c
681 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-main.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-main.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-main.lo `test -f 'libvirt-gconfig-main.c' || echo '$(srcdir)/'`libvirt-gconfig-main.c
682 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-main.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-main.Plo
683 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
684 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-main.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-main.lo' libtool=yes @AMDEPBACKSLASH@
685 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
686 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-main.lo `test -f 'libvirt-gconfig-main.c' || echo '$(srcdir)/'`libvirt-gconfig-main.c
687
518688 libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.lo: libvirt-gconfig-capabilities.c
519689 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.lo `test -f 'libvirt-gconfig-capabilities.c' || echo '$(srcdir)/'`libvirt-gconfig-capabilities.c
520690 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-capabilities.Plo
531701 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
532702 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain.lo `test -f 'libvirt-gconfig-domain.c' || echo '$(srcdir)/'`libvirt-gconfig-domain.c
533703
704 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.lo: libvirt-gconfig-domain-channel.c
705 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.lo `test -f 'libvirt-gconfig-domain-channel.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-channel.c
706 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.Plo
707 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
708 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-channel.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.lo' libtool=yes @AMDEPBACKSLASH@
709 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
710 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-channel.lo `test -f 'libvirt-gconfig-domain-channel.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-channel.c
711
712 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.lo: libvirt-gconfig-domain-chardev.c
713 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.lo `test -f 'libvirt-gconfig-domain-chardev.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-chardev.c
714 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.Plo
715 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
716 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-chardev.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.lo' libtool=yes @AMDEPBACKSLASH@
717 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
718 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev.lo `test -f 'libvirt-gconfig-domain-chardev.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-chardev.c
719
720 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.lo: libvirt-gconfig-domain-chardev-source.c
721 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.lo `test -f 'libvirt-gconfig-domain-chardev-source.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-chardev-source.c
722 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.Plo
723 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
724 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-chardev-source.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.lo' libtool=yes @AMDEPBACKSLASH@
725 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
726 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source.lo `test -f 'libvirt-gconfig-domain-chardev-source.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-chardev-source.c
727
728 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.lo: libvirt-gconfig-domain-chardev-source-pty.c
729 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.lo `test -f 'libvirt-gconfig-domain-chardev-source-pty.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-chardev-source-pty.c
730 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.Plo
731 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
732 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-chardev-source-pty.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.lo' libtool=yes @AMDEPBACKSLASH@
733 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
734 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-chardev-source-pty.lo `test -f 'libvirt-gconfig-domain-chardev-source-pty.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-chardev-source-pty.c
735
736 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.lo: libvirt-gconfig-domain-clock.c
737 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.lo `test -f 'libvirt-gconfig-domain-clock.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-clock.c
738 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.Plo
739 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
740 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-clock.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.lo' libtool=yes @AMDEPBACKSLASH@
741 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
742 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-clock.lo `test -f 'libvirt-gconfig-domain-clock.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-clock.c
743
744 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.lo: libvirt-gconfig-domain-console.c
745 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.lo `test -f 'libvirt-gconfig-domain-console.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-console.c
746 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.Plo
747 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
748 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-console.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.lo' libtool=yes @AMDEPBACKSLASH@
749 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
750 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-console.lo `test -f 'libvirt-gconfig-domain-console.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-console.c
751
752 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.lo: libvirt-gconfig-domain-device.c
753 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.lo `test -f 'libvirt-gconfig-domain-device.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-device.c
754 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.Plo
755 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
756 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-device.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.lo' libtool=yes @AMDEPBACKSLASH@
757 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
758 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-device.lo `test -f 'libvirt-gconfig-domain-device.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-device.c
759
760 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.lo: libvirt-gconfig-domain-disk.c
761 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.lo `test -f 'libvirt-gconfig-domain-disk.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-disk.c
762 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.Plo
763 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
764 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-disk.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.lo' libtool=yes @AMDEPBACKSLASH@
765 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
766 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-disk.lo `test -f 'libvirt-gconfig-domain-disk.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-disk.c
767
768 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.lo: libvirt-gconfig-domain-filesys.c
769 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.lo `test -f 'libvirt-gconfig-domain-filesys.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-filesys.c
770 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.Plo
771 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
772 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-filesys.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.lo' libtool=yes @AMDEPBACKSLASH@
773 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
774 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-filesys.lo `test -f 'libvirt-gconfig-domain-filesys.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-filesys.c
775
776 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.lo: libvirt-gconfig-domain-graphics.c
777 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.lo `test -f 'libvirt-gconfig-domain-graphics.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics.c
778 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.Plo
779 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
780 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-graphics.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.lo' libtool=yes @AMDEPBACKSLASH@
781 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
782 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics.lo `test -f 'libvirt-gconfig-domain-graphics.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics.c
783
784 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.lo: libvirt-gconfig-domain-graphics-sdl.c
785 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.lo `test -f 'libvirt-gconfig-domain-graphics-sdl.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics-sdl.c
786 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.Plo
787 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
788 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-graphics-sdl.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.lo' libtool=yes @AMDEPBACKSLASH@
789 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
790 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-sdl.lo `test -f 'libvirt-gconfig-domain-graphics-sdl.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics-sdl.c
791
792 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.lo: libvirt-gconfig-domain-graphics-spice.c
793 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.lo `test -f 'libvirt-gconfig-domain-graphics-spice.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics-spice.c
794 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.Plo
795 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
796 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-graphics-spice.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.lo' libtool=yes @AMDEPBACKSLASH@
797 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
798 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-spice.lo `test -f 'libvirt-gconfig-domain-graphics-spice.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics-spice.c
799
800 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.lo: libvirt-gconfig-domain-graphics-vnc.c
801 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.lo `test -f 'libvirt-gconfig-domain-graphics-vnc.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics-vnc.c
802 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.Plo
803 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
804 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-graphics-vnc.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.lo' libtool=yes @AMDEPBACKSLASH@
805 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
806 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-graphics-vnc.lo `test -f 'libvirt-gconfig-domain-graphics-vnc.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-graphics-vnc.c
807
808 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.lo: libvirt-gconfig-domain-input.c
809 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.lo `test -f 'libvirt-gconfig-domain-input.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-input.c
810 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.Plo
811 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
812 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-input.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.lo' libtool=yes @AMDEPBACKSLASH@
813 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
814 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-input.lo `test -f 'libvirt-gconfig-domain-input.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-input.c
815
816 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.lo: libvirt-gconfig-domain-interface.c
817 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.lo `test -f 'libvirt-gconfig-domain-interface.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface.c
818 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.Plo
819 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
820 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-interface.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.lo' libtool=yes @AMDEPBACKSLASH@
821 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
822 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface.lo `test -f 'libvirt-gconfig-domain-interface.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface.c
823
824 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.lo: libvirt-gconfig-domain-interface-bridge.c
825 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.lo `test -f 'libvirt-gconfig-domain-interface-bridge.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface-bridge.c
826 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.Plo
827 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
828 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-interface-bridge.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.lo' libtool=yes @AMDEPBACKSLASH@
829 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
830 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-bridge.lo `test -f 'libvirt-gconfig-domain-interface-bridge.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface-bridge.c
831
832 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.lo: libvirt-gconfig-domain-interface-network.c
833 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.lo `test -f 'libvirt-gconfig-domain-interface-network.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface-network.c
834 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.Plo
835 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
836 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-interface-network.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.lo' libtool=yes @AMDEPBACKSLASH@
837 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
838 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-network.lo `test -f 'libvirt-gconfig-domain-interface-network.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface-network.c
839
840 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.lo: libvirt-gconfig-domain-interface-user.c
841 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.lo `test -f 'libvirt-gconfig-domain-interface-user.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface-user.c
842 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.Plo
843 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
844 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-interface-user.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.lo' libtool=yes @AMDEPBACKSLASH@
845 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
846 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-interface-user.lo `test -f 'libvirt-gconfig-domain-interface-user.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-interface-user.c
847
848 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.lo: libvirt-gconfig-domain-memballoon.c
849 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.lo `test -f 'libvirt-gconfig-domain-memballoon.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-memballoon.c
850 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.Plo
851 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
852 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-memballoon.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.lo' libtool=yes @AMDEPBACKSLASH@
853 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
854 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-memballoon.lo `test -f 'libvirt-gconfig-domain-memballoon.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-memballoon.c
855
856 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.lo: libvirt-gconfig-domain-os.c
857 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.lo `test -f 'libvirt-gconfig-domain-os.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-os.c
858 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.Plo
859 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
860 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-os.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.lo' libtool=yes @AMDEPBACKSLASH@
861 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
862 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-os.lo `test -f 'libvirt-gconfig-domain-os.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-os.c
863
864 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.lo: libvirt-gconfig-domain-parallel.c
865 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.lo `test -f 'libvirt-gconfig-domain-parallel.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-parallel.c
866 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.Plo
867 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
868 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-parallel.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.lo' libtool=yes @AMDEPBACKSLASH@
869 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
870 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-parallel.lo `test -f 'libvirt-gconfig-domain-parallel.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-parallel.c
871
872 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.lo: libvirt-gconfig-domain-seclabel.c
873 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.lo `test -f 'libvirt-gconfig-domain-seclabel.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-seclabel.c
874 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.Plo
875 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
876 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-seclabel.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.lo' libtool=yes @AMDEPBACKSLASH@
877 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
878 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-seclabel.lo `test -f 'libvirt-gconfig-domain-seclabel.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-seclabel.c
879
880 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.lo: libvirt-gconfig-domain-serial.c
881 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.lo `test -f 'libvirt-gconfig-domain-serial.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-serial.c
882 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.Plo
883 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
884 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-serial.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.lo' libtool=yes @AMDEPBACKSLASH@
885 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
886 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-serial.lo `test -f 'libvirt-gconfig-domain-serial.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-serial.c
887
534888 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.lo: libvirt-gconfig-domain-snapshot.c
535889 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.lo `test -f 'libvirt-gconfig-domain-snapshot.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-snapshot.c
536890 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.Plo
539893 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
540894 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-snapshot.lo `test -f 'libvirt-gconfig-domain-snapshot.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-snapshot.c
541895
896 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.lo: libvirt-gconfig-domain-sound.c
897 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.lo `test -f 'libvirt-gconfig-domain-sound.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-sound.c
898 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.Plo
899 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
900 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-sound.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.lo' libtool=yes @AMDEPBACKSLASH@
901 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
902 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-sound.lo `test -f 'libvirt-gconfig-domain-sound.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-sound.c
903
904 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.lo: libvirt-gconfig-domain-timer.c
905 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.lo `test -f 'libvirt-gconfig-domain-timer.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-timer.c
906 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.Plo
907 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
908 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-timer.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.lo' libtool=yes @AMDEPBACKSLASH@
909 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
910 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-timer.lo `test -f 'libvirt-gconfig-domain-timer.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-timer.c
911
912 libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.lo: libvirt-gconfig-domain-video.c
913 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.lo `test -f 'libvirt-gconfig-domain-video.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-video.c
914 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.Plo
915 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
916 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-domain-video.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.lo' libtool=yes @AMDEPBACKSLASH@
917 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
918 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-domain-video.lo `test -f 'libvirt-gconfig-domain-video.c' || echo '$(srcdir)/'`libvirt-gconfig-domain-video.c
919
542920 libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.lo: libvirt-gconfig-helpers.c
543921 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.lo `test -f 'libvirt-gconfig-helpers.c' || echo '$(srcdir)/'`libvirt-gconfig-helpers.c
544922 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-helpers.Plo
587965 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
588966 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-secret.lo `test -f 'libvirt-gconfig-secret.c' || echo '$(srcdir)/'`libvirt-gconfig-secret.c
589967
968 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.lo: libvirt-gconfig-storage-permissions.c
969 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.lo `test -f 'libvirt-gconfig-storage-permissions.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-permissions.c
970 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.Plo
971 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
972 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-storage-permissions.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.lo' libtool=yes @AMDEPBACKSLASH@
973 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
974 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-permissions.lo `test -f 'libvirt-gconfig-storage-permissions.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-permissions.c
975
590976 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.lo: libvirt-gconfig-storage-pool.c
591977 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.lo `test -f 'libvirt-gconfig-storage-pool.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-pool.c
592978 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.Plo
595981 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
596982 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool.lo `test -f 'libvirt-gconfig-storage-pool.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-pool.c
597983
984 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.lo: libvirt-gconfig-storage-pool-source.c
985 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.lo `test -f 'libvirt-gconfig-storage-pool-source.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-pool-source.c
986 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.Plo
987 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
988 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-storage-pool-source.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.lo' libtool=yes @AMDEPBACKSLASH@
989 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
990 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-source.lo `test -f 'libvirt-gconfig-storage-pool-source.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-pool-source.c
991
992 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.lo: libvirt-gconfig-storage-pool-target.c
993 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.lo `test -f 'libvirt-gconfig-storage-pool-target.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-pool-target.c
994 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.Plo
995 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
996 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-storage-pool-target.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.lo' libtool=yes @AMDEPBACKSLASH@
997 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
998 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-pool-target.lo `test -f 'libvirt-gconfig-storage-pool-target.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-pool-target.c
999
5981000 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo: libvirt-gconfig-storage-vol.c
5991001 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo `test -f 'libvirt-gconfig-storage-vol.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-vol.c
6001002 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.Plo
6021004 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-storage-vol.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo' libtool=yes @AMDEPBACKSLASH@
6031005 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
6041006 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol.lo `test -f 'libvirt-gconfig-storage-vol.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-vol.c
1007
1008 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.lo: libvirt-gconfig-storage-vol-backing-store.c
1009 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.lo `test -f 'libvirt-gconfig-storage-vol-backing-store.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-vol-backing-store.c
1010 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.Plo
1011 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1012 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-storage-vol-backing-store.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.lo' libtool=yes @AMDEPBACKSLASH@
1013 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1014 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-backing-store.lo `test -f 'libvirt-gconfig-storage-vol-backing-store.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-vol-backing-store.c
1015
1016 libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.lo: libvirt-gconfig-storage-vol-target.c
1017 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.lo `test -f 'libvirt-gconfig-storage-vol-target.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-vol-target.c
1018 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.Plo
1019 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1020 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-storage-vol-target.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.lo' libtool=yes @AMDEPBACKSLASH@
1021 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1022 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-storage-vol-target.lo `test -f 'libvirt-gconfig-storage-vol-target.c' || echo '$(srcdir)/'`libvirt-gconfig-storage-vol-target.c
1023
1024 libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.lo: libvirt-gconfig-xml-doc.c
1025 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.lo `test -f 'libvirt-gconfig-xml-doc.c' || echo '$(srcdir)/'`libvirt-gconfig-xml-doc.c
1026 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.Plo
1027 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1028 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libvirt-gconfig-xml-doc.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.lo' libtool=yes @AMDEPBACKSLASH@
1029 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1030 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-xml-doc.lo `test -f 'libvirt-gconfig-xml-doc.c' || echo '$(srcdir)/'`libvirt-gconfig-xml-doc.c
1031
1032 libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.lo: $(builddir)/libvirt-gconfig-enum-types.c
1033 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -MT libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.lo -MD -MP -MF $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.Tpo -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.lo `test -f '$(builddir)/libvirt-gconfig-enum-types.c' || echo '$(srcdir)/'`$(builddir)/libvirt-gconfig-enum-types.c
1034 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.Tpo $(DEPDIR)/libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.Plo
1035 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1036 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(builddir)/libvirt-gconfig-enum-types.c' object='libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.lo' libtool=yes @AMDEPBACKSLASH@
1037 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1038 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvirt_gconfig_1_0_la_CFLAGS) $(CFLAGS) -c -o libvirt_gconfig_1_0_la-libvirt-gconfig-enum-types.lo `test -f '$(builddir)/libvirt-gconfig-enum-types.c' || echo '$(srcdir)/'`$(builddir)/libvirt-gconfig-enum-types.c
6051039
6061040 mostlyclean-libtool:
6071041 -rm -f *.lo
6641098 uninstall-libvirt_gconfig_1_0_laHEADERS:
6651099 @$(NORMAL_UNINSTALL)
6661100 @list='$(libvirt_gconfig_1_0_la_HEADERS)'; test -n "$(libvirt_gconfig_1_0_ladir)" || list=; \
1101 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1102 test -n "$$files" || exit 0; \
1103 echo " ( cd '$(DESTDIR)$(libvirt_gconfig_1_0_ladir)' && rm -f" $$files ")"; \
1104 cd "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)" && rm -f $$files
1105 install-nodist_libvirt_gconfig_1_0_laHEADERS: $(nodist_libvirt_gconfig_1_0_la_HEADERS)
1106 @$(NORMAL_INSTALL)
1107 test -z "$(libvirt_gconfig_1_0_ladir)" || $(MKDIR_P) "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)"
1108 @list='$(nodist_libvirt_gconfig_1_0_la_HEADERS)'; test -n "$(libvirt_gconfig_1_0_ladir)" || list=; \
1109 for p in $$list; do \
1110 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
1111 echo "$$d$$p"; \
1112 done | $(am__base_list) | \
1113 while read files; do \
1114 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libvirt_gconfig_1_0_ladir)'"; \
1115 $(INSTALL_HEADER) $$files "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)" || exit $$?; \
1116 done
1117
1118 uninstall-nodist_libvirt_gconfig_1_0_laHEADERS:
1119 @$(NORMAL_UNINSTALL)
1120 @list='$(nodist_libvirt_gconfig_1_0_la_HEADERS)'; test -n "$(libvirt_gconfig_1_0_ladir)" || list=; \
6671121 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
6681122 test -n "$$files" || exit 0; \
6691123 echo " ( cd '$(DESTDIR)$(libvirt_gconfig_1_0_ladir)' && rm -f" $$files ")"; \
8631317 fi; \
8641318 done
8651319 check-am: all-am
866 check: check-recursive
1320 check: $(BUILT_SOURCES)
1321 $(MAKE) $(AM_MAKEFLAGS) check-recursive
8671322 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
8681323 installdirs: installdirs-recursive
8691324 installdirs-am:
870 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)"; do \
1325 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)" "$(DESTDIR)$(libvirt_gconfig_1_0_ladir)"; do \
8711326 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
8721327 done
873 install: install-recursive
1328 install: $(BUILT_SOURCES)
1329 $(MAKE) $(AM_MAKEFLAGS) install-recursive
8741330 install-exec: install-exec-recursive
8751331 install-data: install-data-recursive
8761332 uninstall: uninstall-recursive
8961352 maintainer-clean-generic:
8971353 @echo "This command is intended for maintainers to use"
8981354 @echo "it deletes files that may require special tools to rebuild."
1355 -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
8991356 clean: clean-recursive
9001357
9011358 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
9201377 info-am:
9211378
9221379 install-data-am: install-girDATA install-libvirt_gconfig_1_0_laHEADERS \
1380 install-nodist_libvirt_gconfig_1_0_laHEADERS \
9231381 install-typelibsDATA
9241382
9251383 install-dvi: install-dvi-recursive
9671425 ps-am:
9681426
9691427 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
970 uninstall-libvirt_gconfig_1_0_laHEADERS uninstall-typelibsDATA
971
972 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
973 install-am install-strip tags-recursive
1428 uninstall-libvirt_gconfig_1_0_laHEADERS \
1429 uninstall-nodist_libvirt_gconfig_1_0_laHEADERS \
1430 uninstall-typelibsDATA
1431
1432 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
1433 ctags-recursive install install-am install-strip \
1434 tags-recursive
9741435
9751436 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
9761437 all all-am check check-am clean clean-generic \
9811442 install-data-am install-dvi install-dvi-am install-exec \
9821443 install-exec-am install-girDATA install-html install-html-am \
9831444 install-info install-info-am install-libLTLIBRARIES \
984 install-libvirt_gconfig_1_0_laHEADERS install-man install-pdf \
1445 install-libvirt_gconfig_1_0_laHEADERS install-man \
1446 install-nodist_libvirt_gconfig_1_0_laHEADERS install-pdf \
9851447 install-pdf-am install-ps install-ps-am install-strip \
9861448 install-typelibsDATA installcheck installcheck-am installdirs \
9871449 installdirs-am maintainer-clean maintainer-clean-generic \
9891451 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
9901452 uninstall uninstall-am uninstall-girDATA \
9911453 uninstall-libLTLIBRARIES \
992 uninstall-libvirt_gconfig_1_0_laHEADERS uninstall-typelibsDATA
993
1454 uninstall-libvirt_gconfig_1_0_laHEADERS \
1455 uninstall-nodist_libvirt_gconfig_1_0_laHEADERS \
1456 uninstall-typelibsDATA
1457
1458
1459 libvirt-gconfig-enum-types.h: $(GCONFIG_HEADER_FILES) libvirt-gconfig-enum-types.h.template
1460 $(AM_V_GEN) ( $(GLIB_MKENUMS) --template $(srcdir)/libvirt-gconfig-enum-types.h.template $(GCONFIG_HEADER_FILES:%=$(srcdir)/%) ) | \
1461 sed -e "s/G_TYPE_VIR_CONFIG/GVIR_CONFIG_TYPE/" -e "s/g_vir/gvir/" > libvirt-gconfig-enum-types.h
1462
1463 libvirt-gconfig-enum-types.c: $(GCONFIG_HEADER_FILES) libvirt-gconfig-enum-types.c.template
1464 $(AM_V_GEN) ( $(GLIB_MKENUMS) --template $(srcdir)/libvirt-gconfig-enum-types.c.template $(GCONFIG_HEADER_FILES:%=$(srcdir)/%) ) | \
1465 sed -e "s/G_TYPE_VIR_CONFIG/GVIR_CONFIG_TYPE/" -e "s/g_vir/gvir/" > libvirt-gconfig-enum-types.c
9941466
9951467 @WITH_GOBJECT_INTROSPECTION_TRUE@LibvirtGConfig-1.0.gir: libvirt-gconfig-1.0.la $(G_IR_SCANNER) Makefile.am
9961468 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(AM_V_GEN)$(G_IR_SCANNER) \
10001472 @WITH_GOBJECT_INTROSPECTION_TRUE@ --nsversion 1.0 \
10011473 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include GObject-2.0 \
10021474 @WITH_GOBJECT_INTROSPECTION_TRUE@ --identifier-prefix=GVirConfig \
1003 @WITH_GOBJECT_INTROSPECTION_TRUE@ --symbol-prefix=gvir \
1475 @WITH_GOBJECT_INTROSPECTION_TRUE@ --symbol-prefix=gvir_config \
10041476 @WITH_GOBJECT_INTROSPECTION_TRUE@ --library=$(builddir)/libvirt-gconfig-1.0.la \
10051477 @WITH_GOBJECT_INTROSPECTION_TRUE@ --output $@ \
1478 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_builddir) \
10061479 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_srcdir) \
1007 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_builddir) \
1008 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(LIBXML2_CFLAGS) \
10091480 @WITH_GOBJECT_INTROSPECTION_TRUE@ --verbose \
1010 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=gobject-2.0 \
10111481 @WITH_GOBJECT_INTROSPECTION_TRUE@ --c-include="libvirt-gconfig/libvirt-gconfig.h" \
1482 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=libxml-2.0 \
10121483 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg-export=libvirt-gconfig-1.0 \
1013 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(srcdir)/libvirt-gconfig.h \
1484 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(srcdir)/libvirt-gconfig.h \
10141485 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(GCONFIG_SOURCE_FILES:%=$(srcdir)/%) \
1015 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(GCONFIG_HEADER_FILES:%=$(srcdir)/%)
1486 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(GCONFIG_HEADER_FILES:%=$(srcdir)/%) \
1487 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(builddir)/libvirt-gconfig-enum-types.c \
1488 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(builddir)/libvirt-gconfig-enum-types.h
10161489
10171490 @WITH_GOBJECT_INTROSPECTION_TRUE@%.typelib: %.gir
10181491 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(AM_V_GEN)$(G_IR_COMPILER) \
00 /*
1 * libvirt-gobject-config_capabilities.c: libvirt glib integration
1 * libvirt-gconfig-capabilities.c: libvirt capabilities configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_CAPABILITIES_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_CAPABILITIES, GVirConfigCapabilitiesPrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_CAPABILITIES, GVirConfigCapabilitiesPrivate))
3529
3630 struct _GVirConfigCapabilitiesPrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigCapabilities, gvir_config_capabilities, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigCapabilities, gvir_config_capabilities, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_capabilities_class_init(GVirConfigCapabilitiesClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigCapabilitiesPrivate));
4841 }
4942
5043
5144 static void gvir_config_capabilities_init(GVirConfigCapabilities *conn)
5245 {
53 GVirConfigCapabilitiesPrivate *priv;
46 g_debug("Init GVirConfigCapabilities=%p", conn);
5447
55 DEBUG("Init GVirConfigCapabilities=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_CAPABILITIES_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_CAPABILITIES_GET_PRIVATE(conn);
6049 }
6150
6251
6655
6756 /* FIXME: what is the XML root of the capability node? I suspect it is
6857 * either 'guest' or 'host' */
69 object = gvir_config_object_new(GVIR_TYPE_CONFIG_CAPABILITIES,
58 object = gvir_config_object_new(GVIR_CONFIG_TYPE_CAPABILITIES,
7059 "capabilities",
7160 DATADIR "/libvirt/schemas/capability.rng");
7261 return GVIR_CONFIG_CAPABILITIES(object);
7968
8069 /* FIXME: what is the XML root of the capability node? I suspect it is
8170 * either 'guest' or 'host' */
82 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_CAPABILITIES,
71 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_CAPABILITIES,
8372 "capabilities",
8473 DATADIR "/libvirt/schemas/capability.rng",
8574 xml, error);
00 /*
1 * libvirt-gobject-capabilities-config.c: libvirt gobject integration
1 * libvirt-gconfig-capabilities.c: libvirt capabilities configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_CAPABILITIES (gvir_config_capabilities_get_type ())
32 #define GVIR_CONFIG_CAPABILITIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_CAPABILITIES, GVirConfigCapabilities))
33 #define GVIR_CONFIG_CAPABILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_CAPABILITIES, GVirConfigCapabilitiesClass))
34 #define GVIR_IS_CONFIG_CAPABILITIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_CAPABILITIES))
35 #define GVIR_IS_CONFIG_CAPABILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_CAPABILITIES))
36 #define GVIR_CONFIG_CAPABILITIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_CAPABILITIES, GVirConfigCapabilitiesClass))
31 #define GVIR_CONFIG_TYPE_CAPABILITIES (gvir_config_capabilities_get_type ())
32 #define GVIR_CONFIG_CAPABILITIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_CAPABILITIES, GVirConfigCapabilities))
33 #define GVIR_CONFIG_CAPABILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_CAPABILITIES, GVirConfigCapabilitiesClass))
34 #define GVIR_CONFIG_IS_CAPABILITIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_CAPABILITIES))
35 #define GVIR_CONFIG_IS_CAPABILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_CAPABILITIES))
36 #define GVIR_CONFIG_CAPABILITIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_CAPABILITIES, GVirConfigCapabilitiesClass))
3737
3838 typedef struct _GVirConfigCapabilities GVirConfigCapabilities;
3939 typedef struct _GVirConfigCapabilitiesPrivate GVirConfigCapabilitiesPrivate;
0 /*
1 * libvirt-gconfig-domain-channel.c: libvirt domain channel configuration
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_CHANNEL_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL, GVirConfigDomainChannelPrivate))
29
30 struct _GVirConfigDomainChannelPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainChannel, gvir_config_domain_channel, GVIR_CONFIG_TYPE_DOMAIN_CHARDEV);
36
37
38 static void gvir_config_domain_channel_class_init(GVirConfigDomainChannelClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainChannelPrivate));
41 }
42
43
44 static void gvir_config_domain_channel_init(GVirConfigDomainChannel *channel)
45 {
46 g_debug("Init GVirConfigDomainChannel=%p", channel);
47
48 channel->priv = GVIR_CONFIG_DOMAIN_CHANNEL_GET_PRIVATE(channel);
49 }
50
51 GVirConfigDomainChannel *gvir_config_domain_channel_new(void)
52 {
53 GVirConfigObject *object;
54
55 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_CHANNEL,
56 "channel", NULL);
57 return GVIR_CONFIG_DOMAIN_CHANNEL(object);
58 }
59
60 GVirConfigDomainChannel *gvir_config_domain_channel_new_from_xml(const gchar *xml,
61 GError **error)
62 {
63 GVirConfigObject *object;
64
65 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_CHANNEL,
66 "channel", NULL, xml, error);
67 if (object == NULL)
68 return NULL;
69 return GVIR_CONFIG_DOMAIN_CHANNEL(object);
70 }
71
72
73 void gvir_config_domain_channel_set_target_type(GVirConfigDomainChannel *channel,
74 GVirConfigDomainChannelTargetType type)
75 {
76 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHANNEL(channel));
77
78 gvir_config_object_add_child_with_attribute_enum(GVIR_CONFIG_OBJECT(channel),
79 "target", "type",
80 GVIR_CONFIG_TYPE_DOMAIN_CHANNEL_TARGET_TYPE,
81 type);
82 }
83
84
85 void gvir_config_domain_channel_set_target_name(GVirConfigDomainChannel *channel,
86 const gchar *name)
87 {
88 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHANNEL(channel));
89
90 gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(channel),
91 "target", "name", name);
92 }
0 /*
1 * libvirt-gconfig-domain-channel.h: libvirt domain channel configuration
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_CHANNEL_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_CHANNEL_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_CHANNEL (gvir_config_domain_channel_get_type ())
32 #define GVIR_CONFIG_DOMAIN_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL, GVirConfigDomainChannel))
33 #define GVIR_CONFIG_DOMAIN_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL, GVirConfigDomainChannelClass))
34 #define GVIR_CONFIG_IS_DOMAIN_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL))
35 #define GVIR_CONFIG_IS_DOMAIN_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL))
36 #define GVIR_CONFIG_DOMAIN_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHANNEL, GVirConfigDomainChannelClass))
37
38 typedef struct _GVirConfigDomainChannel GVirConfigDomainChannel;
39 typedef struct _GVirConfigDomainChannelPrivate GVirConfigDomainChannelPrivate;
40 typedef struct _GVirConfigDomainChannelClass GVirConfigDomainChannelClass;
41
42 struct _GVirConfigDomainChannel
43 {
44 GVirConfigDomainChardev parent;
45
46 GVirConfigDomainChannelPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainChannelClass
52 {
53 GVirConfigDomainChardevClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_GUESTFWD,
60 GVIR_CONFIG_DOMAIN_CHANNEL_TARGET_VIRTIO,
61 } GVirConfigDomainChannelTargetType;
62
63
64 GType gvir_config_domain_channel_get_type(void);
65 GVirConfigDomainChannel *gvir_config_domain_channel_new(void);
66 GVirConfigDomainChannel *gvir_config_domain_channel_new_from_xml(const gchar *xml,
67 GError **error);
68
69 void gvir_config_domain_channel_set_target_type(GVirConfigDomainChannel *channel,
70 GVirConfigDomainChannelTargetType type);
71 void gvir_config_domain_channel_set_target_name(GVirConfigDomainChannel *channel,
72 const gchar *name);
73
74
75 G_END_DECLS
76
77 #endif /* __LIBVIRT_GCONFIG_DOMAIN_CHANNEL_H__ */
0 /*
1 * libvirt-gconfig-domain-chardev-source-pty.c: libvirt domain chardev pty configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY, GVirConfigDomainChardevSourcePtyPrivate))
29
30 struct _GVirConfigDomainChardevSourcePtyPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainChardevSourcePty, gvir_config_domain_chardev_source_pty, GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE);
36
37
38 static void gvir_config_domain_chardev_source_pty_class_init(GVirConfigDomainChardevSourcePtyClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainChardevSourcePtyPrivate));
41 }
42
43
44 static void gvir_config_domain_chardev_source_pty_init(GVirConfigDomainChardevSourcePty *source)
45 {
46 g_debug("Init GVirConfigDomainChardevSourcePty=%p", source);
47
48 source->priv = GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY_GET_PRIVATE(source);
49 }
50
51
52 GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new(void)
53 {
54 GVirConfigObject *object;
55
56 /* the name of the root node is just a placeholder, it will be
57 * overwritten when the GVirConfigDomainChardevSourcePty is attached to a
58 * GVirConfigDomainChardevSourcePty
59 */
60 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY, "dummy", NULL);
61 gvir_config_object_set_attribute(object, "type", "pty", NULL);
62 return GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY(object);
63 }
64
65
66 GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new_from_xml(const gchar *xml,
67 GError **error)
68 {
69 GVirConfigObject *object;
70
71 /* the name of the root node is just a placeholder, it will be
72 * overwritten when the GVirConfigDomainChardevSourcePty is attached to a
73 * GVirConfigDomainChardevSourcePty
74 */
75 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY,
76 "dummy", NULL, xml, error);
77 gvir_config_object_set_attribute(object, "type", "pty", NULL);
78 return GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY(object);
79 }
80
81 void gvir_config_domain_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
82 const char *path)
83 {
84 GVirConfigObject *source;
85 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE_PTY(pty));
86
87 source = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(pty),
88 "source");
89 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(source));
90 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(source),
91 "path", path);
92 g_object_unref(G_OBJECT(source));
93 }
0 /*
1 * libvirt-gconfig-domain-chardev-source-pty.h: libvirt domain chardev pty configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_PTY_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_PTY_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY (gvir_config_domain_chardev_source_pty_get_type ())
32 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY, GVirConfigDomainChardevSourcePty))
33 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY, GVirConfigDomainChardevSourcePtyClass))
34 #define GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE_PTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY))
35 #define GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE_PTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY))
36 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY, GVirConfigDomainChardevSourcePtyClass))
37
38 typedef struct _GVirConfigDomainChardevSourcePty GVirConfigDomainChardevSourcePty;
39 typedef struct _GVirConfigDomainChardevSourcePtyPrivate GVirConfigDomainChardevSourcePtyPrivate;
40 typedef struct _GVirConfigDomainChardevSourcePtyClass GVirConfigDomainChardevSourcePtyClass;
41
42 struct _GVirConfigDomainChardevSourcePty
43 {
44 GVirConfigDomainChardevSource parent;
45
46 GVirConfigDomainChardevSourcePtyPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainChardevSourcePtyClass
52 {
53 GVirConfigDomainChardevSourceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_chardev_source_pty_get_type(void);
60
61 GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new(void);
62 GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new_from_xml(const gchar *xml,
63 GError **error);
64 void gvir_config_domain_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
65 const char *path);
66
67 G_END_DECLS
68
69 #endif /* __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_PTY_H__ */
0 /*
1 * libvirt-gconfig-domain-chardev-source.c: libvirt domain chardev source base class
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25
26 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_GET_PRIVATE(obj) \
27 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE, GVirConfigDomainChardevSourcePrivate))
28
29 struct _GVirConfigDomainChardevSourcePrivate
30 {
31 gboolean unused;
32 };
33
34 G_DEFINE_ABSTRACT_TYPE(GVirConfigDomainChardevSource, gvir_config_domain_chardev_source, GVIR_CONFIG_TYPE_OBJECT);
35
36
37 static void gvir_config_domain_chardev_source_class_init(GVirConfigDomainChardevSourceClass *klass)
38 {
39 g_type_class_add_private(klass, sizeof(GVirConfigDomainChardevSourcePrivate));
40 }
41
42
43 static void gvir_config_domain_chardev_source_init(GVirConfigDomainChardevSource *source)
44 {
45 g_debug("Init GVirConfigDomainChardevSource=%p", source);
46
47 source->priv = GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_GET_PRIVATE(source);
48 }
0 /*
1 * libvirt-gconfig-domain-chardev-source.h: libvirt domain chardev source base class
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE (gvir_config_domain_chardev_source_get_type ())
32 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE, GVirConfigDomainChardevSource))
33 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE, GVirConfigDomainChardevSourceClass))
34 #define GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE))
35 #define GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE))
36 #define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE, GVirConfigDomainChardevSourceClass))
37
38 typedef struct _GVirConfigDomainChardevSource GVirConfigDomainChardevSource;
39 typedef struct _GVirConfigDomainChardevSourcePrivate GVirConfigDomainChardevSourcePrivate;
40 typedef struct _GVirConfigDomainChardevSourceClass GVirConfigDomainChardevSourceClass;
41
42 struct _GVirConfigDomainChardevSource
43 {
44 GVirConfigObject parent;
45
46 GVirConfigDomainChardevSourcePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainChardevSourceClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_chardev_source_get_type(void);
60
61 G_END_DECLS
62
63 #endif /* __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_H__ */
0 /*
1 * libvirt-gconfig-domain-chardev.c: libvirt domain chardev configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_CHARDEV_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV, GVirConfigDomainChardevPrivate))
29
30 struct _GVirConfigDomainChardevPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_ABSTRACT_TYPE(GVirConfigDomainChardev, gvir_config_domain_chardev, GVIR_CONFIG_TYPE_DOMAIN_DEVICE)
36
37 static void gvir_config_domain_chardev_class_init(GVirConfigDomainChardevClass *klass)
38 {
39 g_type_class_add_private(klass, sizeof(GVirConfigDomainChardevPrivate));
40 }
41
42
43 static void gvir_config_domain_chardev_init(GVirConfigDomainChardev *chardev)
44 {
45 g_debug("Init GVirConfigDomainChardev=%p", chardev);
46
47 chardev->priv = GVIR_CONFIG_DOMAIN_CHARDEV_GET_PRIVATE(chardev);
48 }
49
50 static void prepend_prop(xmlNodePtr node, xmlAttrPtr prop)
51 {
52 if (node->properties == NULL) {
53 node->properties = prop;
54 } else {
55 prop->next = node->properties;
56 node->properties->prev = prop;
57 node->properties = prop;
58 }
59 }
60
61 void gvir_config_domain_chardev_set_source(GVirConfigDomainChardev *chardev,
62 GVirConfigDomainChardevSource *source)
63 {
64 xmlNodePtr chardev_node;
65 xmlNodePtr source_node;
66 xmlNodePtr child;
67 xmlAttrPtr attr;
68
69 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHARDEV(chardev));
70 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE(source));
71
72 chardev_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(chardev));
73 source_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(source));
74
75 g_return_if_fail((chardev_node != NULL) && (source_node != NULL));
76
77 for (child = source_node->children; child != NULL; child = child->next) {
78 xmlUnlinkNode(child);
79 xmlAddChild(chardev_node, child);
80 }
81
82 for (attr = source_node->properties; attr != NULL; attr = attr->next) {
83 xmlAttrPtr new_attr;
84 new_attr = xmlCopyProp(chardev_node, attr);
85 prepend_prop(chardev_node, new_attr);
86 }
87 }
0 /*
1 * libvirt-gconfig-domain-chardev.h: libvirt domain chardev configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_H__
28
29 #include <libvirt-gconfig/libvirt-gconfig-domain-chardev-source.h>
30
31 G_BEGIN_DECLS
32
33 #define GVIR_CONFIG_TYPE_DOMAIN_CHARDEV (gvir_config_domain_chardev_get_type ())
34 #define GVIR_CONFIG_DOMAIN_CHARDEV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV, GVirConfigDomainChardev))
35 #define GVIR_CONFIG_DOMAIN_CHARDEV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV, GVirConfigDomainChardevClass))
36 #define GVIR_CONFIG_IS_DOMAIN_CHARDEV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV))
37 #define GVIR_CONFIG_IS_DOMAIN_CHARDEV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV))
38 #define GVIR_CONFIG_DOMAIN_CHARDEV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV, GVirConfigDomainChardevClass))
39
40 typedef struct _GVirConfigDomainChardev GVirConfigDomainChardev;
41 typedef struct _GVirConfigDomainChardevPrivate GVirConfigDomainChardevPrivate;
42 typedef struct _GVirConfigDomainChardevClass GVirConfigDomainChardevClass;
43
44 struct _GVirConfigDomainChardev
45 {
46 GVirConfigDomainDevice parent;
47
48 GVirConfigDomainChardevPrivate *priv;
49
50 /* Do not add fields to this struct */
51 };
52
53 struct _GVirConfigDomainChardevClass
54 {
55 GVirConfigDomainDeviceClass parent_class;
56
57 gpointer padding[20];
58 };
59
60
61 GType gvir_config_domain_chardev_get_type(void);
62 void gvir_config_domain_chardev_set_source(GVirConfigDomainChardev *chardev,
63 GVirConfigDomainChardevSource *source);
64
65 G_END_DECLS
66
67 #endif /* __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_H__ */
0 /*
1 * libvirt-gconfig-domain-clock.c: libvirt domain clock configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_CLOCK_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CLOCK, GVirConfigDomainClockPrivate))
29
30 struct _GVirConfigDomainClockPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainClock, gvir_config_domain_clock, GVIR_CONFIG_TYPE_OBJECT);
36
37
38 static void gvir_config_domain_clock_class_init(GVirConfigDomainClockClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainClockPrivate));
41 }
42
43
44 static void gvir_config_domain_clock_init(GVirConfigDomainClock *klock)
45 {
46 g_debug("Init GVirConfigDomainClock=%p", klock);
47
48 klock->priv = GVIR_CONFIG_DOMAIN_CLOCK_GET_PRIVATE(klock);
49 }
50
51
52 GVirConfigDomainClock *gvir_config_domain_clock_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_CLOCK,
57 "clock", NULL);
58 return GVIR_CONFIG_DOMAIN_CLOCK(object);
59 }
60
61 GVirConfigDomainClock *gvir_config_domain_clock_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_CLOCK,
67 "clock", NULL, xml, error);
68 return GVIR_CONFIG_DOMAIN_CLOCK(object);
69 }
70
71 void gvir_config_domain_clock_set_offset(GVirConfigDomainClock *klock,
72 GVirConfigDomainClockOffset offset)
73 {
74 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CLOCK(klock));
75
76 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(klock),
77 "offset",
78 GVIR_CONFIG_TYPE_DOMAIN_CLOCK_OFFSET,
79 offset,
80 NULL);
81 }
82
83 void gvir_config_domain_clock_set_timezone(GVirConfigDomainClock *klock,
84 const char *tz)
85 {
86 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CLOCK(klock));
87 g_return_if_fail(tz != NULL);
88
89 gvir_config_object_set_attribute(GVIR_CONFIG_OBJECT(klock),
90 "timezone", tz, NULL);
91 }
92
93 void gvir_config_domain_clock_set_variable_offset(GVirConfigDomainClock *klock,
94 gint seconds)
95 {
96 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CLOCK(klock));
97
98 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(klock),
99 "offset", G_TYPE_STRING, "variable",
100 "adjustment", G_TYPE_INT, seconds,
101 NULL);
102 }
0 /*
1 * libvirt-gconfig-domain-clock.h: libvirt domain clock configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_CLOCK_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_CLOCK_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_CLOCK (gvir_config_domain_clock_get_type ())
32 #define GVIR_CONFIG_DOMAIN_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_CLOCK, GVirConfigDomainClock))
33 #define GVIR_CONFIG_DOMAIN_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_CLOCK, GVirConfigDomainClockClass))
34 #define GVIR_CONFIG_IS_DOMAIN_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_CLOCK))
35 #define GVIR_CONFIG_IS_DOMAIN_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_CLOCK))
36 #define GVIR_CONFIG_DOMAIN_CLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_CLOCK, GVirConfigDomainClockClass))
37
38 typedef struct _GVirConfigDomainClock GVirConfigDomainClock;
39 typedef struct _GVirConfigDomainClockPrivate GVirConfigDomainClockPrivate;
40 typedef struct _GVirConfigDomainClockClass GVirConfigDomainClockClass;
41
42 struct _GVirConfigDomainClock
43 {
44 GVirConfigObject parent;
45
46 GVirConfigDomainClockPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainClockClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_CLOCK_UTC,
60 GVIR_CONFIG_DOMAIN_CLOCK_LOCALTIME,
61 GVIR_CONFIG_DOMAIN_CLOCK_TIMEZONE,
62 GVIR_CONFIG_DOMAIN_CLOCK_VARIABLE
63 } GVirConfigDomainClockOffset;
64
65 GType gvir_config_domain_clock_get_type(void);
66
67 GVirConfigDomainClock *gvir_config_domain_clock_new(void);
68 GVirConfigDomainClock *gvir_config_domain_clock_new_from_xml(const gchar *xml,
69 GError **error);
70 void gvir_config_domain_clock_set_offset(GVirConfigDomainClock *klock,
71 GVirConfigDomainClockOffset offset);
72 void gvir_config_domain_clock_set_timezone(GVirConfigDomainClock *klock,
73 const char *tz);
74 void gvir_config_domain_clock_set_variable_offset(GVirConfigDomainClock *klock,
75 gint seconds);
76
77
78 G_END_DECLS
79
80 #endif /* __LIBVIRT_GCONFIG_DOMAIN_CLOCK_H__ */
0 /*
1 * libvirt-gconfig-domain-console.c: libvirt domain console configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_CONSOLE_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE, GVirConfigDomainConsolePrivate))
29
30 struct _GVirConfigDomainConsolePrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainConsole, gvir_config_domain_console, GVIR_CONFIG_TYPE_DOMAIN_CHARDEV);
36
37
38 static void gvir_config_domain_console_class_init(GVirConfigDomainConsoleClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainConsolePrivate));
41 }
42
43
44 static void gvir_config_domain_console_init(GVirConfigDomainConsole *console)
45 {
46 g_debug("Init GVirConfigDomainConsole=%p", console);
47
48 console->priv = GVIR_CONFIG_DOMAIN_CONSOLE_GET_PRIVATE(console);
49 }
50
51 GVirConfigDomainConsole *gvir_config_domain_console_new(void)
52 {
53 GVirConfigObject *object;
54
55 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_CONSOLE,
56 "console", NULL);
57 return GVIR_CONFIG_DOMAIN_CONSOLE(object);
58 }
59
60 GVirConfigDomainConsole *gvir_config_domain_console_new_from_xml(const gchar *xml,
61 GError **error)
62 {
63 GVirConfigObject *object;
64
65 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_CONSOLE,
66 "console", NULL, xml, error);
67 if (object == NULL)
68 return NULL;
69 return GVIR_CONFIG_DOMAIN_CONSOLE(object);
70 }
71
72 void gvir_config_domain_console_set_target_type(GVirConfigDomainConsole *console,
73 GVirConfigDomainConsoleTargetType type)
74 {
75 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CONSOLE(console));
76
77 gvir_config_object_add_child_with_attribute_enum(GVIR_CONFIG_OBJECT(console),
78 "target", "type",
79 GVIR_CONFIG_TYPE_DOMAIN_CONSOLE_TARGET_TYPE,
80 type);
81 }
0 /*
1 * libvirt-gconfig-domain-console.h: libvirt domain console configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_CONSOLE_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_CONSOLE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_CONSOLE (gvir_config_domain_console_get_type ())
32 #define GVIR_CONFIG_DOMAIN_CONSOLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE, GVirConfigDomainConsole))
33 #define GVIR_CONFIG_DOMAIN_CONSOLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE, GVirConfigDomainConsoleClass))
34 #define GVIR_CONFIG_IS_DOMAIN_CONSOLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE))
35 #define GVIR_CONFIG_IS_DOMAIN_CONSOLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE))
36 #define GVIR_CONFIG_DOMAIN_CONSOLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_CONSOLE, GVirConfigDomainConsoleClass))
37
38 typedef struct _GVirConfigDomainConsole GVirConfigDomainConsole;
39 typedef struct _GVirConfigDomainConsolePrivate GVirConfigDomainConsolePrivate;
40 typedef struct _GVirConfigDomainConsoleClass GVirConfigDomainConsoleClass;
41
42 struct _GVirConfigDomainConsole
43 {
44 GVirConfigDomainChardev parent;
45
46 GVirConfigDomainConsolePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainConsoleClass
52 {
53 GVirConfigDomainChardevClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 typedef enum {
60 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_XEN,
61 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_SERIAL,
62 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_UML,
63 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_VIRTIO,
64 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_LXC,
65 GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_OPENVZ,
66 } GVirConfigDomainConsoleTargetType;
67
68 GType gvir_config_domain_console_get_type(void);
69 GVirConfigDomainConsole *gvir_config_domain_console_new(void);
70 GVirConfigDomainConsole *gvir_config_domain_console_new_from_xml(const gchar *xml,
71 GError **error);
72
73 void gvir_config_domain_console_set_target_type(GVirConfigDomainConsole *console,
74 GVirConfigDomainConsoleTargetType type);
75
76 G_END_DECLS
77
78 #endif /* __LIBVIRT_GCONFIG_DOMAIN_CONSOLE_H__ */
0 /*
1 * libvirt-gconfig-domain-device-private.h: libvirt domain device configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #ifndef __LIBVIRT_GCONFIG_DOMAIN_DEVICE_PRIVATE_H__
23 #define __LIBVIRT_GCONFIG_DOMAIN_DEVICE_PRIVATE_H__
24
25 #include <libvirt-gconfig/libvirt-gconfig-xml-doc.h>
26
27 G_BEGIN_DECLS
28
29 GVirConfigDomainDevice *
30 gvir_config_domain_device_new_from_tree(GVirConfigXmlDoc *doc,
31 xmlNodePtr tree);
32 GVirConfigDomainDevice *
33 gvir_config_domain_disk_new_from_tree(GVirConfigXmlDoc *doc,
34 xmlNodePtr tree);
35 GVirConfigDomainDevice *
36 gvir_config_domain_graphics_new_from_tree(GVirConfigXmlDoc *doc,
37 xmlNodePtr tree);
38 GVirConfigDomainDevice *
39 gvir_config_domain_interface_new_from_tree(GVirConfigXmlDoc *doc,
40 xmlNodePtr tree);
41
42 G_END_DECLS
43
44 #endif /* __LIBVIRT_GCONFIG_DOMAIN_H__ */
0 /*
1 * libvirt-gconfig-domain-device.c: libvirt domain device configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_DEVICE_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_DEVICE, GVirConfigDomainDevicePrivate))
29
30 struct _GVirConfigDomainDevicePrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_ABSTRACT_TYPE(GVirConfigDomainDevice, gvir_config_domain_device, GVIR_CONFIG_TYPE_OBJECT);
36
37
38 static void gvir_config_domain_device_class_init(GVirConfigDomainDeviceClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainDevicePrivate));
41 }
42
43
44 static void gvir_config_domain_device_init(GVirConfigDomainDevice *device)
45 {
46 g_debug("Init GVirConfigDomainDevice=%p", device);
47
48 device->priv = GVIR_CONFIG_DOMAIN_DEVICE_GET_PRIVATE(device);
49 }
50
51 G_GNUC_INTERNAL GVirConfigDomainDevice *
52 gvir_config_domain_device_new_from_tree(GVirConfigXmlDoc *doc,
53 xmlNodePtr tree)
54 {
55 GType type;
56
57 g_return_val_if_fail(GVIR_CONFIG_IS_XML_DOC(doc), NULL);
58 g_return_val_if_fail(tree != NULL, NULL);
59 g_return_val_if_fail(tree->name != NULL, NULL);
60
61 if (xmlStrEqual(tree->name, (xmlChar*)"disk")) {
62 return gvir_config_domain_disk_new_from_tree(doc, tree);
63 } else if (xmlStrEqual(tree->name, (xmlChar*)"filesystem")) {
64 type = GVIR_CONFIG_TYPE_DOMAIN_FILESYS;
65 } else if (xmlStrEqual(tree->name, (xmlChar*)"controller")) {
66 goto unimplemented;
67 } else if (xmlStrEqual(tree->name, (xmlChar*)"lease")) {
68 goto unimplemented;
69 } else if (xmlStrEqual(tree->name, (xmlChar*)"hostdev")) {
70 goto unimplemented;
71 } else if (xmlStrEqual(tree->name, (xmlChar*)"redirdev")) {
72 goto unimplemented;
73 } else if (xmlStrEqual(tree->name, (xmlChar*)"smartcard")) {
74 goto unimplemented;
75 } else if (xmlStrEqual(tree->name, (xmlChar*)"interface")) {
76 return gvir_config_domain_interface_new_from_tree(doc, tree);
77 } else if (xmlStrEqual(tree->name, (xmlChar*)"input")) {
78 type = GVIR_CONFIG_TYPE_DOMAIN_INPUT;
79 } else if (xmlStrEqual(tree->name, (xmlChar*)"hub")) {
80 goto unimplemented;
81 } else if (xmlStrEqual(tree->name, (xmlChar*)"graphics")) {
82 return gvir_config_domain_graphics_new_from_tree(doc, tree);
83 } else if (xmlStrEqual(tree->name, (xmlChar*)"video")) {
84 type = GVIR_CONFIG_TYPE_DOMAIN_VIDEO;
85 } else if (xmlStrEqual(tree->name, (xmlChar*)"parallel")) {
86 type = GVIR_CONFIG_TYPE_DOMAIN_PARALLEL;
87 } else if (xmlStrEqual(tree->name, (xmlChar*)"serial")) {
88 type = GVIR_CONFIG_TYPE_DOMAIN_SERIAL;
89 } else if (xmlStrEqual(tree->name, (xmlChar*)"console")) {
90 type = GVIR_CONFIG_TYPE_DOMAIN_CONSOLE;
91 } else if (xmlStrEqual(tree->name, (xmlChar*)"channel")) {
92 type = GVIR_CONFIG_TYPE_DOMAIN_CHANNEL;
93 } else if (xmlStrEqual(tree->name, (xmlChar*)"watchdog")) {
94 goto unimplemented;
95 } else if (xmlStrEqual(tree->name, (xmlChar*)"sound")) {
96 type = GVIR_CONFIG_TYPE_DOMAIN_SOUND;
97 } else if (xmlStrEqual(tree->name, (xmlChar*)"memballoon")) {
98 type = GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON;
99 } else {
100 g_debug("Unknown device node: %s", tree->name);
101 return NULL;
102 }
103
104 g_return_val_if_fail(g_type_is_a(type, GVIR_CONFIG_TYPE_DOMAIN_DEVICE), NULL);
105
106 return GVIR_CONFIG_DOMAIN_DEVICE(gvir_config_object_new_from_tree(type, doc, NULL, tree));
107 unimplemented:
108 g_debug("Parsing of '%s' device nodes is unimplemented", tree->name);
109 return NULL;
110 }
0 /*
1 * libvirt-gconfig-domain-device.h: libvirt domain device configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_DEVICE_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_DEVICE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_DEVICE (gvir_config_domain_device_get_type ())
32 #define GVIR_CONFIG_DOMAIN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_DEVICE, GVirConfigDomainDevice))
33 #define GVIR_CONFIG_DOMAIN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_DEVICE, GVirConfigDomainDeviceClass))
34 #define GVIR_CONFIG_IS_DOMAIN_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_DEVICE))
35 #define GVIR_CONFIG_IS_DOMAIN_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_DEVICE))
36 #define GVIR_CONFIG_DOMAIN_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_DEVICE, GVirConfigDomainDeviceClass))
37
38 typedef struct _GVirConfigDomainDevice GVirConfigDomainDevice;
39 typedef struct _GVirConfigDomainDevicePrivate GVirConfigDomainDevicePrivate;
40 typedef struct _GVirConfigDomainDeviceClass GVirConfigDomainDeviceClass;
41
42 struct _GVirConfigDomainDevice
43 {
44 GVirConfigObject parent;
45
46 GVirConfigDomainDevicePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainDeviceClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_device_get_type(void);
60
61 G_END_DECLS
62
63 #endif /* __LIBVIRT_GCONFIG_DOMAIN_DEVICE_H__ */
0 /*
1 * libvirt-gconfig-domain-disk.c: libvirt domain disk configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_DISK_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_DISK, GVirConfigDomainDiskPrivate))
29
30 struct _GVirConfigDomainDiskPrivate
31 {
32 GVirConfigDomainDiskType type;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainDisk, gvir_config_domain_disk, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_disk_class_init(GVirConfigDomainDiskClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainDiskPrivate));
41 }
42
43
44 static void gvir_config_domain_disk_init(GVirConfigDomainDisk *disk)
45 {
46 g_debug("Init GVirConfigDomainDisk=%p", disk);
47
48 disk->priv = GVIR_CONFIG_DOMAIN_DISK_GET_PRIVATE(disk);
49 }
50
51
52 GVirConfigDomainDisk *gvir_config_domain_disk_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_DISK,
57 "disk", NULL);
58 return GVIR_CONFIG_DOMAIN_DISK(object);
59 }
60
61 GVirConfigDomainDisk *gvir_config_domain_disk_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_DISK,
66 "disk", NULL, xml, error);
67
68 return GVIR_CONFIG_DOMAIN_DISK(object);
69 }
70
71 GVirConfigDomainDevice *
72 gvir_config_domain_disk_new_from_tree(GVirConfigXmlDoc *doc,
73 xmlNodePtr tree)
74 {
75 GVirConfigObject *object;
76 GVirConfigDomainDisk *disk;
77 GVirConfigDomainDiskType type;
78 xmlChar *type_str;
79
80 type_str = gvir_config_xml_get_attribute_content(tree, "type");
81 if (type_str == NULL)
82 return NULL;
83
84 type = gvir_config_genum_get_value(GVIR_CONFIG_TYPE_DOMAIN_DISK_TYPE,
85 (char *)type_str,
86 GVIR_CONFIG_DOMAIN_DISK_FILE);
87 xmlFree(type_str);
88 if (type == -1)
89 return NULL;
90
91 object = gvir_config_object_new_from_tree(GVIR_CONFIG_TYPE_DOMAIN_DISK,
92 doc, NULL, tree);
93 disk = GVIR_CONFIG_DOMAIN_DISK(object);
94 disk->priv->type = type;
95
96 return GVIR_CONFIG_DOMAIN_DEVICE(object);
97 }
98
99 void gvir_config_domain_disk_set_type(GVirConfigDomainDisk *disk,
100 GVirConfigDomainDiskType type)
101 {
102 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
103
104 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(disk), "type",
105 GVIR_CONFIG_TYPE_DOMAIN_DISK_TYPE,
106 type, NULL);
107 disk->priv->type = type;
108 }
109
110 void gvir_config_domain_disk_set_guest_device_type(GVirConfigDomainDisk *disk,
111 GVirConfigDomainDiskGuestDeviceType type)
112 {
113 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
114
115 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(disk), "device",
116 GVIR_CONFIG_TYPE_DOMAIN_DISK_GUEST_DEVICE_TYPE,
117 type, NULL);
118 }
119
120 void gvir_config_domain_disk_set_snapshot_type(GVirConfigDomainDisk *disk,
121 GVirConfigDomainDiskSnapshotType type)
122 {
123 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
124
125 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(disk), "snapshot",
126 GVIR_CONFIG_TYPE_DOMAIN_DISK_SNAPSHOT_TYPE,
127 type, NULL);
128 }
129
130 void gvir_config_domain_disk_set_source(GVirConfigDomainDisk *disk,
131 const char *source)
132 {
133 const char *attribute_name;
134
135 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
136
137 switch (disk->priv->type) {
138 case GVIR_CONFIG_DOMAIN_DISK_FILE:
139 attribute_name = "file";
140 break;
141 case GVIR_CONFIG_DOMAIN_DISK_BLOCK:
142 attribute_name = "dev";
143 break;
144 case GVIR_CONFIG_DOMAIN_DISK_DIR:
145 attribute_name = "dir";
146 break;
147 case GVIR_CONFIG_DOMAIN_DISK_NETWORK:
148 attribute_name = "protocol";
149 break;
150 default:
151 g_return_if_reached();
152 }
153 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(disk),
154 "source",
155 attribute_name, source);
156 }
157
158 void gvir_config_domain_disk_set_driver_name(GVirConfigDomainDisk *disk,
159 const char *driver_name)
160 {
161 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
162 gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(disk),
163 "driver", "name", driver_name);
164 }
165
166 void gvir_config_domain_disk_set_driver_type(GVirConfigDomainDisk *disk,
167 const char *driver_type)
168 {
169 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
170 gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(disk),
171 "driver", "type", driver_type);
172 }
173
174 void gvir_config_domain_disk_set_target_bus(GVirConfigDomainDisk *disk,
175 GVirConfigDomainDiskBus bus)
176 {
177 const char *bus_str;
178
179 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
180 bus_str = gvir_config_genum_get_nick(GVIR_CONFIG_TYPE_DOMAIN_DISK_BUS, bus);
181 g_return_if_fail(bus_str != NULL);
182 gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(disk),
183 "target", "bus", bus_str);
184 }
185
186 void gvir_config_domain_disk_set_target_dev(GVirConfigDomainDisk *disk,
187 const char *dev)
188 {
189 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
190 gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(disk),
191 "target", "dev", dev);
192 }
193
194 GVirConfigDomainDiskType
195 gvir_config_domain_disk_get_disk_type(GVirConfigDomainDisk *disk)
196 {
197 return disk->priv->type;
198 }
199
200 GVirConfigDomainDiskGuestDeviceType
201 gvir_config_domain_disk_get_guest_device_type(GVirConfigDomainDisk *disk)
202 {
203 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk),
204 GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_DISK);
205
206 return gvir_config_object_get_attribute_genum(GVIR_CONFIG_OBJECT(disk),
207 NULL,
208 "device",
209 GVIR_CONFIG_TYPE_DOMAIN_DISK_GUEST_DEVICE_TYPE,
210 GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_DISK);
211 }
212
213 GVirConfigDomainDiskSnapshotType
214 gvir_config_domain_disk_get_snapshot_type(GVirConfigDomainDisk *disk)
215 {
216 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk),
217 GVIR_CONFIG_DOMAIN_DISK_SNAPSHOT_NO);
218
219 return gvir_config_object_get_attribute_genum(GVIR_CONFIG_OBJECT(disk),
220 NULL,
221 "snapshot",
222 GVIR_CONFIG_TYPE_DOMAIN_DISK_SNAPSHOT_TYPE,
223 GVIR_CONFIG_DOMAIN_DISK_SNAPSHOT_NO);
224 }
225
226 char *
227 gvir_config_domain_disk_get_source(GVirConfigDomainDisk *disk)
228 {
229 const char *attribute_name;
230
231 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk), NULL);
232
233 switch (disk->priv->type) {
234 case GVIR_CONFIG_DOMAIN_DISK_FILE:
235 attribute_name = "file";
236 break;
237 case GVIR_CONFIG_DOMAIN_DISK_BLOCK:
238 attribute_name = "dev";
239 break;
240 case GVIR_CONFIG_DOMAIN_DISK_DIR:
241 attribute_name = "dir";
242 break;
243 case GVIR_CONFIG_DOMAIN_DISK_NETWORK:
244 attribute_name = "protocol";
245 break;
246 default:
247 g_return_val_if_reached(NULL);
248 }
249 return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(disk),
250 "source", attribute_name);
251 }
252
253 char *
254 gvir_config_domain_disk_get_driver_name(GVirConfigDomainDisk *disk)
255 {
256 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk), NULL);
257
258 return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(disk),
259 "driver", "name");
260 }
261
262 char *
263 gvir_config_domain_disk_get_driver_type(GVirConfigDomainDisk *disk)
264 {
265 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk), NULL);
266
267 return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(disk),
268 "driver", "type");
269 }
270
271 GVirConfigDomainDiskBus
272 gvir_config_domain_disk_get_target_bus(GVirConfigDomainDisk *disk)
273 {
274 /* FIXME: the default value depends on the "name" attribute, should we
275 * copy what libvirt is doing here?
276 */
277 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk),
278 GVIR_CONFIG_DOMAIN_DISK_BUS_IDE);
279
280 return gvir_config_object_get_attribute_genum(GVIR_CONFIG_OBJECT(disk),
281 "target", "snapshot",
282 GVIR_CONFIG_TYPE_DOMAIN_DISK_BUS,
283 GVIR_CONFIG_DOMAIN_DISK_BUS_IDE);
284 }
285
286 char *
287 gvir_config_domain_disk_get_target_dev(GVirConfigDomainDisk *disk)
288 {
289 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk), NULL);
290
291 return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(disk),
292 "target", "dev");
293 }
0 /*
1 * libvirt-gconfig-domain-disk.h: libvirt domain disk configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_DISK_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_DISK_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_DISK (gvir_config_domain_disk_get_type ())
32 #define GVIR_CONFIG_DOMAIN_DISK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_DISK, GVirConfigDomainDisk))
33 #define GVIR_CONFIG_DOMAIN_DISK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_DISK, GVirConfigDomainDiskClass))
34 #define GVIR_CONFIG_IS_DOMAIN_DISK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_DISK))
35 #define GVIR_CONFIG_IS_DOMAIN_DISK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_DISK))
36 #define GVIR_CONFIG_DOMAIN_DISK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_DISK, GVirConfigDomainDiskClass))
37
38 typedef struct _GVirConfigDomainDisk GVirConfigDomainDisk;
39 typedef struct _GVirConfigDomainDiskPrivate GVirConfigDomainDiskPrivate;
40 typedef struct _GVirConfigDomainDiskClass GVirConfigDomainDiskClass;
41
42 struct _GVirConfigDomainDisk
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainDiskPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainDiskClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_DISK_FILE,
60 GVIR_CONFIG_DOMAIN_DISK_BLOCK,
61 GVIR_CONFIG_DOMAIN_DISK_DIR,
62 GVIR_CONFIG_DOMAIN_DISK_NETWORK
63 } GVirConfigDomainDiskType;
64
65 typedef enum {
66 GVIR_CONFIG_DOMAIN_DISK_BUS_IDE,
67 GVIR_CONFIG_DOMAIN_DISK_BUS_FDC,
68 GVIR_CONFIG_DOMAIN_DISK_BUS_SCSI,
69 GVIR_CONFIG_DOMAIN_DISK_BUS_VIRTIO,
70 GVIR_CONFIG_DOMAIN_DISK_BUS_XEN,
71 GVIR_CONFIG_DOMAIN_DISK_BUS_USB,
72 GVIR_CONFIG_DOMAIN_DISK_BUS_UML,
73 GVIR_CONFIG_DOMAIN_DISK_BUS_SATA
74 } GVirConfigDomainDiskBus;
75
76 typedef enum {
77 GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_DISK,
78 GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_FLOPPY,
79 GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_CDROM
80 } GVirConfigDomainDiskGuestDeviceType;
81
82 typedef enum {
83 GVIR_CONFIG_DOMAIN_DISK_SNAPSHOT_NO,
84 GVIR_CONFIG_DOMAIN_DISK_SNAPSHOT_INTERNAL,
85 GVIR_CONFIG_DOMAIN_DISK_SNAPSHOT_EXTERNAL
86 } GVirConfigDomainDiskSnapshotType;
87
88 GType gvir_config_domain_disk_get_type(void);
89
90 GVirConfigDomainDisk *gvir_config_domain_disk_new(void);
91 GVirConfigDomainDisk *gvir_config_domain_disk_new_from_xml(const gchar *xml,
92 GError **error);
93
94 void gvir_config_domain_disk_set_type(GVirConfigDomainDisk *disk,
95 GVirConfigDomainDiskType type);
96 void gvir_config_domain_disk_set_guest_device_type(GVirConfigDomainDisk *disk,
97 GVirConfigDomainDiskGuestDeviceType type);
98 void gvir_config_domain_disk_set_snapshot_type(GVirConfigDomainDisk *disk,
99 GVirConfigDomainDiskSnapshotType type);
100 void gvir_config_domain_disk_set_source(GVirConfigDomainDisk *disk,
101 const char *source);
102 void gvir_config_domain_disk_set_driver_name(GVirConfigDomainDisk *disk,
103 const char *driver_name);
104 void gvir_config_domain_disk_set_driver_type(GVirConfigDomainDisk *disk,
105 const char *driver_type);
106 void gvir_config_domain_disk_set_target_bus(GVirConfigDomainDisk *disk,
107 GVirConfigDomainDiskBus bus);
108 void gvir_config_domain_disk_set_target_dev(GVirConfigDomainDisk *disk,
109 const char *dev);
110
111 GVirConfigDomainDiskType gvir_config_domain_disk_get_disk_type(GVirConfigDomainDisk *disk);
112 GVirConfigDomainDiskGuestDeviceType gvir_config_domain_disk_get_guest_device_type(GVirConfigDomainDisk *disk);
113 GVirConfigDomainDiskSnapshotType gvir_config_domain_disk_get_snapshot_type(GVirConfigDomainDisk *disk);
114 char *gvir_config_domain_disk_get_source(GVirConfigDomainDisk *disk);
115 char *gvir_config_domain_disk_get_driver_name(GVirConfigDomainDisk *disk);
116 char *gvir_config_domain_disk_get_driver_type(GVirConfigDomainDisk *disk);
117 GVirConfigDomainDiskBus gvir_config_domain_disk_get_target_bus(GVirConfigDomainDisk *disk);
118 char *gvir_config_domain_disk_get_target_dev(GVirConfigDomainDisk *disk);
119
120 G_END_DECLS
121
122 #endif /* __LIBVIRT_GCONFIG_DOMAIN_DISK_H__ */
0 /*
1 * libvirt-gconfig-domain-filesys.c: libvirt domain filesystem configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_FILESYS_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_FILESYS, GVirConfigDomainFilesysPrivate))
29
30 struct _GVirConfigDomainFilesysPrivate
31 {
32 GVirConfigDomainFilesysType type;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainFilesys, gvir_config_domain_filesys, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_filesys_class_init(GVirConfigDomainFilesysClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainFilesysPrivate));
41 }
42
43
44 static void gvir_config_domain_filesys_init(GVirConfigDomainFilesys *filesys)
45 {
46 g_debug("Init GVirConfigDomainFilesys=%p", filesys);
47
48 filesys->priv = GVIR_CONFIG_DOMAIN_FILESYS_GET_PRIVATE(filesys);
49 }
50
51
52 GVirConfigDomainFilesys *gvir_config_domain_filesys_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_FILESYS,
57 "filesystem", NULL);
58 return GVIR_CONFIG_DOMAIN_FILESYS(object);
59 }
60
61 GVirConfigDomainFilesys *gvir_config_domain_filesys_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_FILESYS,
67 "filesystem", NULL, xml, error);
68 return GVIR_CONFIG_DOMAIN_FILESYS(object);
69 }
70
71 void gvir_config_domain_filesys_set_type(GVirConfigDomainFilesys *filesys,
72 GVirConfigDomainFilesysType type)
73 {
74 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_FILESYS(filesys));
75
76 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(filesys),
77 "type",
78 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_TYPE,
79 type,
80 NULL);
81 }
82
83 void gvir_config_domain_filesys_set_access_type(GVirConfigDomainFilesys *filesys,
84 GVirConfigDomainFilesysAccessType type)
85 {
86 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_FILESYS(filesys));
87
88 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(filesys),
89 "accessmode",
90 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_ACCESS_TYPE,
91 type,
92 NULL);
93 }
94
95 void gvir_config_domain_filesys_set_driver_type(GVirConfigDomainFilesys *filesys,
96 GVirConfigDomainFilesysDriverType type)
97 {
98 GVirConfigObject *node;
99
100 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_FILESYS(filesys));
101 node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(filesys), "driver");
102 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
103 if (type != GVIR_CONFIG_DOMAIN_FILESYS_DRIVER_DEFAULT)
104 gvir_config_object_set_attribute_with_type(
105 node, "type",
106 GVIR_CONFIG_TYPE_DOMAIN_FILESYS_DRIVER_TYPE,
107 type, NULL);
108 else
109 gvir_config_object_remove_attribute(node, "type");
110 g_object_unref(G_OBJECT(node));
111 }
112
113 void gvir_config_domain_filesys_set_source(GVirConfigDomainFilesys *filesys,
114 const char *source)
115 {
116 const char *attribute_name;
117
118 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_FILESYS(filesys));
119
120 switch (filesys->priv->type) {
121 case GVIR_CONFIG_DOMAIN_FILESYS_MOUNT:
122 attribute_name = "dir";
123 break;
124 case GVIR_CONFIG_DOMAIN_FILESYS_FILE:
125 attribute_name = "file";
126 break;
127 case GVIR_CONFIG_DOMAIN_FILESYS_BLOCK:
128 attribute_name = "dev";
129 break;
130 case GVIR_CONFIG_DOMAIN_FILESYS_TEMPLATE:
131 attribute_name = "name";
132 break;
133 default:
134 g_return_if_reached();
135 }
136
137 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(filesys),
138 "source",
139 attribute_name, source);
140 }
141
142
143 void gvir_config_domain_filesys_set_target(GVirConfigDomainFilesys *filesys,
144 const char *path)
145 {
146 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_FILESYS(filesys));
147 gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(filesys),
148 "target", "dir", path);
149 }
150
151 void gvir_config_domain_filesys_set_readonly(GVirConfigDomainFilesys *filesys,
152 gboolean readonly)
153 {
154 if (readonly) {
155 GVirConfigObject *node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(filesys), "readonly");
156 g_object_unref(node);
157 } else {
158 gvir_config_object_delete_child(GVIR_CONFIG_OBJECT(filesys), "readonly");
159 }
160 }
0 /*
1 * libvirt-gconfig-domain-filesys.h: libvirt domain filesystem configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_FILESYS_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_FILESYS_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_FILESYS (gvir_config_domain_filesys_get_type ())
32 #define GVIR_CONFIG_DOMAIN_FILESYS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_FILESYS, GVirConfigDomainFilesys))
33 #define GVIR_CONFIG_DOMAIN_FILESYS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_FILESYS, GVirConfigDomainFilesysClass))
34 #define GVIR_CONFIG_IS_DOMAIN_FILESYS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_FILESYS))
35 #define GVIR_CONFIG_IS_DOMAIN_FILESYS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_FILESYS))
36 #define GVIR_CONFIG_DOMAIN_FILESYS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_FILESYS, GVirConfigDomainFilesysClass))
37
38 typedef struct _GVirConfigDomainFilesys GVirConfigDomainFilesys;
39 typedef struct _GVirConfigDomainFilesysPrivate GVirConfigDomainFilesysPrivate;
40 typedef struct _GVirConfigDomainFilesysClass GVirConfigDomainFilesysClass;
41
42 struct _GVirConfigDomainFilesys
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainFilesysPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainFilesysClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_FILESYS_MOUNT,
60 GVIR_CONFIG_DOMAIN_FILESYS_BLOCK,
61 GVIR_CONFIG_DOMAIN_FILESYS_FILE,
62 GVIR_CONFIG_DOMAIN_FILESYS_TEMPLATE,
63 } GVirConfigDomainFilesysType;
64
65 typedef enum {
66 GVIR_CONFIG_DOMAIN_FILESYS_ACCESS_PASSTHROUGH,
67 GVIR_CONFIG_DOMAIN_FILESYS_ACCESS_MAPPED,
68 GVIR_CONFIG_DOMAIN_FILESYS_ACCESS_SQUASHED,
69 } GVirConfigDomainFilesysAccessType;
70
71 typedef enum {
72 GVIR_CONFIG_DOMAIN_FILESYS_DRIVER_DEFAULT,
73 GVIR_CONFIG_DOMAIN_FILESYS_DRIVER_PATH,
74 GVIR_CONFIG_DOMAIN_FILESYS_DRIVER_HANDLE,
75 } GVirConfigDomainFilesysDriverType;
76
77 GType gvir_config_domain_filesys_get_type(void);
78
79 GVirConfigDomainFilesys *gvir_config_domain_filesys_new(void);
80 GVirConfigDomainFilesys *gvir_config_domain_filesys_new_from_xml(const gchar *xml,
81 GError **error);
82
83 void gvir_config_domain_filesys_set_type(GVirConfigDomainFilesys *filesys,
84 GVirConfigDomainFilesysType type);
85 void gvir_config_domain_filesys_set_access_type(GVirConfigDomainFilesys *filesys,
86 GVirConfigDomainFilesysAccessType type);
87 void gvir_config_domain_filesys_set_driver_type(GVirConfigDomainFilesys *filesys,
88 GVirConfigDomainFilesysDriverType type);
89 void gvir_config_domain_filesys_set_source(GVirConfigDomainFilesys *filesys,
90 const char *source);
91 void gvir_config_domain_filesys_set_target(GVirConfigDomainFilesys *filesys,
92 const char *target);
93 void gvir_config_domain_filesys_set_readonly(GVirConfigDomainFilesys *filesys,
94 gboolean readonly);
95 G_END_DECLS
96
97 #endif /* __LIBVIRT_GCONFIG_DOMAIN_FILESYS_H__ */
0 /*
1 * libvirt-gconfig-domain-graphics-sdl.c: libvirt domain SDL configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SDL_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL, GVirConfigDomainGraphicsSdlPrivate))
29
30 struct _GVirConfigDomainGraphicsSdlPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainGraphicsSdl, gvir_config_domain_graphics_sdl, GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS);
36
37
38 static void gvir_config_domain_graphics_sdl_class_init(GVirConfigDomainGraphicsSdlClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainGraphicsSdlPrivate));
41 }
42
43
44 static void gvir_config_domain_graphics_sdl_init(GVirConfigDomainGraphicsSdl *graphics_sdl)
45 {
46 g_debug("Init GVirConfigDomainGraphicsSdl=%p", graphics_sdl);
47
48 graphics_sdl->priv = GVIR_CONFIG_DOMAIN_GRAPHICS_SDL_GET_PRIVATE(graphics_sdl);
49 }
50
51
52 GVirConfigDomainGraphicsSdl *gvir_config_domain_graphics_sdl_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL,
57 "graphics", NULL);
58 gvir_config_object_set_attribute(object, "type", "sdl", NULL);
59 return GVIR_CONFIG_DOMAIN_GRAPHICS_SDL(object);
60 }
61
62 GVirConfigDomainGraphicsSdl *
63 gvir_config_domain_graphics_sdl_new_from_xml(const gchar *xml,
64 GError **error)
65 {
66 GVirConfigObject *object;
67
68 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL,
69 "graphics", NULL, xml, error);
70 if (object == NULL)
71 return NULL;
72 gvir_config_object_set_attribute(object, "type", "sdl", NULL);
73 return GVIR_CONFIG_DOMAIN_GRAPHICS_SDL(object);
74 }
75
76 void gvir_config_domain_graphics_sdl_set_xauthority(GVirConfigDomainGraphicsSdl *graphics,
77 const gchar *path)
78 {
79 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SDL(graphics));
80
81 gvir_config_object_set_attribute(GVIR_CONFIG_OBJECT(graphics),
82 "xauth", path,
83 NULL);
84 }
85
86 void gvir_config_domain_graphics_sdl_set_display(GVirConfigDomainGraphicsSdl *graphics,
87 const gchar *disp)
88 {
89 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SDL(graphics));
90
91 gvir_config_object_set_attribute(GVIR_CONFIG_OBJECT(graphics),
92 "display", disp,
93 NULL);
94 }
0 /*
1 * libvirt-gconfig-domain-graphics-sdl.h: libvirt domain SDL configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_SDL_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_SDL_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL (gvir_config_domain_graphics_sdl_get_type ())
32 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SDL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL, GVirConfigDomainGraphicsSdl))
33 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SDL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL, GVirConfigDomainGraphicsSdlClass))
34 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SDL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL))
35 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SDL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL))
36 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SDL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL, GVirConfigDomainGraphicsSdlClass))
37
38 typedef struct _GVirConfigDomainGraphicsSdl GVirConfigDomainGraphicsSdl;
39 typedef struct _GVirConfigDomainGraphicsSdlPrivate GVirConfigDomainGraphicsSdlPrivate;
40 typedef struct _GVirConfigDomainGraphicsSdlClass GVirConfigDomainGraphicsSdlClass;
41
42 struct _GVirConfigDomainGraphicsSdl
43 {
44 GVirConfigDomainGraphics parent;
45
46 GVirConfigDomainGraphicsSdlPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainGraphicsSdlClass
52 {
53 GVirConfigDomainGraphicsClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 GType gvir_config_domain_graphics_sdl_get_type(void);
59
60 GVirConfigDomainGraphicsSdl *gvir_config_domain_graphics_sdl_new(void);
61 GVirConfigDomainGraphicsSdl *gvir_config_domain_graphics_sdl_new_from_xml(const gchar *xml,
62 GError **error);
63 void gvir_config_domain_graphics_sdl_set_xauthority(GVirConfigDomainGraphicsSdl *graphics,
64 const gchar *path);
65 void gvir_config_domain_graphics_sdl_set_display(GVirConfigDomainGraphicsSdl *graphics,
66 const gchar *disp);
67
68 G_END_DECLS
69
70 #endif /* __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_SDL_H__ */
0 /*
1 * libvirt-gconfig-domain-graphics-spice.c: libvirt domain SPICE configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE, GVirConfigDomainGraphicsSpicePrivate))
29
30 struct _GVirConfigDomainGraphicsSpicePrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainGraphicsSpice, gvir_config_domain_graphics_spice, GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS);
36
37
38 static void gvir_config_domain_graphics_spice_class_init(GVirConfigDomainGraphicsSpiceClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainGraphicsSpicePrivate));
41 }
42
43
44 static void gvir_config_domain_graphics_spice_init(GVirConfigDomainGraphicsSpice *graphics_spice)
45 {
46 g_debug("Init GVirConfigDomainGraphicsSpice=%p", graphics_spice);
47
48 graphics_spice->priv = GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE_GET_PRIVATE(graphics_spice);
49 }
50
51
52 GVirConfigDomainGraphicsSpice *gvir_config_domain_graphics_spice_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE,
57 "graphics", NULL);
58 gvir_config_object_set_attribute(object, "type", "spice", NULL);
59 return GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE(object);
60 }
61
62 GVirConfigDomainGraphicsSpice *
63 gvir_config_domain_graphics_spice_new_from_xml(const gchar *xml,
64 GError **error)
65 {
66 GVirConfigObject *object;
67
68 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE,
69 "graphics", NULL, xml, error);
70 if (object == NULL)
71 return NULL;
72 gvir_config_object_set_attribute(object, "type", "spice", NULL);
73 return GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE(object);
74 }
75
76 void gvir_config_domain_graphics_spice_set_autoport(GVirConfigDomainGraphicsSpice *graphics,
77 gboolean autoport)
78 {
79 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(graphics));
80
81 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(graphics),
82 "autoport", G_TYPE_BOOLEAN, autoport,
83 NULL);
84 }
85
86 void gvir_config_domain_graphics_spice_set_password(GVirConfigDomainGraphicsSpice *graphics,
87 const char *password)
88 {
89 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(graphics));
90
91 gvir_config_object_set_attribute(GVIR_CONFIG_OBJECT(graphics),
92 "passwd", password,
93 NULL);
94 }
95
96 void gvir_config_domain_graphics_spice_set_port(GVirConfigDomainGraphicsSpice *graphics,
97 int port)
98 {
99 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(graphics));
100
101 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(graphics),
102 "port", G_TYPE_INT, port,
103 NULL);
104 }
105
106 void gvir_config_domain_graphics_spice_set_tls_port(GVirConfigDomainGraphicsSpice *graphics,
107 int port)
108 {
109 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(graphics));
110
111 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(graphics),
112 "tlsPort", G_TYPE_INT, port,
113 NULL);
114 }
0 /*
1 * libvirt-gconfig-domain-graphics-spice.h: libvirt domain SPICE confiiguration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_SPICE_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_SPICE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE (gvir_config_domain_graphics_spice_get_type ())
32 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE, GVirConfigDomainGraphicsSpice))
33 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE, GVirConfigDomainGraphicsSpiceClass))
34 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE))
35 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_SPICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE))
36 #define GVIR_CONFIG_DOMAIN_GRAPHICS_SPICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE, GVirConfigDomainGraphicsSpiceClass))
37
38 typedef struct _GVirConfigDomainGraphicsSpice GVirConfigDomainGraphicsSpice;
39 typedef struct _GVirConfigDomainGraphicsSpicePrivate GVirConfigDomainGraphicsSpicePrivate;
40 typedef struct _GVirConfigDomainGraphicsSpiceClass GVirConfigDomainGraphicsSpiceClass;
41
42 struct _GVirConfigDomainGraphicsSpice
43 {
44 GVirConfigDomainGraphics parent;
45
46 GVirConfigDomainGraphicsSpicePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainGraphicsSpiceClass
52 {
53 GVirConfigDomainGraphicsClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 GType gvir_config_domain_graphics_spice_get_type(void);
59
60 GVirConfigDomainGraphicsSpice *gvir_config_domain_graphics_spice_new(void);
61 GVirConfigDomainGraphicsSpice *gvir_config_domain_graphics_spice_new_from_xml(const gchar *xml,
62 GError **error);
63
64 void gvir_config_domain_graphics_spice_set_autoport(GVirConfigDomainGraphicsSpice *graphics,
65 gboolean autoport);
66
67 void gvir_config_domain_graphics_spice_set_password(GVirConfigDomainGraphicsSpice *graphics,
68 const char *password);
69
70 void gvir_config_domain_graphics_spice_set_port(GVirConfigDomainGraphicsSpice *graphics,
71 int port);
72
73 void gvir_config_domain_graphics_spice_set_tls_port(GVirConfigDomainGraphicsSpice *graphics,
74 int port);
75
76 G_END_DECLS
77
78 #endif /* __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_SPICE_H__ */
0 /*
1 * libvirt-gconfig-domain-graphics-vnc.c: libvirt domain VNC configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_GRAPHICS_VNC_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC, GVirConfigDomainGraphicsVncPrivate))
29
30 struct _GVirConfigDomainGraphicsVncPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainGraphicsVnc, gvir_config_domain_graphics_vnc, GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS);
36
37
38 static void gvir_config_domain_graphics_vnc_class_init(GVirConfigDomainGraphicsVncClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainGraphicsVncPrivate));
41 }
42
43
44 static void gvir_config_domain_graphics_vnc_init(GVirConfigDomainGraphicsVnc *graphics_vnc)
45 {
46 g_debug("Init GVirConfigDomainGraphicsVnc=%p", graphics_vnc);
47
48 graphics_vnc->priv = GVIR_CONFIG_DOMAIN_GRAPHICS_VNC_GET_PRIVATE(graphics_vnc);
49 }
50
51
52 GVirConfigDomainGraphicsVnc *gvir_config_domain_graphics_vnc_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC,
57 "graphics", NULL);
58 gvir_config_object_set_attribute(object, "type", "vnc", NULL);
59 return GVIR_CONFIG_DOMAIN_GRAPHICS_VNC(object);
60 }
61
62 GVirConfigDomainGraphicsVnc *
63 gvir_config_domain_graphics_vnc_new_from_xml(const gchar *xml,
64 GError **error)
65 {
66 GVirConfigObject *object;
67
68 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC,
69 "graphics", NULL, xml, error);
70 if (object == NULL)
71 return NULL;
72 gvir_config_object_set_attribute(object, "type", "vnc", NULL);
73 return GVIR_CONFIG_DOMAIN_GRAPHICS_VNC(object);
74 }
75
76
77 void gvir_config_domain_graphics_vnc_set_autoport(GVirConfigDomainGraphicsVnc *graphics,
78 gboolean autoport)
79 {
80 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_VNC(graphics));
81
82 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(graphics),
83 "autoport", G_TYPE_BOOLEAN, autoport,
84 NULL);
85 }
86
87 void gvir_config_domain_graphics_vnc_set_port(GVirConfigDomainGraphicsVnc *graphics,
88 int port)
89 {
90 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_VNC(graphics));
91
92 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(graphics),
93 "port", G_TYPE_INT, port,
94 NULL);
95 }
96
97 void gvir_config_domain_graphics_vnc_set_password(GVirConfigDomainGraphicsVnc *graphics,
98 const char *password)
99 {
100 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_VNC(graphics));
101
102 gvir_config_object_set_attribute(GVIR_CONFIG_OBJECT(graphics),
103 "passwd", password,
104 NULL);
105 }
0 /*
1 * libvirt-gconfig-domain-graphics-vnc.h: libvirt domain VNC graphics configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_VNC_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_VNC_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC (gvir_config_domain_graphics_vnc_get_type ())
32 #define GVIR_CONFIG_DOMAIN_GRAPHICS_VNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC, GVirConfigDomainGraphicsVnc))
33 #define GVIR_CONFIG_DOMAIN_GRAPHICS_VNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC, GVirConfigDomainGraphicsVncClass))
34 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_VNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC))
35 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_VNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC))
36 #define GVIR_CONFIG_DOMAIN_GRAPHICS_VNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC, GVirConfigDomainGraphicsVncClass))
37
38 typedef struct _GVirConfigDomainGraphicsVnc GVirConfigDomainGraphicsVnc;
39 typedef struct _GVirConfigDomainGraphicsVncPrivate GVirConfigDomainGraphicsVncPrivate;
40 typedef struct _GVirConfigDomainGraphicsVncClass GVirConfigDomainGraphicsVncClass;
41
42 struct _GVirConfigDomainGraphicsVnc
43 {
44 GVirConfigDomainGraphics parent;
45
46 GVirConfigDomainGraphicsVncPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainGraphicsVncClass
52 {
53 GVirConfigDomainGraphicsClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 GType gvir_config_domain_graphics_vnc_get_type(void);
59
60 GVirConfigDomainGraphicsVnc *gvir_config_domain_graphics_vnc_new(void);
61 GVirConfigDomainGraphicsVnc *gvir_config_domain_graphics_vnc_new_from_xml(const gchar *xml,
62 GError **error);
63
64 void gvir_config_domain_graphics_vnc_set_autoport(GVirConfigDomainGraphicsVnc *graphics,
65 gboolean autoport);
66
67 void gvir_config_domain_graphics_vnc_set_port(GVirConfigDomainGraphicsVnc *graphics,
68 int port);
69
70 void gvir_config_domain_graphics_vnc_set_password(GVirConfigDomainGraphicsVnc *graphics,
71 const char *password);
72
73 G_END_DECLS
74
75 #endif /* __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_VNC_H__ */
0 /*
1 * libvirt-gconfig-domain-graphics.c: libvirt domain graphics configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_GRAPHICS_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS, GVirConfigDomainGraphicsPrivate))
29
30 struct _GVirConfigDomainGraphicsPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_ABSTRACT_TYPE(GVirConfigDomainGraphics, gvir_config_domain_graphics, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_graphics_class_init(GVirConfigDomainGraphicsClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainGraphicsPrivate));
41 }
42
43
44 static void gvir_config_domain_graphics_init(GVirConfigDomainGraphics *graphics)
45 {
46 g_debug("Init GVirConfigDomainGraphics=%p", graphics);
47
48 graphics->priv = GVIR_CONFIG_DOMAIN_GRAPHICS_GET_PRIVATE(graphics);
49 }
50
51 G_GNUC_INTERNAL GVirConfigDomainDevice *
52 gvir_config_domain_graphics_new_from_tree(GVirConfigXmlDoc *doc,
53 xmlNodePtr tree)
54 {
55 xmlChar *type;
56 GType gtype;
57
58 type = gvir_config_xml_get_attribute_content(tree, "type");
59 if (type == NULL)
60 return NULL;
61
62 if (xmlStrEqual(type, (xmlChar*)"sdl")) {
63 gtype = GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SDL;
64 } else if (xmlStrEqual(type, (xmlChar*)"vnc")) {
65 gtype = GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_VNC;
66 } else if (xmlStrEqual(type, (xmlChar*)"spice")) {
67 gtype = GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS_SPICE;
68 } else if (xmlStrEqual(type, (xmlChar*)"rdp")) {
69 goto unimplemented;
70 } else if (xmlStrEqual(type, (xmlChar*)"desktop")) {
71 goto unimplemented;
72 } else {
73 g_debug("Unknown graphics node: %s", type);
74 return NULL;
75 }
76 xmlFree(type);
77
78 return GVIR_CONFIG_DOMAIN_DEVICE(gvir_config_object_new_from_tree(gtype, doc, NULL, tree));
79
80 unimplemented:
81 g_debug("Parsing of '%s' graphics nodes is unimplemented", type);
82 return NULL;
83 }
0 /*
1 * libvirt-gconfig-domain-graphics.h: libvirt domain graphics configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS (gvir_config_domain_graphics_get_type ())
32 #define GVIR_CONFIG_DOMAIN_GRAPHICS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS, GVirConfigDomainGraphics))
33 #define GVIR_CONFIG_DOMAIN_GRAPHICS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS, GVirConfigDomainGraphicsClass))
34 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS))
35 #define GVIR_CONFIG_IS_DOMAIN_GRAPHICS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS))
36 #define GVIR_CONFIG_DOMAIN_GRAPHICS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_GRAPHICS, GVirConfigDomainGraphicsClass))
37
38 typedef struct _GVirConfigDomainGraphics GVirConfigDomainGraphics;
39 typedef struct _GVirConfigDomainGraphicsPrivate GVirConfigDomainGraphicsPrivate;
40 typedef struct _GVirConfigDomainGraphicsClass GVirConfigDomainGraphicsClass;
41
42 struct _GVirConfigDomainGraphics
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainGraphicsPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainGraphicsClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_graphics_get_type(void);
60
61 G_END_DECLS
62
63 #endif /* __LIBVIRT_GCONFIG_DOMAIN_GRAPHICS_H__ */
0 /*
1 * libvirt-gconfig-device-input.c: libvirt domain input configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_INPUT_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_INPUT, GVirConfigDomainInputPrivate))
29
30 struct _GVirConfigDomainInputPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainInput, gvir_config_domain_input, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_input_class_init(GVirConfigDomainInputClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainInputPrivate));
41 }
42
43
44 static void gvir_config_domain_input_init(GVirConfigDomainInput *device_input)
45 {
46 g_debug("Init GVirConfigDomainInput=%p", device_input);
47
48 device_input->priv = GVIR_CONFIG_DOMAIN_INPUT_GET_PRIVATE(device_input);
49 }
50
51
52 GVirConfigDomainInput *gvir_config_domain_input_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_INPUT,
57 "input", NULL);
58 return GVIR_CONFIG_DOMAIN_INPUT(object);
59 }
60
61 GVirConfigDomainInput *gvir_config_domain_input_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_INPUT,
67 "input", NULL, xml, error);
68 return GVIR_CONFIG_DOMAIN_INPUT(object);
69 }
70
71 void gvir_config_domain_input_set_device_type(GVirConfigDomainInput *input,
72 GVirConfigDomainInputDeviceType type)
73 {
74 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INPUT(input));
75
76 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(input), "type",
77 GVIR_CONFIG_TYPE_DOMAIN_INPUT_DEVICE_TYPE,
78 type, NULL);
79 }
80
81 void gvir_config_domain_input_set_bus(GVirConfigDomainInput *input,
82 GVirConfigDomainInputBus bus)
83 {
84 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INPUT(input));
85
86 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(input), "bus",
87 GVIR_CONFIG_TYPE_DOMAIN_INPUT_BUS,
88 bus, NULL);
89 }
0 /*
1 * libvirt-gconfig-domain-input.c: libvirt domain input configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_INPUT_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_INPUT_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_INPUT (gvir_config_domain_input_get_type ())
32 #define GVIR_CONFIG_DOMAIN_INPUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_INPUT, GVirConfigDomainInput))
33 #define GVIR_CONFIG_DOMAIN_INPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_INPUT, GVirConfigDomainInputClass))
34 #define GVIR_CONFIG_IS_DOMAIN_INPUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_INPUT))
35 #define GVIR_CONFIG_IS_DOMAIN_INPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_INPUT))
36 #define GVIR_CONFIG_DOMAIN_INPUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_INPUT, GVirConfigDomainInputClass))
37
38 typedef struct _GVirConfigDomainInput GVirConfigDomainInput;
39 typedef struct _GVirConfigDomainInputPrivate GVirConfigDomainInputPrivate;
40 typedef struct _GVirConfigDomainInputClass GVirConfigDomainInputClass;
41
42 struct _GVirConfigDomainInput
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainInputPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainInputClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_INPUT_DEVICE_MOUSE,
60 GVIR_CONFIG_DOMAIN_INPUT_DEVICE_TABLET
61 } GVirConfigDomainInputDeviceType;
62
63 typedef enum {
64 GVIR_CONFIG_DOMAIN_INPUT_BUS_PS2,
65 GVIR_CONFIG_DOMAIN_INPUT_BUS_USB,
66 GVIR_CONFIG_DOMAIN_INPUT_BUS_XEN
67 } GVirConfigDomainInputBus;
68
69 GType gvir_config_domain_input_get_type(void);
70
71 GVirConfigDomainInput *gvir_config_domain_input_new(void);
72 GVirConfigDomainInput *gvir_config_domain_input_new_from_xml(const gchar *xml,
73 GError **error);
74 void gvir_config_domain_input_set_device_type(GVirConfigDomainInput *input,
75 GVirConfigDomainInputDeviceType type);
76 void gvir_config_domain_input_set_bus(GVirConfigDomainInput *input,
77 GVirConfigDomainInputBus bus);
78
79 G_END_DECLS
80
81 #endif /* __LIBVIRT_GCONFIG_DOMAIN_INPUT_H__ */
0 /*
1 * libvirt-gconfig-domain-interface-bridge.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2011 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, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
21 * Author: Christophe Fergeau <cfergeau@redhat.com>
22 */
23
24 #include <config.h>
25
26 #include "libvirt-gconfig/libvirt-gconfig.h"
27 #include "libvirt-gconfig/libvirt-gconfig-helpers-private.h"
28 #include "libvirt-gconfig/libvirt-gconfig-object-private.h"
29
30 #define GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE_GET_PRIVATE(obj) \
31 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_BRIDGE, GVirConfigDomainInterfaceBridgePrivate))
32
33 struct _GVirConfigDomainInterfaceBridgePrivate
34 {
35 gboolean unused;
36 };
37
38 G_DEFINE_TYPE(GVirConfigDomainInterfaceBridge, gvir_config_domain_interface_bridge, GVIR_CONFIG_TYPE_DOMAIN_INTERFACE);
39
40
41 static void gvir_config_domain_interface_bridge_class_init(GVirConfigDomainInterfaceBridgeClass *klass)
42 {
43 g_type_class_add_private(klass, sizeof(GVirConfigDomainInterfaceBridgePrivate));
44 }
45
46
47 static void gvir_config_domain_interface_bridge_init(GVirConfigDomainInterfaceBridge *conn)
48 {
49 g_debug("Init GVirConfigDomainInterfaceBridge=%p", conn);
50
51 conn->priv = GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE_GET_PRIVATE(conn);
52 }
53
54
55 GVirConfigDomainInterfaceBridge *gvir_config_domain_interface_bridge_new(void)
56 {
57 GVirConfigObject *object;
58
59 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_BRIDGE,
60 "interface", NULL);
61 gvir_config_object_set_attribute(object, "type", "bridge", NULL);
62 return GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE(object);
63 }
64
65 GVirConfigDomainInterfaceBridge *gvir_config_domain_interface_bridge_new_from_xml(const gchar *xml,
66 GError **error)
67 {
68 GVirConfigObject *object;
69
70 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_BRIDGE,
71 "interface", NULL, xml, error);
72 if (object == NULL)
73 return NULL;
74 gvir_config_object_set_attribute(object, "type", "bridge", NULL);
75 return GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE(object);
76 }
77
78 void gvir_config_domain_interface_bridge_set_source(GVirConfigDomainInterfaceBridge *interface,
79 const char *brname)
80 {
81 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INTERFACE_BRIDGE(interface));
82
83 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(interface),
84 "source", "bridge", brname);
85 }
0 /*
1 * libvirt-gconfig-domain-interface-bridge.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 * Author: Christophe Fergeau <cfergeau@redhat.com>
21 */
22
23 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
24 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
25 #endif
26
27 #ifndef __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_BRIDGE_H__
28 #define __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_BRIDGE_H__
29
30 G_BEGIN_DECLS
31
32 #define GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_BRIDGE (gvir_config_domain_interface_bridge_get_type ())
33 #define GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceBridge))
34 #define GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceBridgeClass))
35 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_BRIDGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
36 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
37 #define GVIR_CONFIG_DOMAIN_INTERFACE_BRIDGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceBridgeClass))
38
39 typedef struct _GVirConfigDomainInterfaceBridge GVirConfigDomainInterfaceBridge;
40 typedef struct _GVirConfigDomainInterfaceBridgePrivate GVirConfigDomainInterfaceBridgePrivate;
41 typedef struct _GVirConfigDomainInterfaceBridgeClass GVirConfigDomainInterfaceBridgeClass;
42
43 struct _GVirConfigDomainInterfaceBridge
44 {
45 GVirConfigDomainInterface parent;
46
47 GVirConfigDomainInterfaceBridgePrivate *priv;
48
49 /* Do not add fields to this struct */
50 };
51
52 struct _GVirConfigDomainInterfaceBridgeClass
53 {
54 GVirConfigDomainInterfaceClass parent_class;
55
56 gpointer padding[20];
57 };
58
59 GType gvir_config_domain_interface_bridge_get_type(void);
60
61 GVirConfigDomainInterfaceBridge *gvir_config_domain_interface_bridge_new(void);
62 GVirConfigDomainInterfaceBridge *gvir_config_domain_interface_bridge_new_from_xml(const gchar *xml,
63 GError **error);
64 void gvir_config_domain_interface_bridge_set_source(GVirConfigDomainInterfaceBridge *interface,
65 const char *brname);
66
67 G_END_DECLS
68
69 #endif /* __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_BRIDGE_H__ */
0 /*
1 * libvirt-gconfig-domain-interface-network.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2011 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, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
21 * Author: Christophe Fergeau <cfergeau@redhat.com>
22 */
23
24 #include <config.h>
25
26 #include "libvirt-gconfig/libvirt-gconfig.h"
27 #include "libvirt-gconfig/libvirt-gconfig-private.h"
28
29 #define GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK_GET_PRIVATE(obj) \
30 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_NETWORK, GVirConfigDomainInterfaceNetworkPrivate))
31
32 struct _GVirConfigDomainInterfaceNetworkPrivate
33 {
34 gboolean unused;
35 };
36
37 G_DEFINE_TYPE(GVirConfigDomainInterfaceNetwork, gvir_config_domain_interface_network, GVIR_CONFIG_TYPE_DOMAIN_INTERFACE);
38
39
40 static void gvir_config_domain_interface_network_class_init(GVirConfigDomainInterfaceNetworkClass *klass)
41 {
42 g_type_class_add_private(klass, sizeof(GVirConfigDomainInterfaceNetworkPrivate));
43 }
44
45
46 static void gvir_config_domain_interface_network_init(GVirConfigDomainInterfaceNetwork *conn)
47 {
48 g_debug("Init GVirConfigDomainInterfaceNetwork=%p", conn);
49
50 conn->priv = GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK_GET_PRIVATE(conn);
51 }
52
53
54 GVirConfigDomainInterfaceNetwork *gvir_config_domain_interface_network_new(void)
55 {
56 GVirConfigObject *object;
57
58 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_NETWORK,
59 "interface", NULL);
60 gvir_config_object_set_attribute(object, "type", "network", NULL);
61 return GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK(object);
62 }
63
64 GVirConfigDomainInterfaceNetwork *gvir_config_domain_interface_network_new_from_xml(const gchar *xml,
65 GError **error)
66 {
67 GVirConfigObject *object;
68
69 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_NETWORK,
70 "interface", NULL, xml, error);
71 if (object == NULL)
72 return NULL;
73 gvir_config_object_set_attribute(object, "type", "network", NULL);
74 return GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK(object);
75 }
76
77 void gvir_config_domain_interface_network_set_source(GVirConfigDomainInterfaceNetwork *interface,
78 const char *source)
79 {
80 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INTERFACE_NETWORK(interface));
81
82 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(interface),
83 "source", "network", source);
84 }
0 /*
1 * libvirt-gconfig-domain-interface-network.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 * Author: Christophe Fergeau <cfergeau@redhat.com>
21 */
22
23 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
24 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
25 #endif
26
27 #ifndef __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_NETWORK_H__
28 #define __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_NETWORK_H__
29
30 G_BEGIN_DECLS
31
32 #define GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_NETWORK (gvir_config_domain_interface_network_get_type ())
33 #define GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceNetwork))
34 #define GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceNetworkClass))
35 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
36 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
37 #define GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceNetworkClass))
38
39 typedef struct _GVirConfigDomainInterfaceNetwork GVirConfigDomainInterfaceNetwork;
40 typedef struct _GVirConfigDomainInterfaceNetworkPrivate GVirConfigDomainInterfaceNetworkPrivate;
41 typedef struct _GVirConfigDomainInterfaceNetworkClass GVirConfigDomainInterfaceNetworkClass;
42
43 struct _GVirConfigDomainInterfaceNetwork
44 {
45 GVirConfigDomainInterface parent;
46
47 GVirConfigDomainInterfaceNetworkPrivate *priv;
48
49 /* Do not add fields to this struct */
50 };
51
52 struct _GVirConfigDomainInterfaceNetworkClass
53 {
54 GVirConfigDomainInterfaceClass parent_class;
55
56 gpointer padding[20];
57 };
58
59 GType gvir_config_domain_interface_network_get_type(void);
60
61 GVirConfigDomainInterfaceNetwork *gvir_config_domain_interface_network_new(void);
62 GVirConfigDomainInterfaceNetwork *gvir_config_domain_interface_network_new_from_xml(const gchar *xml,
63 GError **error);
64 void gvir_config_domain_interface_network_set_source(GVirConfigDomainInterfaceNetwork *interface,
65 const char *source);
66
67 G_END_DECLS
68
69 #endif /* __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_NETWORK_H__ */
0 /*
1 * libvirt-gconfig-domain-interface-user.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2011 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, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
21 * Author: Christophe Fergeau <cfergeau@redhat.com>
22 */
23
24 #include <config.h>
25
26 #include "libvirt-gconfig/libvirt-gconfig.h"
27 #include "libvirt-gconfig/libvirt-gconfig-private.h"
28
29 #define GVIR_CONFIG_DOMAIN_INTERFACE_USER_GET_PRIVATE(obj) \
30 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_USER, GVirConfigDomainInterfaceUserPrivate))
31
32 struct _GVirConfigDomainInterfaceUserPrivate
33 {
34 gboolean unused;
35 };
36
37 G_DEFINE_TYPE(GVirConfigDomainInterfaceUser, gvir_config_domain_interface_user, GVIR_CONFIG_TYPE_DOMAIN_INTERFACE);
38
39
40 static void gvir_config_domain_interface_user_class_init(GVirConfigDomainInterfaceUserClass *klass)
41 {
42 g_type_class_add_private(klass, sizeof(GVirConfigDomainInterfaceUserPrivate));
43 }
44
45
46 static void gvir_config_domain_interface_user_init(GVirConfigDomainInterfaceUser *conn)
47 {
48 g_debug("Init GVirConfigDomainInterfaceUser=%p", conn);
49
50 conn->priv = GVIR_CONFIG_DOMAIN_INTERFACE_USER_GET_PRIVATE(conn);
51 }
52
53
54 GVirConfigDomainInterfaceUser *gvir_config_domain_interface_user_new(void)
55 {
56 GVirConfigObject *object;
57
58 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_USER,
59 "interface", NULL);
60 gvir_config_object_set_attribute(object, "type", "user", NULL);
61 return GVIR_CONFIG_DOMAIN_INTERFACE_USER(object);
62 }
63
64 GVirConfigDomainInterfaceUser *gvir_config_domain_interface_user_new_from_xml(const gchar *xml,
65 GError **error)
66 {
67 GVirConfigObject *object;
68
69 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_USER,
70 "interface", NULL, xml, error);
71 if (object == NULL)
72 return NULL;
73 gvir_config_object_set_attribute(object, "type", "user", NULL);
74 return GVIR_CONFIG_DOMAIN_INTERFACE_USER(object);
75 }
0 /*
1 * libvirt-gconfig-domain-interface-user.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 * Author: Christophe Fergeau <cfergeau@redhat.com>
21 */
22
23 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
24 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
25 #endif
26
27 #ifndef __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_USER_H__
28 #define __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_USER_H__
29
30 G_BEGIN_DECLS
31
32 #define GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_USER (gvir_config_domain_interface_user_get_type ())
33 #define GVIR_CONFIG_DOMAIN_INTERFACE_USER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceUser))
34 #define GVIR_CONFIG_DOMAIN_INTERFACE_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceUserClass))
35 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_USER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
36 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
37 #define GVIR_CONFIG_DOMAIN_INTERFACE_USER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceUserClass))
38
39 typedef struct _GVirConfigDomainInterfaceUser GVirConfigDomainInterfaceUser;
40 typedef struct _GVirConfigDomainInterfaceUserPrivate GVirConfigDomainInterfaceUserPrivate;
41 typedef struct _GVirConfigDomainInterfaceUserClass GVirConfigDomainInterfaceUserClass;
42
43 struct _GVirConfigDomainInterfaceUser
44 {
45 GVirConfigDomainInterface parent;
46
47 GVirConfigDomainInterfaceUserPrivate *priv;
48
49 /* Do not add fields to this struct */
50 };
51
52 struct _GVirConfigDomainInterfaceUserClass
53 {
54 GVirConfigDomainInterfaceClass parent_class;
55
56 gpointer padding[20];
57 };
58
59 GType gvir_config_domain_interface_user_get_type(void);
60
61 GVirConfigDomainInterfaceUser *gvir_config_domain_interface_user_new(void);
62 GVirConfigDomainInterfaceUser *gvir_config_domain_interface_user_new_from_xml(const gchar *xml,
63 GError **error);
64
65 G_END_DECLS
66
67 #endif /* __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_USER_H__ */
0 /*
1 * libvirt-gconfig-domain-interface.c: libvirt domain interface configuration
2 *
3 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010-2011 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, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
21 * Christophe Fergeau <cfergeau@redhat.com>
22 */
23
24 #include <config.h>
25
26 #include "libvirt-gconfig/libvirt-gconfig.h"
27 #include "libvirt-gconfig/libvirt-gconfig-private.h"
28
29 #define GVIR_CONFIG_DOMAIN_INTERFACE_GET_PRIVATE(obj) \
30 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfacePrivate))
31
32 struct _GVirConfigDomainInterfacePrivate
33 {
34 gboolean unused;
35 };
36
37 G_DEFINE_ABSTRACT_TYPE(GVirConfigDomainInterface, gvir_config_domain_interface, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
38
39
40 static void gvir_config_domain_interface_class_init(GVirConfigDomainInterfaceClass *klass)
41 {
42 g_type_class_add_private(klass, sizeof(GVirConfigDomainInterfacePrivate));
43 }
44
45
46 static void gvir_config_domain_interface_init(GVirConfigDomainInterface *interface)
47 {
48 g_debug("Init GVirConfigDomainInterface=%p", interface);
49
50 interface->priv = GVIR_CONFIG_DOMAIN_INTERFACE_GET_PRIVATE(interface);
51 }
52
53 void gvir_config_domain_interface_set_ifname(GVirConfigDomainInterface *interface,
54 const char *ifname)
55 {
56 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INTERFACE(interface));
57
58 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(interface),
59 "target", "device", ifname);
60 }
61
62 void gvir_config_domain_interface_set_link_state(GVirConfigDomainInterface *interface,
63 GVirConfigDomainInterfaceLinkState state)
64 {
65 GVirConfigObject *node;
66
67 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INTERFACE(interface));
68
69 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(interface),
70 "link");
71 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
72 gvir_config_object_set_attribute_with_type(node,
73 "state",
74 GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_LINK_STATE,
75 state,
76 NULL);
77 g_object_unref(G_OBJECT(node));
78 }
79
80 void gvir_config_domain_interface_set_mac(GVirConfigDomainInterface *interface,
81 const char *mac_address)
82 {
83 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INTERFACE(interface));
84
85 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(interface),
86 "mac", "address", mac_address);
87 }
88
89 void gvir_config_domain_interface_set_model(GVirConfigDomainInterface *interface,
90 const char *model)
91 {
92 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_INTERFACE(interface));
93
94 gvir_config_object_replace_child_with_attribute(GVIR_CONFIG_OBJECT(interface),
95 "model", "type", model);
96 }
97
98 G_GNUC_INTERNAL GVirConfigDomainDevice *
99 gvir_config_domain_interface_new_from_tree(GVirConfigXmlDoc *doc,
100 xmlNodePtr tree)
101 {
102 xmlChar *type;
103 GType gtype;
104
105 type = gvir_config_xml_get_attribute_content(tree, "type");
106 if (type == NULL)
107 return NULL;
108
109 if (xmlStrEqual(type, (xmlChar*)"network")) {
110 gtype = GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_NETWORK;
111 } else if (xmlStrEqual(type, (xmlChar*)"user")) {
112 gtype = GVIR_CONFIG_TYPE_DOMAIN_INTERFACE_USER;
113 } else if (xmlStrEqual(type, (xmlChar*)"bridge")) {
114 goto unimplemented;
115 } else if (xmlStrEqual(type, (xmlChar*)"direct")) {
116 goto unimplemented;
117 } else if (xmlStrEqual(type, (xmlChar*)"server")) {
118 goto unimplemented;
119 } else if (xmlStrEqual(type, (xmlChar*)"mcast")) {
120 goto unimplemented;
121 } else if (xmlStrEqual(type, (xmlChar*)"ethernet")) {
122 goto unimplemented;
123 } else {
124 g_debug("Unknown domain interface node: %s", type);
125 return NULL;
126 }
127 xmlFree(type);
128
129 return GVIR_CONFIG_DOMAIN_DEVICE(gvir_config_object_new_from_tree(gtype, doc, NULL, tree));
130
131 unimplemented:
132 g_debug("Parsing of '%s' domain interface nodes is unimplemented", type);
133 return NULL;
134 }
0 /*
1 * libvirt-gconfig-domain-interface.h: libvirt domain interface configuration
2 *
3 * Copyright (C) 2010-2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_INTERFACE (gvir_config_domain_interface_get_type ())
32 #define GVIR_CONFIG_DOMAIN_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterface))
33 #define GVIR_CONFIG_DOMAIN_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceClass))
34 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
35 #define GVIR_CONFIG_IS_DOMAIN_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE))
36 #define GVIR_CONFIG_DOMAIN_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_INTERFACE, GVirConfigDomainInterfaceClass))
37
38 typedef struct _GVirConfigDomainInterface GVirConfigDomainInterface;
39 typedef struct _GVirConfigDomainInterfacePrivate GVirConfigDomainInterfacePrivate;
40 typedef struct _GVirConfigDomainInterfaceClass GVirConfigDomainInterfaceClass;
41
42 struct _GVirConfigDomainInterface
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainInterfacePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainInterfaceClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_INTERFACE_LINK_STATE_DEFAULT,
60 GVIR_CONFIG_DOMAIN_INTERFACE_LINK_STATE_UP,
61 GVIR_CONFIG_DOMAIN_INTERFACE_LINK_STATE_DOWN
62 } GVirConfigDomainInterfaceLinkState;
63
64 GType gvir_config_domain_interface_get_type(void);
65
66 void gvir_config_domain_interface_set_ifname(GVirConfigDomainInterface *interface,
67 const char *ifname);
68 void gvir_config_domain_interface_set_link_state(GVirConfigDomainInterface *interface,
69 GVirConfigDomainInterfaceLinkState state);
70 void gvir_config_domain_interface_set_mac(GVirConfigDomainInterface *interface,
71 const char *mac_address);
72 void gvir_config_domain_interface_set_model(GVirConfigDomainInterface *interface,
73 const char *model);
74
75 G_END_DECLS
76
77 #endif /* __LIBVIRT_GCONFIG_DOMAIN_INTERFACE_H__ */
0 /*
1 * libvirt-gconfig-domain-memballoon.c: libvirt domain memballoon configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_MEMBALLOON_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON, GVirConfigDomainMemballoonPrivate))
29
30 struct _GVirConfigDomainMemballoonPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainMemballoon, gvir_config_domain_memballoon, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_memballoon_class_init(GVirConfigDomainMemballoonClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainMemballoonPrivate));
41 }
42
43
44 static void gvir_config_domain_memballoon_init(GVirConfigDomainMemballoon *memballoon)
45 {
46 g_debug("Init GVirConfigDomainMemballoon=%p", memballoon);
47
48 memballoon->priv = GVIR_CONFIG_DOMAIN_MEMBALLOON_GET_PRIVATE(memballoon);
49 }
50
51
52 GVirConfigDomainMemballoon *gvir_config_domain_memballoon_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON,
57 "memballoon", NULL);
58 return GVIR_CONFIG_DOMAIN_MEMBALLOON(object);
59 }
60
61 GVirConfigDomainMemballoon *gvir_config_domain_memballoon_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON,
67 "memballoon", NULL, xml, error);
68 return GVIR_CONFIG_DOMAIN_MEMBALLOON(object);
69 }
70
71 void gvir_config_domain_memballoon_set_model(GVirConfigDomainMemballoon *memballoon,
72 GVirConfigDomainMemballoonModel model)
73 {
74 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_MEMBALLOON(memballoon));
75 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(memballoon),
76 "model",
77 GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON_MODEL,
78 model,
79 NULL);
80 }
0 /*
1 * libvirt-gconfig-domain-memballoon.h: libvirt domain memballoon configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_MEMBALLOON_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_MEMBALLOON_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON (gvir_config_domain_memballoon_get_type ())
32 #define GVIR_CONFIG_DOMAIN_MEMBALLOON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON, GVirConfigDomainMemballoon))
33 #define GVIR_CONFIG_DOMAIN_MEMBALLOON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON, GVirConfigDomainMemballoonClass))
34 #define GVIR_CONFIG_IS_DOMAIN_MEMBALLOON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON))
35 #define GVIR_CONFIG_IS_DOMAIN_MEMBALLOON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON))
36 #define GVIR_CONFIG_DOMAIN_MEMBALLOON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_MEMBALLOON, GVirConfigDomainMemballoonClass))
37
38 typedef struct _GVirConfigDomainMemballoon GVirConfigDomainMemballoon;
39 typedef struct _GVirConfigDomainMemballoonPrivate GVirConfigDomainMemballoonPrivate;
40 typedef struct _GVirConfigDomainMemballoonClass GVirConfigDomainMemballoonClass;
41
42 struct _GVirConfigDomainMemballoon
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainMemballoonPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainMemballoonClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_MEMBALLOON_MODEL_NONE,
60 GVIR_CONFIG_DOMAIN_MEMBALLOON_MODEL_VIRTIO,
61 } GVirConfigDomainMemballoonModel;
62
63 GType gvir_config_domain_memballoon_get_type(void);
64
65 GVirConfigDomainMemballoon *gvir_config_domain_memballoon_new(void);
66 GVirConfigDomainMemballoon *gvir_config_domain_memballoon_new_from_xml(const gchar *xml,
67 GError **error);
68 void gvir_config_domain_memballoon_set_model(GVirConfigDomainMemballoon *memballoon,
69 GVirConfigDomainMemballoonModel model);
70
71
72 G_END_DECLS
73
74 #endif /* __LIBVIRT_GCONFIG_DOMAIN_MEMBALLOON_H__ */
0 /*
1 * libvirt-gconfig-domain-os.c: libvirt domain OS configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_OS_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_OS, GVirConfigDomainOsPrivate))
29
30 struct _GVirConfigDomainOsPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainOs, gvir_config_domain_os, GVIR_CONFIG_TYPE_OBJECT);
36
37
38 static void gvir_config_domain_os_class_init(GVirConfigDomainOsClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainOsPrivate));
41 }
42
43
44 static void gvir_config_domain_os_init(GVirConfigDomainOs *os)
45 {
46 g_debug("Init GVirConfigDomainOs=%p", os);
47
48 os->priv = GVIR_CONFIG_DOMAIN_OS_GET_PRIVATE(os);
49 }
50
51
52 GVirConfigDomainOs *gvir_config_domain_os_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_OS, "os", NULL);
57 return GVIR_CONFIG_DOMAIN_OS(object);
58 }
59
60 GVirConfigDomainOs *gvir_config_domain_os_new_from_xml(const gchar *xml, GError **error)
61 {
62 GVirConfigObject *object;
63
64 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_OS, "os",
65 NULL, xml, error);
66 return GVIR_CONFIG_DOMAIN_OS(object);
67 }
68
69 void gvir_config_domain_os_set_os_type(GVirConfigDomainOs *os,
70 GVirConfigDomainOsType type)
71 {
72 const char *type_str;
73
74 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
75
76 type_str = gvir_config_genum_get_nick(GVIR_CONFIG_TYPE_DOMAIN_OS_TYPE, type);
77 g_return_if_fail(type_str != NULL);
78
79 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(os),
80 "type", type_str);
81 }
82
83 void gvir_config_domain_os_set_kernel(GVirConfigDomainOs *os,
84 const char * kernel)
85 {
86 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(os),
87 "kernel", kernel);
88 }
89
90 void gvir_config_domain_os_set_ramdisk(GVirConfigDomainOs *os,
91 const char * ramdisk)
92 {
93 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(os),
94 "initrd", ramdisk);
95 }
96
97 void gvir_config_domain_os_set_cmdline(GVirConfigDomainOs *os,
98 const char * cmdline)
99 {
100 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(os),
101 "cmdline", cmdline);
102 }
103
104 void gvir_config_domain_os_set_init(GVirConfigDomainOs *os,
105 const char * init)
106 {
107 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(os),
108 "init", init);
109 }
110
111 void gvir_config_domain_os_set_loader(GVirConfigDomainOs *os,
112 const char * loader)
113 {
114 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(os),
115 "loader", loader);
116 }
117
118 void gvir_config_domain_os_enable_boot_menu(GVirConfigDomainOs *os,
119 gboolean enable)
120 {
121 GVirConfigObject *node;
122
123 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
124
125 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(os), "bootmenu");
126 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
127 gvir_config_object_set_attribute_with_type(node, "enable",
128 G_TYPE_BOOLEAN, enable,
129 NULL);
130 g_object_unref(G_OBJECT(node));
131 }
132
133 void gvir_config_domain_os_bios_enable_serial(GVirConfigDomainOs *os,
134 gboolean enable)
135 {
136 GVirConfigObject *node;
137
138 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
139
140 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(os), "bios");
141 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
142 gvir_config_object_set_attribute_with_type(node, "useserial",
143 G_TYPE_BOOLEAN, enable,
144 NULL);
145 g_object_unref(G_OBJECT(node));
146 }
147
148 void gvir_config_domain_os_set_smbios_mode(GVirConfigDomainOs *os,
149 GVirConfigDomainOsSmBiosMode mode)
150 {
151 GVirConfigObject *node;
152
153 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
154
155 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(os), "smbios");
156 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
157 gvir_config_object_set_attribute_with_type(node, "mode",
158 GVIR_CONFIG_TYPE_DOMAIN_OS_SM_BIOS_MODE,
159 mode, NULL);
160 g_object_unref(G_OBJECT(node));
161 }
162
163 /**
164 * gvir_config_domain_os_set_boot_devices:
165 * @boot_devices: (in) (element-type LibvirtGConfig.DomainOsBootDevice):
166 */
167 void gvir_config_domain_os_set_boot_devices(GVirConfigDomainOs *os, GList *boot_devices)
168 {
169 GList *it;
170 xmlNodePtr os_node;
171 xmlNodePtr node;
172
173 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
174
175 os_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(os));
176 g_return_if_fail(os_node != NULL);
177
178 node = os_node->children;
179 while (node != NULL) {
180 xmlNodePtr next_node;
181 next_node = node->next;
182 if (g_strcmp0("boot", (char *)node->name) == 0) {
183 xmlUnlinkNode(node);
184 xmlFreeNode(node);
185 }
186 node = next_node;
187 }
188
189 for (it = boot_devices; it != NULL; it = it->next) {
190 const char *dev;
191
192 dev = gvir_config_genum_get_nick(GVIR_CONFIG_TYPE_DOMAIN_OS_BOOT_DEVICE,
193 GPOINTER_TO_INT(it->data));
194 g_warn_if_fail(dev != NULL);
195 if (dev != NULL) {
196 node = xmlNewDocNode(NULL, NULL, (xmlChar*)"boot", NULL);
197 xmlNewProp(node, (xmlChar*)"dev", (xmlChar*)dev);
198 xmlAddChild(os_node, node);
199 }
200 }
201 }
202
203 void gvir_config_domain_os_set_arch(GVirConfigDomainOs *os, const char *arch)
204 {
205 xmlNodePtr os_node;
206 xmlNodePtr os_type_node;
207
208 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
209
210 os_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(os));
211 g_return_if_fail(os_node != NULL);
212
213 os_type_node = gvir_config_xml_get_element(os_node, "type", NULL);
214 g_return_if_fail(os_type_node != NULL);
215
216 xmlNewProp(os_type_node, (xmlChar*)"arch", (xmlChar*)arch);
217 }
218
219 void gvir_config_domain_os_set_machine(GVirConfigDomainOs *os, const char *machine)
220 {
221 xmlNodePtr os_node;
222 xmlNodePtr os_type_node;
223
224 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
225
226 os_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(os));
227 g_return_if_fail(os_node != NULL);
228
229 os_type_node = gvir_config_xml_get_element(os_node, "type", NULL);
230 g_return_if_fail(os_type_node != NULL);
231
232 xmlNewProp(os_type_node, (xmlChar*)"machine", (xmlChar*)machine);
233 }
0 /*
1 * libvirt-gconfig-domain-os.c: libvirt domain OS configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_OS_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_OS_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_OS (gvir_config_domain_os_get_type ())
32 #define GVIR_CONFIG_DOMAIN_OS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_OS, GVirConfigDomainOs))
33 #define GVIR_CONFIG_DOMAIN_OS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_OS, GVirConfigDomainOsClass))
34 #define GVIR_CONFIG_IS_DOMAIN_OS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_OS))
35 #define GVIR_CONFIG_IS_DOMAIN_OS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_OS))
36 #define GVIR_CONFIG_DOMAIN_OS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_OS, GVirConfigDomainOsClass))
37
38 typedef struct _GVirConfigDomainOs GVirConfigDomainOs;
39 typedef struct _GVirConfigDomainOsPrivate GVirConfigDomainOsPrivate;
40 typedef struct _GVirConfigDomainOsClass GVirConfigDomainOsClass;
41
42 struct _GVirConfigDomainOs
43 {
44 GVirConfigObject parent;
45
46 GVirConfigDomainOsPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainOsClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_OS_TYPE_HVM,
60 GVIR_CONFIG_DOMAIN_OS_TYPE_LINUX,
61 GVIR_CONFIG_DOMAIN_OS_TYPE_EXE
62 } GVirConfigDomainOsType;
63
64 typedef enum {
65 GVIR_CONFIG_DOMAIN_OS_SMBIOS_MODE_EMULATE,
66 GVIR_CONFIG_DOMAIN_OS_SMBIOS_MODE_HOST,
67 GVIR_CONFIG_DOMAIN_OS_SMBIOS_MODE_SYSINFO
68 } GVirConfigDomainOsSmBiosMode;
69
70 typedef enum {
71 GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_FD,
72 GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_HD,
73 GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_CDROM,
74 GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_NETWORK
75 } GVirConfigDomainOsBootDevice;
76
77 GType gvir_config_domain_os_get_type(void);
78
79 GVirConfigDomainOs *gvir_config_domain_os_new(void);
80 GVirConfigDomainOs *gvir_config_domain_os_new_from_xml(const gchar *xml, GError **error);
81
82 void gvir_config_domain_os_set_os_type(GVirConfigDomainOs *os, GVirConfigDomainOsType type);
83 void gvir_config_domain_os_set_arch(GVirConfigDomainOs *os, const char *arch);
84 void gvir_config_domain_os_set_boot_devices(GVirConfigDomainOs *os, GList *boot_devices);
85 void gvir_config_domain_os_set_kernel(GVirConfigDomainOs *os, const char *kernel);
86 void gvir_config_domain_os_set_ramdisk(GVirConfigDomainOs *os, const char *ramdisk);
87 void gvir_config_domain_os_set_cmdline(GVirConfigDomainOs *os, const char *cmdline);
88 void gvir_config_domain_os_set_init(GVirConfigDomainOs *os, const char *init);
89 void gvir_config_domain_os_set_loader(GVirConfigDomainOs *os, const char * loader);
90 void gvir_config_domain_os_set_machine(GVirConfigDomainOs *os, const char *machine);
91 void gvir_config_domain_os_set_smbios_mode(GVirConfigDomainOs *os,
92 GVirConfigDomainOsSmBiosMode mode);
93 void gvir_config_domain_os_enable_boot_menu(GVirConfigDomainOs *os, gboolean enable);
94 void gvir_config_domain_os_bios_enable_serial(GVirConfigDomainOs *os, gboolean enable);
95
96 G_END_DECLS
97
98 #endif /* __LIBVIRT_GCONFIG_DOMAIN_OS_H__ */
0 /*
1 * libvirt-gconfig-domain-parallel.c: libvirt domain parallel configuration
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25
26 #define GVIR_CONFIG_DOMAIN_PARALLEL_GET_PRIVATE(obj) \
27 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_PARALLEL, GVirConfigDomainParallelPrivate))
28
29 struct _GVirConfigDomainParallelPrivate
30 {
31 gboolean unused;
32 };
33
34 G_DEFINE_TYPE(GVirConfigDomainParallel, gvir_config_domain_parallel, GVIR_CONFIG_TYPE_DOMAIN_CHARDEV);
35
36
37 static void gvir_config_domain_parallel_class_init(GVirConfigDomainParallelClass *klass)
38 {
39 g_type_class_add_private(klass, sizeof(GVirConfigDomainParallelPrivate));
40 }
41
42
43 static void gvir_config_domain_parallel_init(GVirConfigDomainParallel *parallel)
44 {
45 g_debug("Init GVirConfigDomainParallel=%p", parallel);
46
47 parallel->priv = GVIR_CONFIG_DOMAIN_PARALLEL_GET_PRIVATE(parallel);
48 }
49
50 GVirConfigDomainParallel *gvir_config_domain_parallel_new(void)
51 {
52 GVirConfigObject *object;
53
54 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_PARALLEL,
55 "parallel", NULL);
56 return GVIR_CONFIG_DOMAIN_PARALLEL(object);
57 }
58
59 GVirConfigDomainParallel *gvir_config_domain_parallel_new_from_xml(const gchar *xml,
60 GError **error)
61 {
62 GVirConfigObject *object;
63
64 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_PARALLEL,
65 "parallel", NULL, xml, error);
66 if (object == NULL)
67 return NULL;
68 return GVIR_CONFIG_DOMAIN_PARALLEL(object);
69 }
0 /*
1 * libvirt-gconfig-domain-parallel.h: libvirt domain parallel configuration
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_PARALLEL_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_PARALLEL_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_PARALLEL (gvir_config_domain_parallel_get_type ())
32 #define GVIR_CONFIG_DOMAIN_PARALLEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_PARALLEL, GVirConfigDomainParallel))
33 #define GVIR_CONFIG_DOMAIN_PARALLEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_PARALLEL, GVirConfigDomainParallelClass))
34 #define GVIR_CONFIG_IS_DOMAIN_PARALLEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_PARALLEL))
35 #define GVIR_CONFIG_IS_DOMAIN_PARALLEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_PARALLEL))
36 #define GVIR_CONFIG_DOMAIN_PARALLEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_PARALLEL, GVirConfigDomainParallelClass))
37
38 typedef struct _GVirConfigDomainParallel GVirConfigDomainParallel;
39 typedef struct _GVirConfigDomainParallelPrivate GVirConfigDomainParallelPrivate;
40 typedef struct _GVirConfigDomainParallelClass GVirConfigDomainParallelClass;
41
42 struct _GVirConfigDomainParallel
43 {
44 GVirConfigDomainChardev parent;
45
46 GVirConfigDomainParallelPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainParallelClass
52 {
53 GVirConfigDomainChardevClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_parallel_get_type(void);
60 GVirConfigDomainParallel *gvir_config_domain_parallel_new(void);
61 GVirConfigDomainParallel *gvir_config_domain_parallel_new_from_xml(const gchar *xml,
62 GError **error);
63
64 G_END_DECLS
65
66 #endif /* __LIBVIRT_GCONFIG_DOMAIN_PARALLEL_H__ */
0 /*
1 * libvirt-gconfig-domain-seclabel.c: libvirt domain security label configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPSECLABELE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Bseclabelton, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_SECLABEL_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_SECLABEL, GVirConfigDomainSeclabelPrivate))
29
30 struct _GVirConfigDomainSeclabelPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainSeclabel, gvir_config_domain_seclabel, GVIR_CONFIG_TYPE_OBJECT);
36
37
38 static void gvir_config_domain_seclabel_class_init(GVirConfigDomainSeclabelClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainSeclabelPrivate));
41 }
42
43
44 static void gvir_config_domain_seclabel_init(GVirConfigDomainSeclabel *seclabel)
45 {
46 g_debug("Init GVirConfigDomainSeclabel=%p", seclabel);
47
48 seclabel->priv = GVIR_CONFIG_DOMAIN_SECLABEL_GET_PRIVATE(seclabel);
49 }
50
51
52 GVirConfigDomainSeclabel *gvir_config_domain_seclabel_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_SECLABEL, "seclabel", NULL);
57 return GVIR_CONFIG_DOMAIN_SECLABEL(object);
58 }
59
60 GVirConfigDomainSeclabel *gvir_config_domain_seclabel_new_from_xml(const gchar *xml, GError **error)
61 {
62 GVirConfigObject *object;
63
64 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_SECLABEL, "seclabel",
65 NULL, xml, error);
66 return GVIR_CONFIG_DOMAIN_SECLABEL(object);
67 }
68
69 void gvir_config_domain_seclabel_set_type(GVirConfigDomainSeclabel *seclabel,
70 GVirConfigDomainSeclabelType type)
71 {
72 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_SECLABEL(seclabel));
73
74 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(seclabel),
75 "type",
76 GVIR_CONFIG_TYPE_DOMAIN_SECLABEL_TYPE,
77 type, NULL);
78 }
79
80 void gvir_config_domain_seclabel_set_model(GVirConfigDomainSeclabel *seclabel,
81 const gchar *model)
82 {
83 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_SECLABEL(seclabel));
84
85 gvir_config_object_set_attribute(GVIR_CONFIG_OBJECT(seclabel),
86 "model", model,
87 NULL);
88
89 }
90
91 void gvir_config_domain_seclabel_set_baselabel(GVirConfigDomainSeclabel *seclabel,
92 const char *label)
93 {
94 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_SECLABEL(seclabel));
95
96 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(seclabel),
97 "baselabel", label);
98 }
99
100 void gvir_config_domain_seclabel_set_label(GVirConfigDomainSeclabel *seclabel,
101 const char *label)
102 {
103 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_SECLABEL(seclabel));
104
105 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(seclabel),
106 "label", label);
107 }
0 /*
1 * libvirt-gconfig-domain-seclabel.h: libvirt domain security label configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_SECLABEL_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_SECLABEL_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_SECLABEL (gvir_config_domain_seclabel_get_type ())
32 #define GVIR_CONFIG_DOMAIN_SECLABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_SECLABEL, GVirConfigDomainSeclabel))
33 #define GVIR_CONFIG_DOMAIN_SECLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_SECLABEL, GVirConfigDomainSeclabelClass))
34 #define GVIR_CONFIG_IS_DOMAIN_SECLABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_SECLABEL))
35 #define GVIR_CONFIG_IS_DOMAIN_SECLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_SECLABEL))
36 #define GVIR_CONFIG_DOMAIN_SECLABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_SECLABEL, GVirConfigDomainSeclabelClass))
37
38 typedef struct _GVirConfigDomainSeclabel GVirConfigDomainSeclabel;
39 typedef struct _GVirConfigDomainSeclabelPrivate GVirConfigDomainSeclabelPrivate;
40 typedef struct _GVirConfigDomainSeclabelClass GVirConfigDomainSeclabelClass;
41
42 struct _GVirConfigDomainSeclabel
43 {
44 GVirConfigObject parent;
45
46 GVirConfigDomainSeclabelPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainSeclabelClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_SECLABEL_DYNAMIC,
60 GVIR_CONFIG_DOMAIN_SECLABEL_STATIC
61 } GVirConfigDomainSeclabelType;
62
63 GType gvir_config_domain_seclabel_get_type(void);
64
65 GVirConfigDomainSeclabel *gvir_config_domain_seclabel_new(void);
66 GVirConfigDomainSeclabel *gvir_config_domain_seclabel_new_from_xml(const gchar *xml, GError **error);
67
68 void gvir_config_domain_seclabel_set_type(GVirConfigDomainSeclabel *seclabel, GVirConfigDomainSeclabelType type);
69 void gvir_config_domain_seclabel_set_model(GVirConfigDomainSeclabel *seclabel, const gchar *model);
70 void gvir_config_domain_seclabel_set_baselabel(GVirConfigDomainSeclabel *seclabel, const gchar *label);
71 void gvir_config_domain_seclabel_set_label(GVirConfigDomainSeclabel *seclabel, const gchar *label);
72
73 G_END_DECLS
74
75 #endif /* __LIBVIRT_GCONFIG_DOMAIN_SECLABEL_H__ */
0 /*
1 * libvirt-gconfig-domain-serial.c: libvirt domain serial configuration
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25
26 #define GVIR_CONFIG_DOMAIN_SERIAL_GET_PRIVATE(obj) \
27 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_SERIAL, GVirConfigDomainSerialPrivate))
28
29 struct _GVirConfigDomainSerialPrivate
30 {
31 gboolean unused;
32 };
33
34 G_DEFINE_TYPE(GVirConfigDomainSerial, gvir_config_domain_serial, GVIR_CONFIG_TYPE_DOMAIN_CHARDEV);
35
36
37 static void gvir_config_domain_serial_class_init(GVirConfigDomainSerialClass *klass)
38 {
39 g_type_class_add_private(klass, sizeof(GVirConfigDomainSerialPrivate));
40 }
41
42
43 static void gvir_config_domain_serial_init(GVirConfigDomainSerial *serial)
44 {
45 g_debug("Init GVirConfigDomainSerial=%p", serial);
46
47 serial->priv = GVIR_CONFIG_DOMAIN_SERIAL_GET_PRIVATE(serial);
48 }
49
50 GVirConfigDomainSerial *gvir_config_domain_serial_new(void)
51 {
52 GVirConfigObject *object;
53
54 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_SERIAL,
55 "serial", NULL);
56 return GVIR_CONFIG_DOMAIN_SERIAL(object);
57 }
58
59 GVirConfigDomainSerial *gvir_config_domain_serial_new_from_xml(const gchar *xml,
60 GError **error)
61 {
62 GVirConfigObject *object;
63
64 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_SERIAL,
65 "serial", NULL, xml, error);
66 if (object == NULL)
67 return NULL;
68 return GVIR_CONFIG_DOMAIN_SERIAL(object);
69 }
0 /*
1 * libvirt-gconfig-domain-serial.h: libvirt domain serial configuration
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_SERIAL_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_SERIAL_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_SERIAL (gvir_config_domain_serial_get_type ())
32 #define GVIR_CONFIG_DOMAIN_SERIAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_SERIAL, GVirConfigDomainSerial))
33 #define GVIR_CONFIG_DOMAIN_SERIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_SERIAL, GVirConfigDomainSerialClass))
34 #define GVIR_CONFIG_IS_DOMAIN_SERIAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_SERIAL))
35 #define GVIR_CONFIG_IS_DOMAIN_SERIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_SERIAL))
36 #define GVIR_CONFIG_DOMAIN_SERIAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_SERIAL, GVirConfigDomainSerialClass))
37
38 typedef struct _GVirConfigDomainSerial GVirConfigDomainSerial;
39 typedef struct _GVirConfigDomainSerialPrivate GVirConfigDomainSerialPrivate;
40 typedef struct _GVirConfigDomainSerialClass GVirConfigDomainSerialClass;
41
42 struct _GVirConfigDomainSerial
43 {
44 GVirConfigDomainChardev parent;
45
46 GVirConfigDomainSerialPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainSerialClass
52 {
53 GVirConfigDomainChardevClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_serial_get_type(void);
60 GVirConfigDomainSerial *gvir_config_domain_serial_new(void);
61 GVirConfigDomainSerial *gvir_config_domain_serial_new_from_xml(const gchar *xml,
62 GError **error);
63
64 G_END_DECLS
65
66 #endif /* __LIBVIRT_GCONFIG_DOMAIN_SERIAL_H__ */
00 /*
1 * libvirt-gobject-config_domain_snapshot.c: libvirt glib integration
1 * libvirt-gconfig-domain-snapshot.c: libvirt domain snapshot configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_DOMAIN_SNAPSHOT_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshotPrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshotPrivate))
3529
3630 struct _GVirConfigDomainSnapshotPrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigDomainSnapshot, gvir_config_domain_snapshot, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigDomainSnapshot, gvir_config_domain_snapshot, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_domain_snapshot_class_init(GVirConfigDomainSnapshotClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigDomainSnapshotPrivate));
4841 }
4942
5043
5144 static void gvir_config_domain_snapshot_init(GVirConfigDomainSnapshot *conn)
5245 {
53 GVirConfigDomainSnapshotPrivate *priv;
46 g_debug("Init GVirConfigDomainSnapshot=%p", conn);
5447
55 DEBUG("Init GVirConfigDomainSnapshot=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_DOMAIN_SNAPSHOT_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_DOMAIN_SNAPSHOT_GET_PRIVATE(conn);
6049 }
6150
6251
6453 {
6554 GVirConfigObject *object;
6655
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT,
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT,
6857 "domainsnapshot",
6958 DATADIR "/libvirt/schemas/domainsnapshot.rng");
7059 return GVIR_CONFIG_DOMAIN_SNAPSHOT(object);
7564 {
7665 GVirConfigObject *object;
7766
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT,
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT,
7968 "domainsnapshot",
8069 DATADIR "/libvirt/schemas/domainsnapshot.rng",
8170 xml, error);
00 /*
1 * libvirt-gobject-domain_snapshot-config.c: libvirt gobject integration
1 * libvirt-gconfig-domain-snapshot.h: libvirt domain snapshot configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT (gvir_config_domain_snapshot_get_type ())
32 #define GVIR_CONFIG_DOMAIN_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshot))
33 #define GVIR_CONFIG_DOMAIN_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshotClass))
34 #define GVIR_IS_CONFIG_DOMAIN_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT))
35 #define GVIR_IS_CONFIG_DOMAIN_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT))
36 #define GVIR_CONFIG_DOMAIN_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshotClass))
31 #define GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT (gvir_config_domain_snapshot_get_type ())
32 #define GVIR_CONFIG_DOMAIN_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshot))
33 #define GVIR_CONFIG_DOMAIN_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshotClass))
34 #define GVIR_CONFIG_IS_DOMAIN_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT))
35 #define GVIR_CONFIG_IS_DOMAIN_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT))
36 #define GVIR_CONFIG_DOMAIN_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_SNAPSHOT, GVirConfigDomainSnapshotClass))
3737
3838 typedef struct _GVirConfigDomainSnapshot GVirConfigDomainSnapshot;
3939 typedef struct _GVirConfigDomainSnapshotPrivate GVirConfigDomainSnapshotPrivate;
0 /*
1 * libvirt-gconfig-domain-sound.c: libvirt domain sound configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_SOUND_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_SOUND, GVirConfigDomainSoundPrivate))
29
30 struct _GVirConfigDomainSoundPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainSound, gvir_config_domain_sound, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_sound_class_init(GVirConfigDomainSoundClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainSoundPrivate));
41 }
42
43
44 static void gvir_config_domain_sound_init(GVirConfigDomainSound *sound)
45 {
46 g_debug("Init GVirConfigDomainSound=%p", sound);
47
48 sound->priv = GVIR_CONFIG_DOMAIN_SOUND_GET_PRIVATE(sound);
49 }
50
51
52 GVirConfigDomainSound *gvir_config_domain_sound_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_SOUND,
57 "sound", NULL);
58 return GVIR_CONFIG_DOMAIN_SOUND(object);
59 }
60
61 GVirConfigDomainSound *gvir_config_domain_sound_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_SOUND,
67 "sound", NULL, xml, error);
68 return GVIR_CONFIG_DOMAIN_SOUND(object);
69 }
70
71 void gvir_config_domain_sound_set_model(GVirConfigDomainSound *sound,
72 GVirConfigDomainSoundModel model)
73 {
74 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_SOUND(sound));
75 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(sound), "model",
76 GVIR_CONFIG_TYPE_DOMAIN_SOUND_MODEL,
77 model,
78 NULL);
79 }
0 /*
1 * libvirt-gconfig-domain-sound.h: libvirt domain sound configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_SOUND_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_SOUND_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_SOUND (gvir_config_domain_sound_get_type ())
32 #define GVIR_CONFIG_DOMAIN_SOUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_SOUND, GVirConfigDomainSound))
33 #define GVIR_CONFIG_DOMAIN_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_SOUND, GVirConfigDomainSoundClass))
34 #define GVIR_CONFIG_IS_DOMAIN_SOUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_SOUND))
35 #define GVIR_CONFIG_IS_DOMAIN_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_SOUND))
36 #define GVIR_CONFIG_DOMAIN_SOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_SOUND, GVirConfigDomainSoundClass))
37
38 typedef struct _GVirConfigDomainSound GVirConfigDomainSound;
39 typedef struct _GVirConfigDomainSoundPrivate GVirConfigDomainSoundPrivate;
40 typedef struct _GVirConfigDomainSoundClass GVirConfigDomainSoundClass;
41
42 struct _GVirConfigDomainSound
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainSoundPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainSoundClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_SOUND_MODEL_SB16,
60 GVIR_CONFIG_DOMAIN_SOUND_MODEL_ES1370,
61 GVIR_CONFIG_DOMAIN_SOUND_MODEL_PCSPK,
62 GVIR_CONFIG_DOMAIN_SOUND_MODEL_AC97,
63 GVIR_CONFIG_DOMAIN_SOUND_MODEL_ICH6
64 } GVirConfigDomainSoundModel;
65
66 GType gvir_config_domain_sound_get_type(void);
67
68 GVirConfigDomainSound *gvir_config_domain_sound_new(void);
69 GVirConfigDomainSound *gvir_config_domain_sound_new_from_xml(const gchar *xml,
70 GError **error);
71 void gvir_config_domain_sound_set_model(GVirConfigDomainSound *sound,
72 GVirConfigDomainSoundModel model);
73
74 G_END_DECLS
75
76 #endif /* __LIBVIRT_GCONFIG_DOMAIN_SOUND_H__ */
0 /*
1 * libvirt-gconfig-domain-timer.c: libvirt domain timer configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25
26 #define GVIR_CONFIG_DOMAIN_TIMER_GET_PRIVATE(obj) \
27 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_TIMER, GVirConfigDomainTimerPrivate))
28
29 struct _GVirConfigDomainTimerPrivate
30 {
31 gboolean unused;
32 };
33
34 G_DEFINE_TYPE(GVirConfigDomainTimer, gvir_config_domain_timer, GVIR_CONFIG_TYPE_OBJECT);
35
36
37 static void gvir_config_domain_timer_class_init(GVirConfigDomainTimerClass *klass)
38 {
39 g_type_class_add_private(klass, sizeof(GVirConfigDomainTimerPrivate));
40 }
41
42
43 static void gvir_config_domain_timer_init(GVirConfigDomainTimer *timer)
44 {
45 g_debug("Init GVirConfigDomainTimer=%p", timer);
46
47 timer->priv = GVIR_CONFIG_DOMAIN_TIMER_GET_PRIVATE(timer);
48 }
49
50
51 GVirConfigDomainTimer *gvir_config_domain_timer_new(void)
52 {
53 GVirConfigObject *object;
54
55 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_TIMER, "timer", NULL);
56 return GVIR_CONFIG_DOMAIN_TIMER(object);
57 }
58
59
60 GVirConfigDomainTimer *gvir_config_domain_timer_new_from_xml(const gchar *xml,
61 GError **error)
62 {
63 GVirConfigObject *object;
64
65 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_TIMER,
66 "timer", NULL, xml, error);
67 return GVIR_CONFIG_DOMAIN_TIMER(object);
68 }
0 /*
1 * libvirt-gconfig-domain-timer.h: libvirt domain timer configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_TIMER_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_TIMER_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_TIMER (gvir_config_domain_timer_get_type ())
32 #define GVIR_CONFIG_DOMAIN_TIMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_TIMER, GVirConfigDomainTimer))
33 #define GVIR_CONFIG_DOMAIN_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_TIMER, GVirConfigDomainTimerClass))
34 #define GVIR_CONFIG_IS_DOMAIN_TIMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_TIMER))
35 #define GVIR_CONFIG_IS_DOMAIN_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_TIMER))
36 #define GVIR_CONFIG_DOMAIN_TIMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_TIMER, GVirConfigDomainTimerClass))
37
38 typedef struct _GVirConfigDomainTimer GVirConfigDomainTimer;
39 typedef struct _GVirConfigDomainTimerPrivate GVirConfigDomainTimerPrivate;
40 typedef struct _GVirConfigDomainTimerClass GVirConfigDomainTimerClass;
41
42 struct _GVirConfigDomainTimer
43 {
44 GVirConfigObject parent;
45
46 GVirConfigDomainTimerPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainTimerClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_domain_timer_get_type(void);
60
61 GVirConfigDomainTimer *gvir_config_domain_timer_new(void);
62 GVirConfigDomainTimer *gvir_config_domain_timer_new_from_xml(const gchar *xml,
63 GError **error);
64
65 G_END_DECLS
66
67 #endif /* __LIBVIRT_GCONFIG_DOMAIN_TIMER_H__ */
0 /*
1 * libvirt-gconfig-domain-video.c: libvirt domain video configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_DOMAIN_VIDEO_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_VIDEO, GVirConfigDomainVideoPrivate))
29
30 struct _GVirConfigDomainVideoPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigDomainVideo, gvir_config_domain_video, GVIR_CONFIG_TYPE_DOMAIN_DEVICE);
36
37
38 static void gvir_config_domain_video_class_init(GVirConfigDomainVideoClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigDomainVideoPrivate));
41 }
42
43
44 static void gvir_config_domain_video_init(GVirConfigDomainVideo *video)
45 {
46 g_debug("Init GVirConfigDomainVideo=%p", video);
47
48 video->priv = GVIR_CONFIG_DOMAIN_VIDEO_GET_PRIVATE(video);
49 }
50
51
52 GVirConfigDomainVideo *gvir_config_domain_video_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_VIDEO,
57 "video", NULL);
58 return GVIR_CONFIG_DOMAIN_VIDEO(object);
59 }
60
61 GVirConfigDomainVideo *gvir_config_domain_video_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_VIDEO,
67 "video", NULL, xml, error);
68 return GVIR_CONFIG_DOMAIN_VIDEO(object);
69 }
70
71 void gvir_config_domain_video_set_model(GVirConfigDomainVideo *video,
72 GVirConfigDomainVideoModel model)
73 {
74 GVirConfigObject *node;
75
76 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_VIDEO(video));
77 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(video),
78 "model");
79 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
80 gvir_config_object_set_attribute_with_type(node, "type",
81 GVIR_CONFIG_TYPE_DOMAIN_VIDEO_MODEL,
82 model,
83 NULL);
84 g_object_unref(G_OBJECT(node));
85 }
86
87 void gvir_config_domain_video_set_vram(GVirConfigDomainVideo *video,
88 guint kbytes)
89 {
90 xmlNodePtr node;
91 char *vram_str;
92
93 node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(video));
94 if (node == NULL)
95 return;
96 node = gvir_config_xml_get_element(node, "model", NULL);
97 if (node == NULL)
98 return;
99 vram_str = g_strdup_printf("%u", kbytes);
100 xmlNewProp(node, (xmlChar*)"vram", (xmlChar*)vram_str);
101 g_free(vram_str);
102 }
103
104 void gvir_config_domain_video_set_heads(GVirConfigDomainVideo *video,
105 guint head_count)
106 {
107 xmlNodePtr node;
108 char *heads_str;
109
110 node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(video));
111 if (node == NULL)
112 return;
113 node = gvir_config_xml_get_element(node, "model", NULL);
114 if (node == NULL)
115 return;
116 heads_str = g_strdup_printf("%u", head_count);
117 xmlNewProp(node, (xmlChar*)"heads", (xmlChar*)heads_str);
118 g_free(heads_str);
119 }
0 /*
1 * libvirt-gconfig-domain-video.h: libvirt domain video configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_DOMAIN_VIDEO_H__
27 #define __LIBVIRT_GCONFIG_DOMAIN_VIDEO_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_DOMAIN_VIDEO (gvir_config_domain_video_get_type ())
32 #define GVIR_CONFIG_DOMAIN_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN_VIDEO, GVirConfigDomainVideo))
33 #define GVIR_CONFIG_DOMAIN_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN_VIDEO, GVirConfigDomainVideoClass))
34 #define GVIR_CONFIG_IS_DOMAIN_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN_VIDEO))
35 #define GVIR_CONFIG_IS_DOMAIN_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN_VIDEO))
36 #define GVIR_CONFIG_DOMAIN_VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN_VIDEO, GVirConfigDomainVideoClass))
37
38 typedef struct _GVirConfigDomainVideo GVirConfigDomainVideo;
39 typedef struct _GVirConfigDomainVideoPrivate GVirConfigDomainVideoPrivate;
40 typedef struct _GVirConfigDomainVideoClass GVirConfigDomainVideoClass;
41
42 struct _GVirConfigDomainVideo
43 {
44 GVirConfigDomainDevice parent;
45
46 GVirConfigDomainVideoPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigDomainVideoClass
52 {
53 GVirConfigDomainDeviceClass parent_class;
54
55 gpointer padding[20];
56 };
57
58 typedef enum {
59 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_VGA,
60 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_CIRRUS,
61 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_VMVGA,
62 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_XEN,
63 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_VBOX,
64 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_QXL
65 } GVirConfigDomainVideoModel;
66
67 GType gvir_config_domain_video_get_type(void);
68
69 GVirConfigDomainVideo *gvir_config_domain_video_new(void);
70 GVirConfigDomainVideo *gvir_config_domain_video_new_from_xml(const gchar *xml,
71 GError **error);
72 void gvir_config_domain_video_set_model(GVirConfigDomainVideo *video,
73 GVirConfigDomainVideoModel model);
74 void gvir_config_domain_video_set_vram(GVirConfigDomainVideo *video,
75 guint kbytes);
76 void gvir_config_domain_video_set_heads(GVirConfigDomainVideo *video,
77 guint head_count);
78
79 G_END_DECLS
80
81 #endif /* __LIBVIRT_GCONFIG_DOMAIN_VIDEO_H__ */
00 /*
1 * libvirt-gobject-config_domain.c: libvirt glib integration
1 * libvirt-gconfig-domain.c: libvirt domain configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
28 #include "libvirt-gconfig/libvirt-gconfig-helpers-private.h"
29
30 extern gboolean debugFlag;
31
32 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
26 #include "libvirt-gconfig/libvirt-gconfig-private.h"
3327
3428 #define GVIR_CONFIG_DOMAIN_GET_PRIVATE(obj) \
35 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_DOMAIN, GVirConfigDomainPrivate))
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN, GVirConfigDomainPrivate))
3630
3731 struct _GVirConfigDomainPrivate
3832 {
3933 gboolean unused;
4034 };
4135
42 G_DEFINE_TYPE(GVirConfigDomain, gvir_config_domain, GVIR_TYPE_CONFIG_OBJECT);
36 G_DEFINE_TYPE(GVirConfigDomain, gvir_config_domain, GVIR_CONFIG_TYPE_OBJECT);
4337
4438 enum {
4539 PROP_0,
4640 PROP_NAME,
4741 PROP_MEMORY,
42 PROP_VCPU,
4843 PROP_FEATURES
4944 };
5045
6257 case PROP_MEMORY:
6358 g_value_set_uint64(value, gvir_config_domain_get_memory(domain));
6459 break;
60 case PROP_VCPU:
61 g_value_set_uint64(value, gvir_config_domain_get_vcpus(domain));
62 break;
6563 case PROP_FEATURES:
6664 g_value_take_boxed(value, gvir_config_domain_get_features(domain));
6765 break;
8482 break;
8583 case PROP_MEMORY:
8684 gvir_config_domain_set_memory(domain, g_value_get_uint64(value));
85 break;
86 case PROP_VCPU:
87 gvir_config_domain_set_vcpus(domain, g_value_get_uint64(value));
8788 break;
8889 case PROP_FEATURES:
8990 gvir_config_domain_set_features(domain, g_value_get_boxed(value));
121122 G_PARAM_READWRITE |
122123 G_PARAM_STATIC_STRINGS));
123124 g_object_class_install_property(object_class,
125 PROP_VCPU,
126 g_param_spec_uint64("vcpu",
127 "Virtual CPUs",
128 "Maximum Number of Guest Virtual CPUs",
129 0, G_MAXUINT64,
130 1,
131 G_PARAM_READWRITE |
132 G_PARAM_STATIC_STRINGS));
133 g_object_class_install_property(object_class,
124134 PROP_FEATURES,
125135 g_param_spec_boxed("features",
126136 "Features",
133143
134144 static void gvir_config_domain_init(GVirConfigDomain *conn)
135145 {
136 GVirConfigDomainPrivate *priv;
137
138 DEBUG("Init GVirConfigDomain=%p", conn);
139
140 priv = conn->priv = GVIR_CONFIG_DOMAIN_GET_PRIVATE(conn);
141
142 memset(priv, 0, sizeof(*priv));
146 g_debug("Init GVirConfigDomain=%p", conn);
147
148 conn->priv = GVIR_CONFIG_DOMAIN_GET_PRIVATE(conn);
143149 }
144150
145151
148154 {
149155 GVirConfigObject *object;
150156
151 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_DOMAIN,
157 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN,
152158 "domain",
153159 DATADIR "/libvirt/schemas/domain.rng",
154160 xml, error);
159165 {
160166 GVirConfigObject *object;
161167
162 object = gvir_config_object_new(GVIR_TYPE_CONFIG_DOMAIN,
168 object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN,
163169 "domain",
164170 DATADIR "/libvirt/schemas/domain.rng");
165171 return GVIR_CONFIG_DOMAIN(object);
166172 }
167173
174
175 void gvir_config_domain_set_virt_type(GVirConfigDomain *domain, GVirConfigDomainVirtType type)
176 {
177 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
178 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(domain),
179 "type",
180 GVIR_CONFIG_TYPE_DOMAIN_VIRT_TYPE,
181 type, NULL);
182 }
183
184
168185 char *gvir_config_domain_get_name(GVirConfigDomain *domain)
169186 {
170187 return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(domain),
178195 g_object_notify(G_OBJECT(domain), "name");
179196 }
180197
198 /**
199 * gvir_config_domain_get_memory:
200 * @domain: A domain configuration object.
201 *
202 * Returns: amount of RAM in kilobytes (i.e. blocks of 1024 bytes).
203 */
181204 guint64 gvir_config_domain_get_memory(GVirConfigDomain *domain)
182205 {
183206 return gvir_config_object_get_node_content_uint64(GVIR_CONFIG_OBJECT(domain),
184207 "memory");
185208 }
186209
210 /**
211 * gvir_config_domain_set_memory:
212 * @domain: A domain configuration object.
213 * @memory: The amount of RAM in kilobytes.
214 *
215 * Sets the amount of RAM allocated to @domain in kilobytes (i.e. blocks of 1024 bytes).
216 */
187217 void gvir_config_domain_set_memory(GVirConfigDomain *domain, guint64 memory)
188218 {
189219 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(domain),
191221 g_object_notify(G_OBJECT(domain), "memory");
192222 }
193223
224 guint64 gvir_config_domain_get_vcpus(GVirConfigDomain *domain)
225 {
226 return gvir_config_object_get_node_content_uint64(GVIR_CONFIG_OBJECT(domain),
227 "vcpu");
228 }
229
230 void gvir_config_domain_set_vcpus(GVirConfigDomain *domain, guint64 vcpu_count)
231 {
232 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(domain),
233 "vcpu", vcpu_count);
234 g_object_notify(G_OBJECT(domain), "vcpu");
235 }
236
237 static gboolean add_feature(xmlNodePtr node, gpointer opaque)
238 {
239 GPtrArray *features;
240 g_return_val_if_fail(opaque != NULL, FALSE);
241
242 features = (GPtrArray *)opaque;
243
244 g_ptr_array_add(features, g_strdup((char *)node->name));
245
246 return TRUE;
247 }
248
194249 /**
195250 * gvir_config_domain_get_features:
196251 * Returns: (transfer full):
198253 GStrv gvir_config_domain_get_features(GVirConfigDomain *domain)
199254 {
200255 GPtrArray *features;
201 xmlNodePtr parent_node;
202 xmlNodePtr node;
203 xmlNodePtr it;
204
205 parent_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(domain));
206 if (parent_node == NULL)
207 return NULL;
208
209 node = gvir_config_xml_get_element(parent_node, "features", NULL);
210 if (node == NULL)
211 return NULL;
256
257 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN(domain), NULL);
212258
213259 features = g_ptr_array_new();
214 for (it = node->children; it != NULL; it = it->next) {
215 g_ptr_array_add(features, g_strdup((char *)it->name));
216 }
260 gvir_config_object_foreach_child(GVIR_CONFIG_OBJECT(domain), "features",
261 add_feature, features);
217262 g_ptr_array_add(features, NULL);
218263
219264 return (GStrv)g_ptr_array_free(features, FALSE);
222267 void gvir_config_domain_set_features(GVirConfigDomain *domain,
223268 const GStrv features)
224269 {
225 xmlNodePtr parent_node;
226 xmlNodePtr features_node;
227 xmlNodePtr old_node;
270 GVirConfigObject *features_node;
228271 GStrv it;
229272
230 parent_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(domain));
231 features_node = xmlNewDocNode(parent_node->doc, NULL,
232 (xmlChar *)"features", NULL);
273 features_node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(domain),
274 "features");
275 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(features_node));
233276 for (it = features; *it != NULL; it++) {
234 xmlNodePtr node;
235
236 node = xmlNewDocNode(parent_node->doc, NULL, (xmlChar *)*it, NULL);
237 xmlAddChild(features_node, node);
277 GVirConfigObject *feature;
278 feature = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(features_node),
279 *it);
280 g_object_unref(G_OBJECT(feature));
238281 }
239
240 old_node = gvir_config_xml_get_element(parent_node, "features", NULL);
241 if (old_node) {
242 old_node = xmlReplaceNode(old_node, features_node);
243 xmlFreeNode(old_node);
244 } else {
245 xmlAddChild(parent_node, features_node);
282 g_object_unref(G_OBJECT(features_node));
283 g_object_notify(G_OBJECT(domain), "features");
284 }
285
286 void gvir_config_domain_set_clock(GVirConfigDomain *domain,
287 GVirConfigDomainClock *klock)
288 {
289 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
290 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CLOCK(klock));
291
292 gvir_config_object_attach(GVIR_CONFIG_OBJECT(domain),
293 GVIR_CONFIG_OBJECT(klock));
294 }
295
296 void gvir_config_domain_set_os(GVirConfigDomain *domain,
297 GVirConfigDomainOs *os)
298 {
299 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
300 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_OS(os));
301
302 gvir_config_object_attach(GVIR_CONFIG_OBJECT(domain),
303 GVIR_CONFIG_OBJECT(os));
304 }
305
306 void gvir_config_domain_set_seclabel(GVirConfigDomain *domain,
307 GVirConfigDomainSeclabel *seclabel)
308 {
309 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
310 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_SECLABEL(seclabel));
311
312 gvir_config_object_attach(GVIR_CONFIG_OBJECT(domain),
313 GVIR_CONFIG_OBJECT(seclabel));
314 }
315
316 void gvir_config_domain_set_lifecycle(GVirConfigDomain *domain,
317 GVirConfigDomainLifecycleEvent event,
318 GVirConfigDomainLifecycleAction action)
319 {
320 const char *event_str;
321 const char *action_str;
322
323 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
324 g_return_if_fail((event == GVIR_CONFIG_DOMAIN_LIFECYCLE_ON_CRASH) ||
325 ((action != GVIR_CONFIG_DOMAIN_LIFECYCLE_COREDUMP_DESTROY) &&
326 (action != GVIR_CONFIG_DOMAIN_LIFECYCLE_COREDUMP_RESTART)));
327
328 event_str = gvir_config_genum_get_nick(GVIR_CONFIG_TYPE_DOMAIN_LIFECYCLE_EVENT, event);
329 g_return_if_fail(event_str != NULL);
330 action_str = gvir_config_genum_get_nick(GVIR_CONFIG_TYPE_DOMAIN_LIFECYCLE_ACTION, action);
331 g_return_if_fail(action_str != NULL);
332
333 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(domain),
334 event_str, action_str);
335 }
336
337 /**
338 * gvir_config_domain_set_devices:
339 * @devices: (in) (element-type LibvirtGConfig.DomainDevice):
340 */
341 void gvir_config_domain_set_devices(GVirConfigDomain *domain,
342 GList *devices)
343 {
344 GVirConfigObject *devices_node;
345 GList *it;
346
347 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
348
349 devices_node = gvir_config_object_new(GVIR_CONFIG_TYPE_OBJECT,
350 "devices", NULL);
351 for (it = devices; it != NULL; it = it->next) {
352 if (!GVIR_CONFIG_IS_DOMAIN_DEVICE(it->data)) {
353 g_warn_if_reached();
354 continue;
355 }
356 gvir_config_object_attach(devices_node, GVIR_CONFIG_OBJECT(it->data));
246357 }
247 g_object_notify(G_OBJECT(domain), "features");
248 }
358
359 gvir_config_object_attach(GVIR_CONFIG_OBJECT(domain), devices_node);
360 g_object_unref(G_OBJECT(devices_node));
361 }
362
363 void gvir_config_domain_add_device(GVirConfigDomain *domain,
364 GVirConfigDomainDevice *device)
365 {
366 GVirConfigObject *devices_node;
367
368 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN(domain));
369 g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DEVICE(device));
370
371 devices_node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(domain),
372 "devices");
373
374 gvir_config_object_attach(devices_node, GVIR_CONFIG_OBJECT(device));
375 g_object_unref(G_OBJECT(devices_node));
376 }
377
378 struct GetDeviceData {
379 GVirConfigXmlDoc *doc;
380 GList *devices;
381 };
382
383 static gboolean add_device(xmlNodePtr node, gpointer opaque)
384 {
385 struct GetDeviceData* data = (struct GetDeviceData*)opaque;
386 GVirConfigDomainDevice *device;
387
388 device = gvir_config_domain_device_new_from_tree(data->doc, node);
389 if (device != NULL)
390 data->devices = g_list_append(data->devices, device);
391 else
392 g_debug("Failed to parse %s node", node->name);
393
394 return TRUE;
395 }
396
397 /**
398 * gvir_config_domain_get_devices:
399 *
400 * Gets the list of devices attached to @domain
401 *
402 * Returns: (element-type LibvirtGConfig.DomainDevice) (transfer full):
403 * a newly allocated #GList of #GVirConfigDomainDevice.
404 */
405 GList *gvir_config_domain_get_devices(GVirConfigDomain *domain)
406 {
407 struct GetDeviceData data;
408
409 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN(domain), NULL);
410
411 g_object_get(G_OBJECT(domain), "doc", &data.doc, NULL);
412 data.devices = NULL;
413 gvir_config_object_foreach_child(GVIR_CONFIG_OBJECT(domain), "devices",
414 add_device, &data);
415 if (data.doc != NULL) {
416 g_object_unref(G_OBJECT(data.doc));
417 }
418
419 return data.devices;
420 }
00 /*
1 * libvirt-gobject-domain-config.c: libvirt gobject integration
1 * libvirt-gconfig-domain.h: libvirt domain configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2626 #ifndef __LIBVIRT_GCONFIG_DOMAIN_H__
2727 #define __LIBVIRT_GCONFIG_DOMAIN_H__
2828
29 #include <libvirt-gconfig/libvirt-gconfig-domain-clock.h>
30 #include <libvirt-gconfig/libvirt-gconfig-domain-os.h>
31 #include <libvirt-gconfig/libvirt-gconfig-domain-device.h>
32 #include <libvirt-gconfig/libvirt-gconfig-domain-seclabel.h>
33
2934 G_BEGIN_DECLS
3035
31 #define GVIR_TYPE_CONFIG_DOMAIN (gvir_config_domain_get_type ())
32 #define GVIR_CONFIG_DOMAIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_DOMAIN, GVirConfigDomain))
33 #define GVIR_CONFIG_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_DOMAIN, GVirConfigDomainClass))
34 #define GVIR_IS_CONFIG_DOMAIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_DOMAIN))
35 #define GVIR_IS_CONFIG_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_DOMAIN))
36 #define GVIR_CONFIG_DOMAIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_DOMAIN, GVirConfigDomainClass))
36 #define GVIR_CONFIG_TYPE_DOMAIN (gvir_config_domain_get_type ())
37 #define GVIR_CONFIG_DOMAIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_DOMAIN, GVirConfigDomain))
38 #define GVIR_CONFIG_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_DOMAIN, GVirConfigDomainClass))
39 #define GVIR_CONFIG_IS_DOMAIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_DOMAIN))
40 #define GVIR_CONFIG_IS_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_DOMAIN))
41 #define GVIR_CONFIG_DOMAIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_DOMAIN, GVirConfigDomainClass))
3742
3843 typedef struct _GVirConfigDomain GVirConfigDomain;
3944 typedef struct _GVirConfigDomainPrivate GVirConfigDomainPrivate;
5560 gpointer padding[20];
5661 };
5762
63 typedef enum {
64 GVIR_CONFIG_DOMAIN_VIRT_QEMU,
65 GVIR_CONFIG_DOMAIN_VIRT_KQEMU,
66 GVIR_CONFIG_DOMAIN_VIRT_KVM,
67 GVIR_CONFIG_DOMAIN_VIRT_XEN,
68 GVIR_CONFIG_DOMAIN_VIRT_LXC,
69 GVIR_CONFIG_DOMAIN_VIRT_UML,
70 GVIR_CONFIG_DOMAIN_VIRT_OPENVZ,
71 GVIR_CONFIG_DOMAIN_VIRT_VSERVER,
72 GVIR_CONFIG_DOMAIN_VIRT_LDOM,
73 GVIR_CONFIG_DOMAIN_VIRT_TEST,
74 GVIR_CONFIG_DOMAIN_VIRT_VMWARE,
75 GVIR_CONFIG_DOMAIN_VIRT_HYPERV,
76 GVIR_CONFIG_DOMAIN_VIRT_VBOX,
77 GVIR_CONFIG_DOMAIN_VIRT_ONE,
78 GVIR_CONFIG_DOMAIN_VIRT_PHYP
79 } GVirConfigDomainVirtType;
80
81 typedef enum {
82 GVIR_CONFIG_DOMAIN_LIFECYCLE_ON_POWEROFF, /*< nick=on_poweroff >*/
83 GVIR_CONFIG_DOMAIN_LIFECYCLE_ON_REBOOT, /*< nick=on_reboot >*/
84 GVIR_CONFIG_DOMAIN_LIFECYCLE_ON_CRASH /*< nick=on_crash >*/
85 } GVirConfigDomainLifecycleEvent;
86
87 typedef enum {
88 GVIR_CONFIG_DOMAIN_LIFECYCLE_DESTROY,
89 GVIR_CONFIG_DOMAIN_LIFECYCLE_RESTART,
90 GVIR_CONFIG_DOMAIN_LIFECYCLE_PRESERVE,
91 GVIR_CONFIG_DOMAIN_LIFECYCLE_RENAME_RESTART,
92 GVIR_CONFIG_DOMAIN_LIFECYCLE_COREDUMP_DESTROY,
93 GVIR_CONFIG_DOMAIN_LIFECYCLE_COREDUMP_RESTART
94 } GVirConfigDomainLifecycleAction;
5895
5996 GType gvir_config_domain_get_type(void);
6097
6198 GVirConfigDomain *gvir_config_domain_new_from_xml(const gchar *xml, GError **error);
6299 GVirConfigDomain *gvir_config_domain_new(void);
63100
101 void gvir_config_domain_set_virt_type(GVirConfigDomain *domain, GVirConfigDomainVirtType type);
64102 char *gvir_config_domain_get_name(GVirConfigDomain *domain);
65103 void gvir_config_domain_set_name(GVirConfigDomain *domain, const char *name);
66104 guint64 gvir_config_domain_get_memory(GVirConfigDomain *domain);
67105 void gvir_config_domain_set_memory(GVirConfigDomain *domain, guint64 memory);
106 guint64 gvir_config_domain_get_vcpus(GVirConfigDomain *domain);
107 void gvir_config_domain_set_vcpus(GVirConfigDomain *domain,
108 guint64 vcpu_count);
68109 GStrv gvir_config_domain_get_features(GVirConfigDomain *domain);
69110 void gvir_config_domain_set_features(GVirConfigDomain *domain,
70111 const GStrv features);
71
112 void gvir_config_domain_set_clock(GVirConfigDomain *domain,
113 GVirConfigDomainClock *klock);
114 void gvir_config_domain_set_os(GVirConfigDomain *domain,
115 GVirConfigDomainOs *os);
116 void gvir_config_domain_set_seclabel(GVirConfigDomain *domain,
117 GVirConfigDomainSeclabel *seclabel);
118 void gvir_config_domain_set_devices(GVirConfigDomain *domain,
119 GList *devices);
120 void gvir_config_domain_add_device(GVirConfigDomain *domain,
121 GVirConfigDomainDevice *device);
122 GList *gvir_config_domain_get_devices(GVirConfigDomain *domain);
123 void gvir_config_domain_set_lifecycle(GVirConfigDomain *domain,
124 GVirConfigDomainLifecycleEvent event,
125 GVirConfigDomainLifecycleAction action);
72126
73127 G_END_DECLS
74128
0 /*** BEGIN file-header ***/
1 #include <libvirt-gconfig/libvirt-gconfig.h>
2
3 /*** END file-header ***/
4
5 /*** BEGIN file-production ***/
6 /* enumerations from "@filename@" */
7 /*** END file-production ***/
8
9 /*** BEGIN value-header ***/
10 GType
11 @enum_name@_get_type (void)
12 {
13 static volatile gsize g_define_type_id__volatile = 0;
14
15 if (g_once_init_enter (&g_define_type_id__volatile))
16 {
17 static const G@Type@Value values[] = {
18 /*** END value-header ***/
19
20 /*** BEGIN value-production ***/
21 { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
22 /*** END value-production ***/
23
24 /*** BEGIN value-tail ***/
25 { 0, NULL, NULL }
26 };
27 GType g_define_type_id =
28 g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
29 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
30 }
31
32 return g_define_type_id__volatile;
33 }
34
35 /*** END value-tail ***/
0 /*** BEGIN file-header ***/
1 #ifndef __LIBVIRT_GCONFIG_ENUM_TYPES_H__
2 #define __LIBVIRT_GCONFIG_ENUM_TYPES_H__
3
4 #include <libvirt-gconfig/libvirt-gconfig.h>
5
6 G_BEGIN_DECLS
7 /*** END file-header ***/
8
9 /*** BEGIN file-production ***/
10
11 /* enumerations from "@filename@" */
12 /*** END file-production ***/
13
14 /*** BEGIN value-header ***/
15 GType @enum_name@_get_type (void) G_GNUC_CONST;
16 #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
17 /*** END value-header ***/
18
19 /*** BEGIN file-tail ***/
20 G_END_DECLS
21
22 #endif /* __LIBVIRT_GCONFIG_ENUM_TYPES_H__ */
23 /*** END file-tail ***/
00 /*
1 * libvirt-gconfig-helpers.h: various GVirConfig helpers
1 * libvirt-gconfig-helpers-private.h: libvirt configuration helpers
22 *
3 * Copyright (C) 2010, 2011 Red Hat
3 * Copyright (C) 2010, 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2929
3030 G_BEGIN_DECLS
3131
32 GError *gvir_xml_error_new(GQuark domain, gint code,
32 GError *gvir_config_error_new(GQuark domain, gint code,
33 const gchar *format, ...);
34 void gvir_config_set_error(GError **err,
35 GQuark domain, gint code,
3336 const gchar *format, ...);
37 void gvir_config_set_error_literal(GError **err,
38 GQuark domain, gint code,
39 const gchar *message);
40 void gvir_config_set_error_valist(GError **err,
41 GQuark domain, gint code,
42 const gchar *format,
43 va_list args);
3444 xmlNodePtr gvir_config_xml_parse(const char *xml,
3545 const char *root_node,
3646 GError **err);
47 typedef gboolean (*GVirConfigXmlNodeIterator)(xmlNodePtr node, gpointer opaque);
48 void gvir_config_xml_foreach_child(xmlNodePtr node,
49 GVirConfigXmlNodeIterator iter_func,
50 gpointer opaque);
3751 xmlNode * gvir_config_xml_get_element (xmlNode *node, ...);
3852 xmlChar * gvir_config_xml_get_child_element_content (xmlNode *node,
3953 const char *child_name);
4054 char *gvir_config_xml_get_child_element_content_glib (xmlNode *node,
4155 const char *child_name);
56 xmlChar *gvir_config_xml_get_attribute_content(xmlNodePtr node,
57 const char *attr_name);
58 char *gvir_config_xml_get_attribute_content_glib(xmlNodePtr node,
59 const char *attr_name);
60 const char *gvir_config_genum_get_nick (GType enum_type, gint value);
61 int gvir_config_genum_get_value (GType enum_type, const char *nick, gint default_value);
4262 G_END_DECLS
4363
4464 #endif /* __LIBVIRT_GCONFIG_HELPERS_PRIVATE_H__ */
00 /*
1 * libvirt-gconfig-helpers.c: various GVirConfig helpers
2 *
3 * Copyright (C) 2010, 2011 Red Hat
1 * libvirt-gconfig-helpers.c: libvirt configuration helpers
2 *
3 * Copyright (C) 2010, 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
3535 return g_quark_from_static_string("gvir-config-object");
3636 }
3737
38 static GError *gvir_xml_error_new_literal(GQuark domain,
39 gint code,
40 const gchar *message)
38 static GError *gvir_config_error_new_literal(GQuark domain,
39 gint code,
40 const gchar *message)
4141 {
4242 xmlErrorPtr xerr = xmlGetLastError();
4343
5858 }
5959
6060
61 GError *gvir_xml_error_new(GQuark domain,
62 gint code,
63 const gchar *format,
64 ...)
61 GError *gvir_config_error_new(GQuark domain,
62 gint code,
63 const gchar *format,
64 ...)
6565 {
6666 GError *err;
6767 va_list args;
7171 message = g_strdup_vprintf(format, args);
7272 va_end(args);
7373
74 err = gvir_xml_error_new_literal(domain, code, message);
74 err = gvir_config_error_new_literal(domain, code, message);
7575
7676 g_free(message);
7777
7878 return err;
79 }
80
81
82 void gvir_config_set_error(GError **err,
83 GQuark domain, gint code,
84 const gchar *format, ...)
85 {
86 va_list args;
87 gchar *message;
88
89 if (!err)
90 return;
91
92 va_start(args, format);
93 message = g_strdup_vprintf(format, args);
94 va_end(args);
95
96 *err = gvir_config_error_new_literal(domain, code, message);
97
98 g_free(message);
99 }
100
101
102 void gvir_config_set_error_literal(GError **err,
103 GQuark domain, gint code,
104 const gchar *message)
105 {
106 if (!err)
107 return;
108
109 *err = gvir_config_error_new_literal(domain, code, message);
110 }
111
112
113 void gvir_config_set_error_valist(GError **err,
114 GQuark domain, gint code,
115 const gchar *format,
116 va_list args)
117 {
118 gchar *message;
119
120 if (!err)
121 return;
122
123 message = g_strdup_vprintf(format, args);
124
125 *err = gvir_config_error_new_literal(domain, code, message);
126
127 g_free(message);
79128 }
80129
81130 xmlNodePtr
93142
94143 doc = xmlParseMemory(xml, strlen(xml));
95144 if (!doc) {
96 *err = gvir_xml_error_new(GVIR_CONFIG_OBJECT_ERROR,
97 0,
98 "%s",
99 "Unable to parse configuration");
145 gvir_config_set_error_literal(err, GVIR_CONFIG_OBJECT_ERROR,
146 0,
147 "Unable to parse configuration");
100148 return NULL;
101149 }
102150 if ((!doc->children) || (strcmp((char *)doc->children->name, root_node) != 0)) {
103 *err = g_error_new(GVIR_CONFIG_OBJECT_ERROR,
104 0,
105 "XML data has no '%s' node",
106 root_node);
151 g_set_error(err,
152 GVIR_CONFIG_OBJECT_ERROR,
153 0,
154 "XML data has no '%s' node",
155 root_node);
107156 xmlFreeDoc(doc);
108157 return NULL;
109158 }
111160 return doc->children;
112161 }
113162
163 void gvir_config_xml_foreach_child(xmlNodePtr node,
164 GVirConfigXmlNodeIterator iter_func,
165 gpointer opaque)
166 {
167 xmlNodePtr it;
168
169 g_return_if_fail(iter_func != NULL);
170
171 for (it = node->children; it != NULL; it = it->next) {
172 gboolean cont;
173
174 if (xmlIsBlankNode(it))
175 continue;
176 cont = iter_func(it, opaque);
177 if (!cont)
178 break;
179 }
180 }
114181
115182 /*
116183 * gvir_config_xml_get_element, gvir_config_xml_get_child_element_content
160227 return xmlNodeGetContent (child_node);
161228 }
162229
230 static char *libxml_str_to_glib(xmlChar *str)
231 {
232 char *g_str;
233
234 if (str == NULL)
235 return NULL;
236 g_str = g_strdup((char *)str);
237 xmlFree(str);
238
239 return g_str;
240 }
241
163242 char *
164243 gvir_config_xml_get_child_element_content_glib (xmlNode *node,
165244 const char *child_name)
166245 {
167246 xmlChar *content;
168 char *copy;
169247
170248 content = gvir_config_xml_get_child_element_content (node, child_name);
171 if (!content)
172 return NULL;
173
174 copy = g_strdup ((char *) content);
175
176 xmlFree (content);
177
178 return copy;
179 }
249
250 return libxml_str_to_glib(content);
251 }
252
253 G_GNUC_INTERNAL xmlChar *
254 gvir_config_xml_get_attribute_content(xmlNodePtr node, const char *attr_name)
255 {
256 return xmlGetProp(node, (const xmlChar*)attr_name);
257 }
258
259 G_GNUC_INTERNAL char *
260 gvir_config_xml_get_attribute_content_glib(xmlNodePtr node, const char *attr_name)
261 {
262 xmlChar *attr;
263
264 attr = gvir_config_xml_get_attribute_content(node, attr_name);
265
266 return libxml_str_to_glib(attr);
267 }
268
269 const char *gvir_config_genum_get_nick (GType enum_type, gint value)
270 {
271 GEnumClass *enum_class;
272 GEnumValue *enum_value;
273
274 g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), NULL);
275
276 enum_class = g_type_class_ref(enum_type);
277 enum_value = g_enum_get_value(enum_class, value);
278 g_type_class_unref(enum_class);
279
280 if (enum_value != NULL)
281 return enum_value->value_nick;
282
283 g_return_val_if_reached(NULL);
284 }
285
286 G_GNUC_INTERNAL int
287 gvir_config_genum_get_value (GType enum_type, const char *nick,
288 gint default_value)
289 {
290 GEnumClass *enum_class;
291 GEnumValue *enum_value;
292
293 g_return_val_if_fail(G_TYPE_IS_ENUM(enum_type), default_value);
294 g_return_val_if_fail(nick != NULL, default_value);
295
296 enum_class = g_type_class_ref(enum_type);
297 enum_value = g_enum_get_value_by_nick(enum_class, nick);
298 g_type_class_unref(enum_class);
299
300 if (enum_value != NULL)
301 return enum_value->value;
302
303 g_return_val_if_reached(default_value);
304 }
00 /*
1 * libvirt-gconfig-helpers.h: various GVirConfig helpers
1 * libvirt-gconfig-helpers.h: libvirt configuration helpers
22 *
3 * Copyright (C) 2010, 2011 Red Hat
3 * Copyright (C) 2010, 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
00 /*
1 * libvirt-gobject-config_interface.c: libvirt glib integration
1 * libvirt-gconfig-interface.c: libvirt interface configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_INTERFACE_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_INTERFACE, GVirConfigInterfacePrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_INTERFACE, GVirConfigInterfacePrivate))
3529
3630 struct _GVirConfigInterfacePrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigInterface, gvir_config_interface, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigInterface, gvir_config_interface, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_interface_class_init(GVirConfigInterfaceClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigInterfacePrivate));
4841 }
4942
5043
5144 static void gvir_config_interface_init(GVirConfigInterface *conn)
5245 {
53 GVirConfigInterfacePrivate *priv;
46 g_debug("Init GVirConfigInterface=%p", conn);
5447
55 DEBUG("Init GVirConfigInterface=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_INTERFACE_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_INTERFACE_GET_PRIVATE(conn);
6049 }
6150
6251
6453 {
6554 GVirConfigObject *object;
6655
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_INTERFACE,
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_INTERFACE,
6857 "interface",
6958 DATADIR "/libvirt/schemas/interface.rng");
7059 return GVIR_CONFIG_INTERFACE(object);
7564 {
7665 GVirConfigObject *object;
7766
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_INTERFACE,
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_INTERFACE,
7968 "interface",
8069 DATADIR "/libvirt/schemas/interface.rng",
8170 xml, error);
8271 return GVIR_CONFIG_INTERFACE(object);
8372 }
84
00 /*
1 * libvirt-gobject-interface-config.c: libvirt gobject integration
1 * libvirt-gconfig-interface.c: libvirt interface configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_INTERFACE (gvir_config_interface_get_type ())
32 #define GVIR_CONFIG_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_INTERFACE, GVirConfigInterface))
33 #define GVIR_CONFIG_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_INTERFACE, GVirConfigInterfaceClass))
34 #define GVIR_IS_CONFIG_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_INTERFACE))
35 #define GVIR_IS_CONFIG_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_INTERFACE))
36 #define GVIR_CONFIG_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_INTERFACE, GVirConfigInterfaceClass))
31 #define GVIR_CONFIG_TYPE_INTERFACE (gvir_config_interface_get_type ())
32 #define GVIR_CONFIG_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_INTERFACE, GVirConfigInterface))
33 #define GVIR_CONFIG_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_INTERFACE, GVirConfigInterfaceClass))
34 #define GVIR_CONFIG_IS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_INTERFACE))
35 #define GVIR_CONFIG_IS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_INTERFACE))
36 #define GVIR_CONFIG_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_INTERFACE, GVirConfigInterfaceClass))
3737
3838 typedef struct _GVirConfigInterface GVirConfigInterface;
3939 typedef struct _GVirConfigInterfacePrivate GVirConfigInterfacePrivate;
0 /*
1 * libvirt-gconfig-main.c: libvirt gconfig integration
2 *
3 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010-2011 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, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
21 */
22
23 #include <config.h>
24
25 #include <stdlib.h>
26 #include <stdio.h>
27
28 #include "libvirt-glib/libvirt-glib.h"
29 #include "libvirt-gconfig/libvirt-gconfig.h"
30
31 /**
32 * gvirt_config_init:
33 * @argc: (inout): pointer to application's argc
34 * @argv: (inout) (array length=argc) (allow-none): pointer to application's argv
35 */
36 void gvir_config_init(int *argc,
37 char ***argv)
38 {
39 GError *err = NULL;
40 if (!gvir_config_init_check(argc, argv, &err)) {
41 g_error("Could not initialize libvirt-gconfig: %s\n",
42 err->message);
43 }
44 }
45
46 static void gvir_log_handler(const gchar *log_domain G_GNUC_UNUSED,
47 GLogLevelFlags log_level G_GNUC_UNUSED,
48 const gchar *message,
49 gpointer user_data)
50 {
51 if (user_data)
52 fprintf(stderr, "%s\n", message);
53 }
54
55
56 /**
57 * gvir_config_init_check:
58 * @argc: (inout): pointer to application's argc
59 * @argv: (inout) (array length=argc) (allow-none): pointer to application's argv
60 * @err: pointer to a #GError to which a message will be posted on error
61 */
62 gboolean gvir_config_init_check(int *argc G_GNUC_UNUSED,
63 char ***argv G_GNUC_UNUSED,
64 GError **err G_GNUC_UNUSED)
65 {
66 g_type_init();
67
68 /* GLib >= 2.31.0 debug is off by default, so we need to
69 * enable it. Older versions are on by default, so we need
70 * to disable it.
71 */
72 #if GLIB_CHECK_VERSION(2, 31, 0)
73 if (getenv("LIBVIRT_GCONFIG_DEBUG"))
74 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
75 gvir_log_handler, (void*)0x1);
76 #else
77 if (!getenv("LIBVIRT_GCONFIG_DEBUG"))
78 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
79 gvir_log_handler, NULL);
80 #endif
81
82 return TRUE;
83 }
0 /*
1 * libvirt-gconfig-main.h: libvirt gconfig integration
2 *
3 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010-2011 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, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
21 */
22
23 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
24 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
25 #endif
26
27 #ifndef __LIBVIRT_GCONFIG_MAIN_H__
28 #define __LIBVIRT_GCONFIG_MAIN_H__
29
30 G_BEGIN_DECLS
31
32 void gvir_config_init(int *argc,
33 char ***argv);
34 gboolean gvir_config_init_check(int *argc,
35 char ***argv,
36 GError **err);
37
38 G_END_DECLS
39
40 #endif /* __LIBVIRT_GCONFIG_MAIN_H__ */
00 /*
1 * libvirt-gobject-config_network_filter.c: libvirt glib integration
1 * libvirt-gconfig-network-filter.c: libvirt network filter configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_NETWORK_FILTER_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_NETWORK_FILTER, GVirConfigNetworkFilterPrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_NETWORK_FILTER, GVirConfigNetworkFilterPrivate))
3529
3630 struct _GVirConfigNetworkFilterPrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigNetworkFilter, gvir_config_network_filter, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigNetworkFilter, gvir_config_network_filter, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_network_filter_class_init(GVirConfigNetworkFilterClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigNetworkFilterPrivate));
4841 }
4942
5043
5144 static void gvir_config_network_filter_init(GVirConfigNetworkFilter *conn)
5245 {
53 GVirConfigNetworkFilterPrivate *priv;
46 g_debug("Init GVirConfigNetworkFilter=%p", conn);
5447
55 DEBUG("Init GVirConfigNetworkFilter=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_NETWORK_FILTER_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_NETWORK_FILTER_GET_PRIVATE(conn);
6049 }
6150
6251
6453 {
6554 GVirConfigObject *object;
6655
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_NETWORK_FILTER,
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_NETWORK_FILTER,
6857 "filter",
6958 DATADIR "/libvirt/schemas/nwfilter.rng");
7059 return GVIR_CONFIG_NETWORK_FILTER(object);
7564 {
7665 GVirConfigObject *object;
7766
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_NETWORK_FILTER,
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_NETWORK_FILTER,
7968 "filter",
8069 DATADIR "/libvirt/schemas/nwfilter.rng",
8170 xml, error);
00 /*
1 * libvirt-gobject-nwfilter-config.c: libvirt gobject integration
1 * libvirt-gconfig-network-filter.h: libvirt network filter configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_NETWORK_FILTER (gvir_config_network_filter_get_type ())
32 #define GVIR_CONFIG_NETWORK_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_NETWORK_FILTER, GVirConfigNetworkFilter))
33 #define GVIR_CONFIG_NETWORK_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_NETWORK_FILTER, GVirConfigNetworkFilterClass))
34 #define GVIR_IS_CONFIG_NETWORK_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_NETWORK_FILTER))
35 #define GVIR_IS_CONFIG_NETWORK_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_NETWORK_FILTER))
36 #define GVIR_CONFIG_NETWORK_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_NETWORK_FILTER, GVirConfigNetworkFilterClass))
31 #define GVIR_CONFIG_TYPE_NETWORK_FILTER (gvir_config_network_filter_get_type ())
32 #define GVIR_CONFIG_NETWORK_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_NETWORK_FILTER, GVirConfigNetworkFilter))
33 #define GVIR_CONFIG_NETWORK_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_NETWORK_FILTER, GVirConfigNetworkFilterClass))
34 #define GVIR_CONFIG_IS_NETWORK_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_NETWORK_FILTER))
35 #define GVIR_CONFIG_IS_NETWORK_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_NETWORK_FILTER))
36 #define GVIR_CONFIG_NETWORK_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_NETWORK_FILTER, GVirConfigNetworkFilterClass))
3737
3838 typedef struct _GVirConfigNetworkFilter GVirConfigNetworkFilter;
3939 typedef struct _GVirConfigNetworkFilterPrivate GVirConfigNetworkFilterPrivate;
00 /*
1 * libvirt-gobject-config_network.c: libvirt glib integration
1 * libvirt-gconfig-network.c: libvirt network configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_NETWORK_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_NETWORK, GVirConfigNetworkPrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_NETWORK, GVirConfigNetworkPrivate))
3529
3630 struct _GVirConfigNetworkPrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigNetwork, gvir_config_network, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigNetwork, gvir_config_network, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_network_class_init(GVirConfigNetworkClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigNetworkPrivate));
4841 }
4942
5043
5144 static void gvir_config_network_init(GVirConfigNetwork *conn)
5245 {
53 GVirConfigNetworkPrivate *priv;
46 g_debug("Init GVirConfigNetwork=%p", conn);
5447
55 DEBUG("Init GVirConfigNetwork=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_NETWORK_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_NETWORK_GET_PRIVATE(conn);
6049 }
6150
6251
6453 {
6554 GVirConfigObject *object;
6655
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_NETWORK,
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_NETWORK,
6857 "network",
6958 DATADIR "/libvirt/schemas/network.rng");
7059 return GVIR_CONFIG_NETWORK(object);
7564 {
7665 GVirConfigObject *object;
7766
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_NETWORK,
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_NETWORK,
7968 "network",
8069 DATADIR "/libvirt/schemas/network.rng",
8170 xml, error);
00 /*
1 * libvirt-gobject-network-config.c: libvirt gobject integration
1 * libvirt-gconfig-network.c: libvirt network configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_NETWORK (gvir_config_network_get_type ())
32 #define GVIR_CONFIG_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_NETWORK, GVirConfigNetwork))
33 #define GVIR_CONFIG_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_NETWORK, GVirConfigNetworkClass))
34 #define GVIR_IS_CONFIG_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_NETWORK))
35 #define GVIR_IS_CONFIG_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_NETWORK))
36 #define GVIR_CONFIG_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_NETWORK, GVirConfigNetworkClass))
31 #define GVIR_CONFIG_TYPE_NETWORK (gvir_config_network_get_type ())
32 #define GVIR_CONFIG_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_NETWORK, GVirConfigNetwork))
33 #define GVIR_CONFIG_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_NETWORK, GVirConfigNetworkClass))
34 #define GVIR_CONFIG_IS_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_NETWORK))
35 #define GVIR_CONFIG_IS_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_NETWORK))
36 #define GVIR_CONFIG_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_NETWORK, GVirConfigNetworkClass))
3737
3838 typedef struct _GVirConfigNetwork GVirConfigNetwork;
3939 typedef struct _GVirConfigNetworkPrivate GVirConfigNetworkPrivate;
00 /*
1 * libvirt-gobject-config_node_device.c: libvirt glib integration
1 * libvirt-gconfig-node-device.c: libvirt node device configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_NODE_DEVICE_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_NODE_DEVICE, GVirConfigNodeDevicePrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_NODE_DEVICE, GVirConfigNodeDevicePrivate))
3529
3630 struct _GVirConfigNodeDevicePrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigNodeDevice, gvir_config_node_device, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigNodeDevice, gvir_config_node_device, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_node_device_class_init(GVirConfigNodeDeviceClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigNodeDevicePrivate));
4841 }
4942
5043
5144 static void gvir_config_node_device_init(GVirConfigNodeDevice *conn)
5245 {
53 GVirConfigNodeDevicePrivate *priv;
46 g_debug("Init GVirConfigNodeDevice=%p", conn);
5447
55 DEBUG("Init GVirConfigNodeDevice=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_NODE_DEVICE_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_NODE_DEVICE_GET_PRIVATE(conn);
6049 }
6150
6251
6453 {
6554 GVirConfigObject *object;
6655
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_NODE_DEVICE,
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_NODE_DEVICE,
6857 "device",
6958 DATADIR "/libvirt/schemas/nodedev.rng");
7059 return GVIR_CONFIG_NODE_DEVICE(object);
7564 {
7665 GVirConfigObject *object;
7766
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_NODE_DEVICE,
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_NODE_DEVICE,
7968 "device",
8069 DATADIR "/libvirt/schemas/nodedev.rng",
8170 xml, error);
00 /*
1 * libvirt-gobject-nodedevice-config.c: libvirt gobject integration
1 * libvirt-gconfig-node-device.h: libvirt node device configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_NODE_DEVICE (gvir_config_node_device_get_type ())
32 #define GVIR_CONFIG_NODE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_NODE_DEVICE, GVirConfigNodeDevice))
33 #define GVIR_CONFIG_NODE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_NODE_DEVICE, GVirConfigNodeDeviceClass))
34 #define GVIR_IS_CONFIG_NODE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_NODE_DEVICE))
35 #define GVIR_IS_CONFIG_NODE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_NODE_DEVICE))
36 #define GVIR_CONFIG_NODE_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_NODE_DEVICE, GVirConfigNodeDeviceClass))
31 #define GVIR_CONFIG_TYPE_NODE_DEVICE (gvir_config_node_device_get_type ())
32 #define GVIR_CONFIG_NODE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_NODE_DEVICE, GVirConfigNodeDevice))
33 #define GVIR_CONFIG_NODE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_NODE_DEVICE, GVirConfigNodeDeviceClass))
34 #define GVIR_CONFIG_IS_NODE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_NODE_DEVICE))
35 #define GVIR_CONFIG_IS_NODE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_NODE_DEVICE))
36 #define GVIR_CONFIG_NODE_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_NODE_DEVICE, GVirConfigNodeDeviceClass))
3737
3838 typedef struct _GVirConfigNodeDevice GVirConfigNodeDevice;
3939 typedef struct _GVirConfigNodeDevicePrivate GVirConfigNodeDevicePrivate;
0 /*
1 * libvirt-gconfig-object-private.h: base object for XML configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21 #ifndef __LIBVIRT_GCONFIG_OBJECT_PRIVATE_H__
22 #define __LIBVIRT_GCONFIG_OBJECT_PRIVATE_H__
23
24 G_BEGIN_DECLS
25
26 #include <libvirt-gconfig/libvirt-gconfig-xml-doc.h>
27
28 GVirConfigObject *gvir_config_object_new_from_tree(GType type,
29 GVirConfigXmlDoc *doc,
30 const char *schema,
31 xmlNodePtr tree);
32 xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config);
33 char *gvir_config_object_get_node_content(GVirConfigObject *object,
34 const char *node_name);
35 guint64 gvir_config_object_get_node_content_uint64(GVirConfigObject *object,
36 const char *node_name);
37 gint gvir_config_object_get_node_content_genum(GVirConfigObject *object,
38 const char *node_name,
39 GType enum_type,
40 gint default_value);
41 char *gvir_config_object_get_attribute(GVirConfigObject *object,
42 const char *node_name,
43 const char *attr_name);
44 gint gvir_config_object_get_attribute_genum(GVirConfigObject *object,
45 const char *node_name,
46 const char *attr_name,
47 GType enum_type,
48 gint default_value);
49 void gvir_config_object_set_node_content(GVirConfigObject *object,
50 const char *node_name,
51 const char *value);
52 void gvir_config_object_set_node_content_uint64(GVirConfigObject *object,
53 const char *node_name,
54 guint64 value);
55 GVirConfigObject *gvir_config_object_add_child(GVirConfigObject *object,
56 const char *child_name);
57 void gvir_config_object_add_child_with_attribute(GVirConfigObject *object,
58 const char *child_name,
59 const char *attr_name,
60 const char *attr_value);
61 void gvir_config_object_add_child_with_attribute_enum(GVirConfigObject *object,
62 const char *child_name,
63 const char *attr_name,
64 GType attr_type,
65 unsigned int attr_value);
66 GVirConfigObject *gvir_config_object_replace_child(GVirConfigObject *object,
67 const char *child_name);
68 void gvir_config_object_replace_child_with_attribute(GVirConfigObject *object,
69 const char *child_name,
70 const char *attr_name,
71 const char *attr_value);
72 void gvir_config_object_delete_child(GVirConfigObject *object,
73 const char *child_name);
74 void gvir_config_object_set_child(GVirConfigObject *object,
75 xmlNodePtr child);
76
77 void gvir_config_object_attach(GVirConfigObject *parent,
78 GVirConfigObject *child);
79 void gvir_config_object_set_attribute(GVirConfigObject *object,
80 ...) G_GNUC_NULL_TERMINATED;
81 void gvir_config_object_set_attribute_with_type(GVirConfigObject *object,
82 ...) G_GNUC_NULL_TERMINATED;
83 void gvir_config_object_remove_attribute(GVirConfigObject *object,
84 const char *attr_name);
85 void gvir_config_object_foreach_child(GVirConfigObject *object,
86 const char *parent_name,
87 GVirConfigXmlNodeIterator iter_func,
88 gpointer opaque);
89
90 G_END_DECLS
91
92 #endif /* __LIBVIRT_GCONFIG_OBJECT_H__ */
00 /*
1 * libvirt-gconfig-config-object.c: base object for XML configuration
1 * libvirt-gconfig-object.c: base object for XML configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2727 #include <libxml/relaxng.h>
2828
2929 #include "libvirt-gconfig/libvirt-gconfig.h"
30 #include "libvirt-gconfig/libvirt-gconfig-helpers-private.h"
31
32
33 //extern gboolean debugFlag;
34 gboolean debugFlag;
35
36 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
30 #include "libvirt-gconfig/libvirt-gconfig-private.h"
3731
3832 #define GVIR_CONFIG_OBJECT_GET_PRIVATE(obj) \
39 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_OBJECT, GVirConfigObjectPrivate))
33 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_OBJECT, GVirConfigObjectPrivate))
4034
4135 struct _GVirConfigObjectPrivate
4236 {
4337 gchar *schema;
4438
39 GVirConfigXmlDoc *doc;
4540 xmlNodePtr node;
4641 };
4742
48 G_DEFINE_ABSTRACT_TYPE(GVirConfigObject, gvir_config_object, G_TYPE_OBJECT);
43 G_DEFINE_TYPE(GVirConfigObject, gvir_config_object, G_TYPE_OBJECT);
4944
5045 enum {
5146 PROP_0,
5247 PROP_SCHEMA,
53 PROP_NODE
48 PROP_NODE,
49 PROP_DOC
5450 };
5551
5652
7167 GValue *value,
7268 GParamSpec *pspec)
7369 {
74 GVirConfigObject *conn = GVIR_CONFIG_OBJECT(object);
75 GVirConfigObjectPrivate *priv = conn->priv;
70 GVirConfigObject *obj = GVIR_CONFIG_OBJECT(object);
71 GVirConfigObjectPrivate *priv = obj->priv;
7672
7773 switch (prop_id) {
7874 case PROP_SCHEMA:
8076 break;
8177
8278 case PROP_NODE:
83 g_value_set_pointer(value, gvir_config_object_get_xml_node(conn));
79 g_value_set_pointer(value, gvir_config_object_get_xml_node(obj));
80 break;
81
82 case PROP_DOC:
83 g_value_set_object(value, obj->priv->doc);
8484 break;
8585
8686 default:
9393 const GValue *value,
9494 GParamSpec *pspec)
9595 {
96 GVirConfigObject *conn = GVIR_CONFIG_OBJECT(object);
97 GVirConfigObjectPrivate *priv = conn->priv;
96 GVirConfigObject *obj = GVIR_CONFIG_OBJECT(object);
97 GVirConfigObjectPrivate *priv = obj->priv;
9898
9999 switch (prop_id) {
100100 case PROP_SCHEMA:
102102 priv->schema = g_value_dup_string(value);
103103 break;
104104
105 case PROP_NODE: {
106 xmlNodePtr node;
107 node = g_value_get_pointer(value);
108 if ((priv->node != NULL)
109 && (priv->node->doc != NULL)
110 && (priv->node->doc != node->doc)) {
111 xmlFreeDoc(priv->node->doc);
112 }
113 priv->node = node;
105 case PROP_NODE:
106 priv->node =g_value_get_pointer(value);
114107 break;
115 }
108
109 case PROP_DOC:
110 obj->priv->doc = g_value_dup_object(value);
111 break;
116112
117113 default:
118114 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
125121 GVirConfigObject *conn = GVIR_CONFIG_OBJECT(object);
126122 GVirConfigObjectPrivate *priv = conn->priv;
127123
128 DEBUG("Finalize GVirConfigObject=%p", conn);
124 g_debug("Finalize GVirConfigObject=%p", conn);
129125
130126 g_free(priv->schema);
131127
132 /* FIXME: all objects describing a given XML document will share the
133 * same document so we can't destroy it here like this, we need some
134 * refcounting to know when to destroy it.
135 */
136 if (priv->node)
137 xmlFreeDoc(priv->node->doc);
128 if (priv->doc != NULL) {
129 g_object_unref(G_OBJECT(priv->doc));
130 priv->node = NULL; /* node belongs to doc, make sure not to free it */
131 }
132 if (priv->node != NULL) {
133 g_assert(priv->node->doc == NULL);
134 xmlFreeNode(priv->node);
135 }
138136
139137 G_OBJECT_CLASS(gvir_config_object_parent_class)->finalize(object);
140138 }
157155 G_PARAM_READABLE |
158156 G_PARAM_WRITABLE |
159157 G_PARAM_CONSTRUCT_ONLY |
160 G_PARAM_STATIC_NAME |
161 G_PARAM_STATIC_NICK |
162 G_PARAM_STATIC_BLURB));
158 G_PARAM_STATIC_STRINGS));
163159
164160 g_object_class_install_property(object_class,
165161 PROP_NODE,
170166 G_PARAM_CONSTRUCT_ONLY |
171167 G_PARAM_STATIC_STRINGS));
172168
169 g_object_class_install_property(object_class,
170 PROP_DOC,
171 g_param_spec_object("doc",
172 "XML Doc",
173 "The XML doc this config object corresponds to",
174 GVIR_CONFIG_TYPE_XML_DOC,
175 G_PARAM_READWRITE |
176 G_PARAM_CONSTRUCT_ONLY |
177 G_PARAM_STATIC_STRINGS));
178
173179 g_type_class_add_private(klass, sizeof(GVirConfigObjectPrivate));
174180 }
175181
176182
177183 static void gvir_config_object_init(GVirConfigObject *conn)
178184 {
179 GVirConfigObjectPrivate *priv;
180
181 DEBUG("Init GVirConfigObject=%p", conn);
182
183 priv = conn->priv = GVIR_CONFIG_OBJECT_GET_PRIVATE(conn);
184
185 memset(priv, 0, sizeof(*priv));
185 g_debug("Init GVirConfigObject=%p", conn);
186
187 conn->priv = GVIR_CONFIG_OBJECT_GET_PRIVATE(conn);
186188 }
187189
188190 void gvir_config_object_validate(GVirConfigObject *config,
197199 xmlSetStructuredErrorFunc(NULL, gvir_xml_structured_error_nop);
198200
199201 if (!priv->node) {
200 *err = gvir_xml_error_new(GVIR_CONFIG_OBJECT_ERROR,
201 0,
202 "%s",
203 "No XML document associated with this config object");
202 gvir_config_set_error_literal(err,
203 GVIR_CONFIG_OBJECT_ERROR,
204 0,
205 "No XML document associated with this config object");
204206 return;
205207 }
206208
207209 rngParser = xmlRelaxNGNewParserCtxt(priv->schema);
208210 if (!rngParser) {
209 *err = gvir_xml_error_new(GVIR_CONFIG_OBJECT_ERROR,
210 0,
211 "Unable to create RNG parser for %s",
212 priv->schema);
211 gvir_config_set_error(err,
212 GVIR_CONFIG_OBJECT_ERROR,
213 0,
214 "Unable to create RNG parser for %s",
215 priv->schema);
213216 return;
214217 }
215218
216219 rng = xmlRelaxNGParse(rngParser);
217220 if (!rng) {
218 *err = gvir_xml_error_new(GVIR_CONFIG_OBJECT_ERROR,
219 0,
220 "Unable to parse RNG %s",
221 priv->schema);
221 gvir_config_set_error(err,
222 GVIR_CONFIG_OBJECT_ERROR,
223 0,
224 "Unable to parse RNG %s",
225 priv->schema);
222226 xmlRelaxNGFreeParserCtxt(rngParser);
223227 return;
224228 }
226230
227231 rngValid = xmlRelaxNGNewValidCtxt(rng);
228232 if (!rngValid) {
229 *err = gvir_xml_error_new(GVIR_CONFIG_OBJECT_ERROR,
230 0,
231 "Unable to create RNG validation context %s",
232 priv->schema);
233 gvir_config_set_error(err,
234 GVIR_CONFIG_OBJECT_ERROR,
235 0,
236 "Unable to create RNG validation context %s",
237 priv->schema);
233238 xmlRelaxNGFree(rng);
234239 return;
235240 }
236241
237242 if (xmlRelaxNGValidateDoc(rngValid, priv->node->doc) != 0) {
238 *err = gvir_xml_error_new(GVIR_CONFIG_OBJECT_ERROR,
239 0,
240 "%s",
241 "Unable to validate doc");
243 gvir_config_set_error_literal(err,
244 GVIR_CONFIG_OBJECT_ERROR,
245 0,
246 "Unable to validate doc");
242247 xmlRelaxNGFreeValidCtxt(rngValid);
243248 xmlRelaxNGFree(rng);
244249 return;
259264 if (node == NULL)
260265 return NULL;
261266
262 xmlDocDumpMemory(node->doc, &doc, &size);
267 xmlDocDumpFormatMemory(node->doc, &doc, &size, 1);
263268
264269 output_doc = g_strdup((gchar *)doc);
265270 xmlFree(doc);
276281 /* FIXME: will we always have one xmlNode per GConfig object? */
277282 /* FIXME: need to return the right node from subclasses */
278283 /* NB: the xmlNodePtr must not be freed by the caller */
279 xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config)
284 G_GNUC_INTERNAL xmlNodePtr
285 gvir_config_object_get_xml_node(GVirConfigObject *config)
280286 {
281287 return config->priv->node;
282288 }
283289
284 char *gvir_config_object_get_node_content(GVirConfigObject *object,
285 const char *node_name)
290 G_GNUC_INTERNAL char *
291 gvir_config_object_get_node_content(GVirConfigObject *object,
292 const char *node_name)
286293 {
287294 xmlNodePtr node;
288295
293300 return gvir_config_xml_get_child_element_content_glib(node, node_name);
294301 }
295302
296 /* FIXME: if there are multiple nodes with the same name, this function
297 * won't behave as expected. Should we get rid of the duplicated node names
298 * here?
299 */
300 void gvir_config_object_set_node_content(GVirConfigObject *object,
301 const char *node_name,
302 const char *value)
303 G_GNUC_INTERNAL char *
304 gvir_config_object_get_attribute(GVirConfigObject *object,
305 const char *node_name,
306 const char *attr_name)
307 {
308 xmlNodePtr node;
309
310 g_return_val_if_fail(attr_name != NULL, NULL);
311
312 node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(object));
313 if (node == NULL)
314 return NULL;
315
316 if (node_name != NULL) {
317 node = gvir_config_xml_get_element(node, node_name, NULL);
318 if (node == NULL)
319 return NULL;
320 }
321
322 return gvir_config_xml_get_attribute_content_glib(node, attr_name);
323 }
324
325 static xmlNodePtr
326 gvir_config_object_set_child_internal(GVirConfigObject *object,
327 xmlNodePtr child,
328 gboolean overwrite)
303329 {
304330 xmlNodePtr parent_node;
305331 xmlNodePtr old_node;
332
333 parent_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(object));
334 g_return_val_if_fail (parent_node != NULL, NULL);
335
336 old_node = gvir_config_xml_get_element(parent_node, child->name, NULL);
337 /* FIXME: should we make sure there are no multiple occurrences
338 * of this node?
339 */
340 if (old_node) {
341 if (overwrite) {
342 old_node = xmlReplaceNode(old_node, child);
343 xmlFreeNode(old_node);
344 } else {
345 return old_node;
346 }
347 } else {
348 xmlAddChild(parent_node, child);
349 }
350
351 return NULL;
352 }
353
354 G_GNUC_INTERNAL void
355 gvir_config_object_set_child(GVirConfigObject *object, xmlNodePtr child)
356 {
357 gvir_config_object_set_child_internal(object, child, TRUE);
358 }
359
360 G_GNUC_INTERNAL void
361 gvir_config_object_foreach_child(GVirConfigObject *object,
362 const char *parent_name,
363 GVirConfigXmlNodeIterator iter_func,
364 gpointer opaque)
365 {
366 xmlNodePtr root_node;
367 xmlNodePtr node;
368
369 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
370
371 root_node = gvir_config_object_get_xml_node(object);
372 g_return_if_fail(root_node != NULL);
373
374 node = gvir_config_xml_get_element(root_node, parent_name, NULL);
375 if (node == NULL)
376 return;
377
378 gvir_config_xml_foreach_child(node, iter_func, opaque);
379 }
380
381 G_GNUC_INTERNAL GVirConfigObject *
382 gvir_config_object_add_child(GVirConfigObject *object,
383 const char *child_name)
384 {
306385 xmlNodePtr new_node;
307 xmlChar *encoded_name;
386 xmlNodePtr old_node;
387
388 g_return_val_if_fail(GVIR_CONFIG_IS_OBJECT(object), NULL);
389 g_return_val_if_fail(child_name != NULL, NULL);
390
391 new_node = xmlNewDocNode(NULL, NULL, (xmlChar *)child_name, NULL);
392 old_node = gvir_config_object_set_child_internal(object, new_node,
393 FALSE);
394 if (old_node != NULL) {
395 xmlFreeNode(new_node);
396 return GVIR_CONFIG_OBJECT(g_object_new(GVIR_CONFIG_TYPE_OBJECT,
397 "doc", object->priv->doc,
398 "node", old_node,
399 NULL));
400 }
401
402 return GVIR_CONFIG_OBJECT(g_object_new(GVIR_CONFIG_TYPE_OBJECT,
403 "doc", object->priv->doc,
404 "node", new_node,
405 NULL));
406 }
407
408 G_GNUC_INTERNAL void
409 gvir_config_object_add_child_with_attribute(GVirConfigObject *object,
410 const char *child_name,
411 const char *attr_name,
412 const char *attr_value)
413 {
414 GVirConfigObject *child;
415
416 child = gvir_config_object_add_child(object, child_name);
417 gvir_config_object_set_attribute(child, attr_name, attr_value, NULL);
418 g_object_unref(G_OBJECT(child));
419 }
420
421
422 void gvir_config_object_add_child_with_attribute_enum(GVirConfigObject *object,
423 const char *child_name,
424 const char *attr_name,
425 GType attr_type,
426 unsigned int attr_value)
427 {
428 GVirConfigObject *child;
429
430 child = gvir_config_object_add_child(object, child_name);
431 gvir_config_object_set_attribute_with_type(child, attr_name, attr_type, attr_value, NULL);
432 g_object_unref(G_OBJECT(child));
433 }
434
435
436 G_GNUC_INTERNAL GVirConfigObject *
437 gvir_config_object_replace_child(GVirConfigObject *object,
438 const char *child_name)
439 {
440 xmlNodePtr new_node;
441
442 g_return_val_if_fail(GVIR_CONFIG_IS_OBJECT(object), NULL);
443 g_return_val_if_fail(child_name != NULL, NULL);
444
445 new_node = xmlNewDocNode(NULL, NULL, (xmlChar *)child_name, NULL);
446 gvir_config_object_set_child_internal(object, new_node, TRUE);
447
448 return GVIR_CONFIG_OBJECT(g_object_new(GVIR_CONFIG_TYPE_OBJECT,
449 "doc", object->priv->doc,
450 "node", new_node,
451 NULL));
452 }
453
454 G_GNUC_INTERNAL void
455 gvir_config_object_replace_child_with_attribute(GVirConfigObject *object,
456 const char *child_name,
457 const char *attr_name,
458 const char *attr_value)
459 {
460 GVirConfigObject *child;
461
462 child = gvir_config_object_replace_child(object, child_name);
463 gvir_config_object_set_attribute(child, attr_name, attr_value, NULL);
464 g_object_unref(G_OBJECT(child));
465 }
466
467 G_GNUC_INTERNAL void
468 gvir_config_object_delete_child(GVirConfigObject *object,
469 const char *child_name)
470 {
471 xmlNodePtr parent_node;
472 xmlNodePtr old_node;
473
474 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
475 g_return_if_fail(child_name != NULL);
308476
309477 parent_node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(object));
310 encoded_name = xmlEncodeEntitiesReentrant(parent_node->doc,
478 g_return_if_fail(parent_node != NULL);
479
480 if (!(old_node = gvir_config_xml_get_element(parent_node, child_name, NULL)))
481 return;
482
483 /* FIXME: should we make sure there are no multiple occurrences
484 * of this node?
485 */
486 xmlUnlinkNode(old_node);
487 xmlFreeNode(old_node);
488 }
489
490
491 G_GNUC_INTERNAL void
492 gvir_config_object_set_node_content(GVirConfigObject *object,
493 const char *node_name,
494 const char *value)
495 {
496 xmlChar *encoded_data;
497 GVirConfigObject *node;
498
499 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
500 g_return_if_fail(node_name != NULL);
501 g_return_if_fail(value != NULL);
502
503 node = gvir_config_object_replace_child(object, node_name);
504 g_return_if_fail(node != NULL);
505 encoded_data = xmlEncodeEntitiesReentrant(node->priv->node->doc,
311506 (xmlChar *)value);
312 new_node = xmlNewDocNode(parent_node->doc, NULL,
313 (xmlChar *)node_name, encoded_name);
314 xmlFree(encoded_name);
315
316 old_node = gvir_config_xml_get_element(parent_node, node_name, NULL);
317 if (old_node) {
318 old_node = xmlReplaceNode(old_node, new_node);
319 xmlFreeNode(old_node);
320 } else {
321 xmlAddChild(parent_node, new_node);
322 }
507 xmlNodeSetContent(node->priv->node, encoded_data);
508 xmlFree(encoded_data);
509 g_object_unref(G_OBJECT(node));
510 }
511
512 G_GNUC_INTERNAL void
513 gvir_config_object_set_node_content_uint64(GVirConfigObject *object,
514 const char *node_name,
515 guint64 value)
516 {
517 char *str;
518
519 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
520 g_return_if_fail(node_name != NULL);
521
522 str = g_strdup_printf("%"G_GUINT64_FORMAT, value);
523 gvir_config_object_set_node_content(object, node_name, str);
524 g_free(str);
323525 }
324526
325527 /* FIXME: how to notify of errors/node not found? */
326 guint64 gvir_config_object_get_node_content_uint64(GVirConfigObject *object,
327 const char *node_name)
528 G_GNUC_INTERNAL guint64
529 gvir_config_object_get_node_content_uint64(GVirConfigObject *object,
530 const char *node_name)
328531 {
329532 xmlNodePtr node;
330533 xmlChar *str;
344547 return value;
345548 }
346549
347
348 void gvir_config_object_set_node_content_uint64(GVirConfigObject *object,
349 const char *node_name,
350 guint64 value)
351 {
352 char *str;
353 str = g_strdup_printf("%"G_GUINT64_FORMAT, value);
354 gvir_config_object_set_node_content(object, node_name, str);
355 g_free(str);
550 G_GNUC_INTERNAL gint
551 gvir_config_object_get_node_content_genum(GVirConfigObject *object,
552 const char *node_name,
553 GType enum_type,
554 gint default_value)
555 {
556 xmlNodePtr node;
557 xmlChar *str;
558 gint value;
559
560 node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(object));
561 if (node == NULL)
562 return default_value;
563
564 str = gvir_config_xml_get_child_element_content(node, node_name);
565 if (!str)
566 return default_value;
567
568 value = gvir_config_genum_get_value(enum_type, (char *)str, default_value);
569 xmlFree(str);
570
571 return value;
572 }
573
574 G_GNUC_INTERNAL gint
575 gvir_config_object_get_attribute_genum(GVirConfigObject *object,
576 const char *node_name,
577 const char *attr_name,
578 GType enum_type,
579 gint default_value)
580 {
581 xmlNodePtr node;
582 xmlChar *attr_val;
583 gint value;
584
585 g_return_val_if_fail(attr_name != NULL, default_value);
586
587 node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(object));
588 if (node == NULL)
589 return default_value;
590
591 if (node_name != NULL) {
592 node = gvir_config_xml_get_element(node, node_name, NULL);
593 if (node == NULL)
594 return default_value;
595 }
596
597 attr_val = gvir_config_xml_get_attribute_content(node, attr_name);
598 if (attr_val == NULL)
599 return default_value;
600
601 value = gvir_config_genum_get_value(enum_type, (char *)attr_val,
602 default_value);
603 xmlFree(attr_val);
604
605 return value;
356606 }
357607
358608 GVirConfigObject *gvir_config_object_new_from_xml(GType type,
361611 const gchar *xml,
362612 GError **error)
363613 {
614 GVirConfigObject *object;
615 GVirConfigXmlDoc *doc;
364616 xmlNodePtr node;
365617
366618 node = gvir_config_xml_parse(xml, root_name, error);
367619 if ((error != NULL) && (*error != NULL))
368620 return NULL;
621 doc = gvir_config_xml_doc_new(node->doc);
622 object = GVIR_CONFIG_OBJECT(g_object_new(type,
623 "doc", doc,
624 "node", node,
625 "schema", schema,
626 NULL));
627 g_object_unref(G_OBJECT(doc));
628
629 return object;
630 }
631
632 G_GNUC_INTERNAL GVirConfigObject *
633 gvir_config_object_new_from_tree(GType type, GVirConfigXmlDoc *doc,
634 const char *schema, xmlNodePtr tree)
635 {
636 g_return_val_if_fail(g_type_is_a(type, GVIR_CONFIG_TYPE_OBJECT), NULL);
637 g_return_val_if_fail(GVIR_CONFIG_IS_XML_DOC(doc), NULL);
638 g_return_val_if_fail(tree != NULL, NULL);
639
369640 return GVIR_CONFIG_OBJECT(g_object_new(type,
370 "node", node,
641 "doc", doc,
642 "node", tree,
371643 "schema", schema,
372644 NULL));
373645 }
376648 const char *root_name,
377649 const char *schema)
378650 {
651 GVirConfigObject *object;
652 GVirConfigXmlDoc *doc;
653 xmlDocPtr xml_doc;
654 xmlNodePtr node;
655
656 doc = gvir_config_xml_doc_new(NULL);
657 g_object_get(G_OBJECT(doc), "doc", &xml_doc, NULL);
658 g_assert(xml_doc != NULL);
659 node = xmlNewDocNode(xml_doc, NULL, (xmlChar *)root_name, NULL);
660 xmlDocSetRootElement(xml_doc, node);
661 object = GVIR_CONFIG_OBJECT(g_object_new(type,
662 "doc", doc,
663 "node", node,
664 "schema", schema,
665 NULL));
666
667 g_object_unref(G_OBJECT(doc));
668
669 return object;
670 }
671
672 G_GNUC_INTERNAL void
673 gvir_config_object_set_attribute(GVirConfigObject *object, ...)
674 {
379675 xmlDocPtr doc;
380 xmlNodePtr node;
381
382 doc = xmlNewDoc((xmlChar *)"1.0");
383 node = xmlNewDocNode(doc, NULL, (xmlChar *)root_name, NULL);
384 xmlDocSetRootElement(doc, node);
385 return GVIR_CONFIG_OBJECT(g_object_new(type,
386 "node", node,
387 "schema", schema,
388 NULL));
389 }
676 va_list args;
677
678 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
679
680 g_object_get(G_OBJECT(object->priv->doc), "doc", &doc, NULL);
681 va_start(args, object);
682 while (TRUE) {
683 const char *name;
684 const char *value;
685 xmlChar *encoded_value;
686
687 name = va_arg(args, const char *);
688 if (name == NULL) {
689 break;
690 }
691 gvir_config_object_remove_attribute(object, name);
692 value = va_arg(args, const char *);
693 if (value == NULL) {
694 g_warn_if_reached();
695 break;
696 }
697 encoded_value = xmlEncodeEntitiesReentrant(doc, (xmlChar*)value);
698 xmlNewProp(object->priv->node, (xmlChar *)name, encoded_value);
699 xmlFree(encoded_value);
700 }
701 va_end(args);
702 }
703
704 G_GNUC_INTERNAL void
705 gvir_config_object_set_attribute_with_type(GVirConfigObject *object, ...)
706 {
707 va_list args;
708
709 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
710
711 va_start(args, object);
712 while (TRUE) {
713 const char *name;
714 GType attr_type;
715 char *str;
716
717
718 name = va_arg(args, const char *);
719 if (name == NULL) {
720 break;
721 }
722 gvir_config_object_remove_attribute(object, name);
723
724 attr_type = va_arg(args, GType);
725 if (G_TYPE_IS_ENUM(attr_type)) {
726 int val;
727 const char *enum_str;
728 val = va_arg(args, int);
729 enum_str = gvir_config_genum_get_nick(attr_type, val);
730 if (enum_str != NULL) {
731 str = g_strdup(enum_str);
732 } else {
733 str = NULL;
734 }
735 } else switch (attr_type) {
736 case G_TYPE_UINT64: {
737 guint64 val;
738 val = va_arg(args, guint64);
739 str = g_strdup_printf("%"G_GUINT64_FORMAT, val);
740 break;
741 }
742 case G_TYPE_UINT: {
743 guint val;
744 val = va_arg(args, guint);
745 str = g_strdup_printf("%u", val);
746 break;
747 }
748 case G_TYPE_INT: {
749 gint val;
750 val = va_arg(args, gint);
751 str = g_strdup_printf("%d", val);
752 break;
753 }
754 case G_TYPE_STRING: {
755 xmlDocPtr doc;
756 xmlChar *enc_str;
757
758 str = va_arg(args, char *);
759 g_object_get(G_OBJECT(object->priv->doc), "doc", &doc, NULL);
760 enc_str = xmlEncodeEntitiesReentrant(doc, (xmlChar*)str);
761 str = g_strdup((char *)enc_str);
762 xmlFree(enc_str);
763 break;
764 }
765 case G_TYPE_BOOLEAN: {
766 gboolean val;
767 val = va_arg(args, gboolean);
768 str = g_strdup_printf("%s", val?"yes":"no");
769 break;
770 }
771 default:
772 g_warning("Unhandled type: %s", g_type_name(attr_type));
773 g_assert_not_reached();
774 }
775
776 if (str != NULL) {
777 xmlNewProp(object->priv->node, (xmlChar *)name, (xmlChar *)str);
778 g_free(str);
779 }
780 }
781 va_end(args);
782 }
783
784 G_GNUC_INTERNAL void
785 gvir_config_object_attach(GVirConfigObject *parent, GVirConfigObject *child)
786 {
787 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(parent));
788 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(child));
789
790 xmlUnlinkNode(child->priv->node);
791 xmlAddChild(parent->priv->node, child->priv->node);
792 if (child->priv->doc != NULL) {
793 g_object_unref(G_OBJECT(child->priv->doc));
794 child->priv->doc = NULL;
795 }
796 if (parent->priv->doc != NULL) {
797 child->priv->doc = g_object_ref(G_OBJECT(parent->priv->doc));
798 }
799 }
800
801 G_GNUC_INTERNAL void
802 gvir_config_object_remove_attribute(GVirConfigObject *object,
803 const char *attr_name)
804 {
805 int status;
806
807 do {
808 status = xmlUnsetProp(object->priv->node, (xmlChar *)attr_name);
809 } while (status == 0);
810 }
00 /*
1 * libvirt-gconfig-config-object.c: base object for XML configuration
1 * libvirt-gconfig-object.h: base object for XML configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_OBJECT (gvir_config_object_get_type ())
32 #define GVIR_CONFIG_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_OBJECT, GVirConfigObject))
33 #define GVIR_CONFIG_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_OBJECT, GVirConfigObjectClass))
34 #define GVIR_IS_CONFIG_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_OBJECT))
35 #define GVIR_IS_CONFIG_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_OBJECT))
36 #define GVIR_CONFIG_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_OBJECT, GVirConfigObjectClass))
31 #define GVIR_CONFIG_TYPE_OBJECT (gvir_config_object_get_type ())
32 #define GVIR_CONFIG_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_OBJECT, GVirConfigObject))
33 #define GVIR_CONFIG_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_OBJECT, GVirConfigObjectClass))
34 #define GVIR_CONFIG_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_OBJECT))
35 #define GVIR_CONFIG_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_OBJECT))
36 #define GVIR_CONFIG_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_OBJECT, GVirConfigObjectClass))
3737
3838 typedef struct _GVirConfigObject GVirConfigObject;
3939 typedef struct _GVirConfigObjectPrivate GVirConfigObjectPrivate;
7272 gchar *gvir_config_object_to_xml(GVirConfigObject *config);
7373
7474 const gchar *gvir_config_object_get_schema(GVirConfigObject *config);
75 xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config);
76 char *gvir_config_object_get_node_content(GVirConfigObject *object,
77 const char *node_name);
78 guint64 gvir_config_object_get_node_content_uint64(GVirConfigObject *object,
79 const char *node_name);
80 void gvir_config_object_set_node_content(GVirConfigObject *object,
81 const char *node_name,
82 const char *value);
83 void gvir_config_object_set_node_content_uint64(GVirConfigObject *object,
84 const char *node_name,
85 guint64 value);
86
87 /* FIXME: move to a libvirt-gconfig-helpers.h file? */
88 xmlNodePtr gvir_config_object_parse(const char *xml, const char *root_node, GError **err);
8975
9076 G_END_DECLS
9177
0 /*
1 * libvirt-gconfig-private.h: libvirt domain device configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #ifndef __LIBVIRT_GCONFIG_PRIVATE_H__
23 #define __LIBVIRT_GCONFIG_PRIVATE_H__
24
25 #include <libvirt-gconfig/libvirt-gconfig-domain-device-private.h>
26 #include <libvirt-gconfig/libvirt-gconfig-helpers-private.h>
27 #include <libvirt-gconfig/libvirt-gconfig-object-private.h>
28 #include <libvirt-gconfig/libvirt-gconfig-xml-doc.h>
29
30 #endif /* __LIBVIRT_GCONFIG_PRIVATE_H__ */
00 /*
1 * libvirt-gobject-config_secret.c: libvirt glib integration
1 * libvirt-gconfig-secret.c: libvirt secret configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
26
2725 #include "libvirt-gconfig/libvirt-gconfig.h"
2826
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
32
3327 #define GVIR_CONFIG_SECRET_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_SECRET, GVirConfigSecretPrivate))
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_SECRET, GVirConfigSecretPrivate))
3529
3630 struct _GVirConfigSecretPrivate
3731 {
3832 gboolean unused;
3933 };
4034
41 G_DEFINE_TYPE(GVirConfigSecret, gvir_config_secret, GVIR_TYPE_CONFIG_OBJECT);
35 G_DEFINE_TYPE(GVirConfigSecret, gvir_config_secret, GVIR_CONFIG_TYPE_OBJECT);
4236
4337
4438 static void gvir_config_secret_class_init(GVirConfigSecretClass *klass)
4539 {
46
4740 g_type_class_add_private(klass, sizeof(GVirConfigSecretPrivate));
4841 }
4942
5043
5144 static void gvir_config_secret_init(GVirConfigSecret *conn)
5245 {
53 GVirConfigSecretPrivate *priv;
46 g_debug("Init GVirConfigSecret=%p", conn);
5447
55 DEBUG("Init GVirConfigSecret=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_SECRET_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
48 conn->priv = GVIR_CONFIG_SECRET_GET_PRIVATE(conn);
6049 }
6150
6251
6453 {
6554 GVirConfigObject *object;
6655
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_SECRET,
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_SECRET,
6857 "secret",
6958 DATADIR "/libvirt/schemas/secret.rng");
7059 return GVIR_CONFIG_SECRET(object);
7564 {
7665 GVirConfigObject *object;
7766
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_SECRET,
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_SECRET,
7968 "secret",
8069 DATADIR "/libvirt/schemas/secret.rng",
8170 xml, error);
00 /*
1 * libvirt-gobject-secret-config.c: libvirt gobject integration
1 * libvirt-gconfig-secret.h: libvirt secret configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828
2929 G_BEGIN_DECLS
3030
31 #define GVIR_TYPE_CONFIG_SECRET (gvir_config_secret_get_type ())
32 #define GVIR_CONFIG_SECRET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_SECRET, GVirConfigSecret))
33 #define GVIR_CONFIG_SECRET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_SECRET, GVirConfigSecretClass))
34 #define GVIR_IS_CONFIG_SECRET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_SECRET))
35 #define GVIR_IS_CONFIG_SECRET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_SECRET))
36 #define GVIR_CONFIG_SECRET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_SECRET, GVirConfigSecretClass))
31 #define GVIR_CONFIG_TYPE_SECRET (gvir_config_secret_get_type ())
32 #define GVIR_CONFIG_SECRET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_SECRET, GVirConfigSecret))
33 #define GVIR_CONFIG_SECRET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_SECRET, GVirConfigSecretClass))
34 #define GVIR_CONFIG_IS_SECRET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_SECRET))
35 #define GVIR_CONFIG_IS_SECRET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_SECRET))
36 #define GVIR_CONFIG_SECRET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_SECRET, GVirConfigSecretClass))
3737
3838 typedef struct _GVirConfigSecret GVirConfigSecret;
3939 typedef struct _GVirConfigSecretPrivate GVirConfigSecretPrivate;
0 /*
1 * libvirt-gconfig-storage-permissions.c: libvirt storage permissions configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27 #define GVIR_CONFIG_STORAGE_PERMISSIONS_GET_PRIVATE(obj) \
28 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS, GVirConfigStoragePermissionsPrivate))
29
30 struct _GVirConfigStoragePermissionsPrivate
31 {
32 gboolean unused;
33 };
34
35 G_DEFINE_TYPE(GVirConfigStoragePermissions, gvir_config_storage_permissions, GVIR_CONFIG_TYPE_OBJECT);
36
37
38 static void gvir_config_storage_permissions_class_init(GVirConfigStoragePermissionsClass *klass)
39 {
40 g_type_class_add_private(klass, sizeof(GVirConfigStoragePermissionsPrivate));
41 }
42
43
44 static void gvir_config_storage_permissions_init(GVirConfigStoragePermissions *perms)
45 {
46 g_debug("Init GVirConfigStoragePermissions=%p", perms);
47
48 perms->priv = GVIR_CONFIG_STORAGE_PERMISSIONS_GET_PRIVATE(perms);
49 }
50
51
52 GVirConfigStoragePermissions *gvir_config_storage_permissions_new(void)
53 {
54 GVirConfigObject *object;
55
56 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS,
57 "permissions", NULL);
58 return GVIR_CONFIG_STORAGE_PERMISSIONS(object);
59 }
60
61 GVirConfigStoragePermissions *gvir_config_storage_permissions_new_from_xml(const gchar *xml,
62 GError **error)
63 {
64 GVirConfigObject *object;
65
66 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS,
67 "permissions", NULL,
68 xml, error);
69 return GVIR_CONFIG_STORAGE_PERMISSIONS(object);
70 }
71
72 void gvir_config_storage_permissions_set_group(GVirConfigStoragePermissions *perms,
73 guint group)
74 {
75 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_PERMISSIONS(perms));
76
77 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(perms),
78 "group", group);
79 }
80
81 void gvir_config_storage_permissions_set_label(GVirConfigStoragePermissions *perms,
82 const char *label)
83 {
84 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_PERMISSIONS(perms));
85
86 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(perms),
87 "label", label);
88 }
89
90 void gvir_config_storage_permissions_set_mode(GVirConfigStoragePermissions *perms,
91 guint mode)
92 {
93 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_PERMISSIONS(perms));
94
95 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(perms),
96 "mode", mode);
97 }
98
99 void gvir_config_storage_permissions_set_owner(GVirConfigStoragePermissions *perms,
100 guint owner)
101 {
102 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_PERMISSIONS(perms));
103
104 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(perms),
105 "owner", owner);
106 }
0 /*
1 * libvirt-gconfig-storage-permissions.h: libvirt storage permissions configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_STORAGE_PERMISSIONS_H__
27 #define __LIBVIRT_GCONFIG_STORAGE_PERMISSIONS_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS (gvir_config_storage_permissions_get_type ())
32 #define GVIR_CONFIG_STORAGE_PERMISSIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS, GVirConfigStoragePermissions))
33 #define GVIR_CONFIG_STORAGE_PERMISSIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS, GVirConfigStoragePermissionsClass))
34 #define GVIR_CONFIG_IS_STORAGE_PERMISSIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS))
35 #define GVIR_CONFIG_IS_STORAGE_PERMISSIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS))
36 #define GVIR_CONFIG_STORAGE_PERMISSIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS, GVirConfigStoragePermissionsClass))
37
38 typedef struct _GVirConfigStoragePermissions GVirConfigStoragePermissions;
39 typedef struct _GVirConfigStoragePermissionsPrivate GVirConfigStoragePermissionsPrivate;
40 typedef struct _GVirConfigStoragePermissionsClass GVirConfigStoragePermissionsClass;
41
42 struct _GVirConfigStoragePermissions
43 {
44 GVirConfigObject parent;
45
46 GVirConfigStoragePermissionsPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigStoragePermissionsClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_storage_permissions_get_type(void);
60
61 GVirConfigStoragePermissions *gvir_config_storage_permissions_new(void);
62 GVirConfigStoragePermissions *gvir_config_storage_permissions_new_from_xml(const gchar *xml,
63 GError **error);
64
65 void gvir_config_storage_permissions_set_group(GVirConfigStoragePermissions *perms,
66 guint group);
67 void gvir_config_storage_permissions_set_label(GVirConfigStoragePermissions *perms,
68 const char *label);
69 void gvir_config_storage_permissions_set_mode(GVirConfigStoragePermissions *perms,
70 guint mode);
71 void gvir_config_storage_permissions_set_owner(GVirConfigStoragePermissions *perms,
72 guint owner);
73
74 G_END_DECLS
75
76 #endif /* __LIBVIRT_GCONFIG_STORAGE_PERMISSIONS_H__ */
0 /*
1 * libvirt-gconfig-storage-pool-source.c: libvirt storage pool source configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27
28 #define GVIR_CONFIG_STORAGE_POOL_SOURCE_GET_PRIVATE(obj) \
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE, GVirConfigStoragePoolSourcePrivate))
30
31 struct _GVirConfigStoragePoolSourcePrivate
32 {
33 gboolean unused;
34 };
35
36 G_DEFINE_TYPE(GVirConfigStoragePoolSource, gvir_config_storage_pool_source, GVIR_CONFIG_TYPE_OBJECT);
37
38
39 static void gvir_config_storage_pool_source_class_init(GVirConfigStoragePoolSourceClass *klass)
40 {
41 g_type_class_add_private(klass, sizeof(GVirConfigStoragePoolSourcePrivate));
42 }
43
44
45 static void gvir_config_storage_pool_source_init(GVirConfigStoragePoolSource *source)
46 {
47 g_debug("Init GVirConfigStoragePoolSource=%p", source);
48
49 source->priv = GVIR_CONFIG_STORAGE_POOL_SOURCE_GET_PRIVATE(source);
50 }
51
52
53 GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new(void)
54 {
55 GVirConfigObject *object;
56
57 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE,
58 "source", NULL);
59 return GVIR_CONFIG_STORAGE_POOL_SOURCE(object);
60 }
61
62 GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new_from_xml(const gchar *xml,
63 GError **error)
64 {
65 GVirConfigObject *object;
66
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE,
68 "source", NULL,
69 xml, error);
70 return GVIR_CONFIG_STORAGE_POOL_SOURCE(object);
71 }
72
73 void gvir_config_storage_pool_source_set_adapter(GVirConfigStoragePoolSource *source,
74 const char *adapter)
75 {
76 GVirConfigObject *node;
77
78 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
79
80 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(source), "adapter");
81 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
82 gvir_config_object_set_attribute(node, "name", adapter, NULL);
83 g_object_unref(G_OBJECT(node));
84 }
85
86 void gvir_config_storage_pool_source_set_device_path(GVirConfigStoragePoolSource *source,
87 const char *device_path)
88 {
89 GVirConfigObject *node;
90
91 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
92
93 node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(source), "device");
94 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
95 gvir_config_object_set_attribute(node, "path", device_path, NULL);
96 g_object_unref(G_OBJECT(node));
97 }
98
99 void gvir_config_storage_pool_source_set_directory(GVirConfigStoragePoolSource *source,
100 const char *directory)
101 {
102 GVirConfigObject *node;
103
104 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
105
106 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(source), "directory");
107 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
108 gvir_config_object_set_attribute(node, "path", directory, NULL);
109 g_object_unref(G_OBJECT(node));
110 }
111
112 void gvir_config_storage_pool_source_set_format(GVirConfigStoragePoolSource *source,
113 const char *format)
114 {
115 GVirConfigObject *node;
116
117 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
118
119 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(source), "format");
120 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
121 gvir_config_object_set_attribute(node, "type", format, NULL);
122 g_object_unref(G_OBJECT(node));
123 }
124
125 void gvir_config_storage_pool_source_set_host(GVirConfigStoragePoolSource *source,
126 const char *host)
127 {
128 GVirConfigObject *node;
129
130 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
131
132 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(source), "host");
133 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
134 gvir_config_object_set_attribute(node, "name", host, NULL);
135 g_object_unref(G_OBJECT(node));
136 }
137
138 void gvir_config_storage_pool_source_set_name(GVirConfigStoragePoolSource *source,
139 const char *name)
140 {
141 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
142
143 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(source),
144 "name", name);
145 }
146
147 void gvir_config_storage_pool_source_set_product(GVirConfigStoragePoolSource *source,
148 const char *product)
149 {
150 GVirConfigObject *node;
151
152 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
153
154 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(source), "product");
155 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
156 gvir_config_object_set_attribute(node, "name", product, NULL);
157 g_object_unref(G_OBJECT(node));
158 }
159
160 void gvir_config_storage_pool_source_set_vendor(GVirConfigStoragePoolSource *source,
161 const char *vendor)
162 {
163 GVirConfigObject *node;
164
165 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
166
167 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(source), "vendor");
168 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
169 gvir_config_object_set_attribute(node, "name", vendor, NULL);
170 g_object_unref(G_OBJECT(node));
171 }
0 /*
1 * libvirt-gconfig-storage-pool-target.c: libvirt storage pool target configuration
2 *
3 * Copyright (C) 2010-2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_STORAGE_POOL_SOURCE_H__
27 #define __LIBVIRT_GCONFIG_STORAGE_POOL_SOURCE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE (gvir_config_storage_pool_source_get_type ())
32 #define GVIR_CONFIG_STORAGE_POOL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE, GVirConfigStoragePoolSource))
33 #define GVIR_CONFIG_STORAGE_POOL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE, GVirConfigStoragePoolSourceClass))
34 #define GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE))
35 #define GVIR_CONFIG_IS_STORAGE_POOL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE))
36 #define GVIR_CONFIG_STORAGE_POOL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_SOURCE, GVirConfigStoragePoolSourceClass))
37
38 typedef struct _GVirConfigStoragePoolSource GVirConfigStoragePoolSource;
39 typedef struct _GVirConfigStoragePoolSourcePrivate GVirConfigStoragePoolSourcePrivate;
40 typedef struct _GVirConfigStoragePoolSourceClass GVirConfigStoragePoolSourceClass;
41
42 struct _GVirConfigStoragePoolSource
43 {
44 GVirConfigObject parent;
45
46 GVirConfigStoragePoolSourcePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigStoragePoolSourceClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_storage_pool_source_get_type(void);
60
61 GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new(void);
62 GVirConfigStoragePoolSource *gvir_config_storage_pool_source_new_from_xml(const gchar *xml,
63 GError **error);
64
65 void gvir_config_storage_pool_source_set_adapter(GVirConfigStoragePoolSource *source,
66 const char *adapter);
67 void gvir_config_storage_pool_source_set_device_path(GVirConfigStoragePoolSource *source,
68 const char *device_path);
69 void gvir_config_storage_pool_source_set_directory(GVirConfigStoragePoolSource *source,
70 const char *directory);
71 void gvir_config_storage_pool_source_set_format(GVirConfigStoragePoolSource *source,
72 const char *format);
73 void gvir_config_storage_pool_source_set_host(GVirConfigStoragePoolSource *source,
74 const char *host);
75 void gvir_config_storage_pool_source_set_name(GVirConfigStoragePoolSource *source,
76 const char *name);
77 void gvir_config_storage_pool_source_set_product(GVirConfigStoragePoolSource *source,
78 const char *product);
79 void gvir_config_storage_pool_source_set_vendor(GVirConfigStoragePoolSource *source,
80 const char *vendor);
81
82 G_END_DECLS
83
84 #endif /* __LIBVIRT_GCONFIG_STORAGE_POOL_SOURCE_H__ */
0 /*
1 * libvirt-gconfig-storage-pool-target.c: libvirt storage pool target configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27
28 #define GVIR_CONFIG_STORAGE_POOL_TARGET_GET_PRIVATE(obj) \
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET, GVirConfigStoragePoolTargetPrivate))
30
31 struct _GVirConfigStoragePoolTargetPrivate
32 {
33 gboolean unused;
34 };
35
36 G_DEFINE_TYPE(GVirConfigStoragePoolTarget, gvir_config_storage_pool_target, GVIR_CONFIG_TYPE_OBJECT);
37
38
39 static void gvir_config_storage_pool_target_class_init(GVirConfigStoragePoolTargetClass *klass)
40 {
41 g_type_class_add_private(klass, sizeof(GVirConfigStoragePoolTargetPrivate));
42 }
43
44
45 static void gvir_config_storage_pool_target_init(GVirConfigStoragePoolTarget *target)
46 {
47 g_debug("Init GVirConfigStoragePoolTarget=%p", target);
48
49 target->priv = GVIR_CONFIG_STORAGE_POOL_TARGET_GET_PRIVATE(target);
50 }
51
52
53 GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new(void)
54 {
55 GVirConfigObject *object;
56
57 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET,
58 "target", NULL);
59 return GVIR_CONFIG_STORAGE_POOL_TARGET(object);
60 }
61
62 GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new_from_xml(const gchar *xml,
63 GError **error)
64 {
65 GVirConfigObject *object;
66
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET,
68 "target", NULL,
69 xml, error);
70 return GVIR_CONFIG_STORAGE_POOL_TARGET(object);
71 }
72
73 void gvir_config_storage_pool_target_set_path(GVirConfigStoragePoolTarget *target,
74 const char *path)
75 {
76 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_TARGET(target));
77
78 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(target),
79 "path", path);
80 }
81
82 void gvir_config_storage_pool_target_set_permissions(GVirConfigStoragePoolTarget *target,
83 GVirConfigStoragePermissions *perms)
84 {
85 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_TARGET(target));
86 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_PERMISSIONS(perms));
87
88 gvir_config_object_attach(GVIR_CONFIG_OBJECT(target),
89 GVIR_CONFIG_OBJECT(perms));
90 }
0 /*
1 * libvirt-gconfig-storage-pool-target.h: libvirt storage pool target configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_STORAGE_POOL_TARGET_H__
27 #define __LIBVIRT_GCONFIG_STORAGE_POOL_TARGET_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET (gvir_config_storage_pool_target_get_type ())
32 #define GVIR_CONFIG_STORAGE_POOL_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET, GVirConfigStoragePoolTarget))
33 #define GVIR_CONFIG_STORAGE_POOL_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET, GVirConfigStoragePoolTargetClass))
34 #define GVIR_CONFIG_IS_STORAGE_POOL_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET))
35 #define GVIR_CONFIG_IS_STORAGE_POOL_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET))
36 #define GVIR_CONFIG_STORAGE_POOL_TARGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL_TARGET, GVirConfigStoragePoolTargetClass))
37
38 typedef struct _GVirConfigStoragePoolTarget GVirConfigStoragePoolTarget;
39 typedef struct _GVirConfigStoragePoolTargetPrivate GVirConfigStoragePoolTargetPrivate;
40 typedef struct _GVirConfigStoragePoolTargetClass GVirConfigStoragePoolTargetClass;
41
42 struct _GVirConfigStoragePoolTarget
43 {
44 GVirConfigObject parent;
45
46 GVirConfigStoragePoolTargetPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigStoragePoolTargetClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_storage_pool_target_get_type(void);
60
61 GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new(void);
62 GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new_from_xml(const gchar *xml,
63 GError **error);
64
65 void gvir_config_storage_pool_target_set_path(GVirConfigStoragePoolTarget *target,
66 const char *path);
67 void gvir_config_storage_pool_target_set_permissions(GVirConfigStoragePoolTarget *target,
68 GVirConfigStoragePermissions *perms);
69
70 G_END_DECLS
71
72 #endif /* __LIBVIRT_GCONFIG_STORAGE_POOL_TARGET_H__ */
00 /*
1 * libvirt-gconfig-storage-pool.c: libvirt glib integration
1 * libvirt-gconfig-storage-pool.c: libvirt storage pool configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
1717 * License along with this library; if not, write to the Free Software
1818 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1919 *
20 * Author: Daniel P. Berrange <berrange@redhat.com>
20 * Authors: Daniel P. Berrange <berrange@redhat.com>
21 * Christophe Fergeau <cfergeau@redhat.com>
2122 */
2223
2324 #include <config.h>
2425
25 #include <string.h>
26
2726 #include "libvirt-gconfig/libvirt-gconfig.h"
28
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
27 #include "libvirt-gconfig/libvirt-gconfig-private.h"
3228
3329 #define GVIR_CONFIG_STORAGE_POOL_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_STORAGE_POOL, GVirConfigStoragePoolPrivate))
30 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_POOL, GVirConfigStoragePoolPrivate))
3531
3632 struct _GVirConfigStoragePoolPrivate
3733 {
3834 gboolean unused;
3935 };
4036
41 G_DEFINE_TYPE(GVirConfigStoragePool, gvir_config_storage_pool, GVIR_TYPE_CONFIG_OBJECT);
37 G_DEFINE_TYPE(GVirConfigStoragePool, gvir_config_storage_pool, GVIR_CONFIG_TYPE_OBJECT);
4238
4339
4440 static void gvir_config_storage_pool_class_init(GVirConfigStoragePoolClass *klass)
4541 {
46
4742 g_type_class_add_private(klass, sizeof(GVirConfigStoragePoolPrivate));
4843 }
4944
5045
5146 static void gvir_config_storage_pool_init(GVirConfigStoragePool *conn)
5247 {
53 GVirConfigStoragePoolPrivate *priv;
48 g_debug("Init GVirConfigStoragePool=%p", conn);
5449
55 DEBUG("Init GVirConfigStoragePool=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_STORAGE_POOL_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
50 conn->priv = GVIR_CONFIG_STORAGE_POOL_GET_PRIVATE(conn);
6051 }
6152
6253
6455 {
6556 GVirConfigObject *object;
6657
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_STORAGE_POOL,
58 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_POOL,
6859 "pool",
6960 DATADIR "/libvirt/schemas/storagepool.rng");
7061 return GVIR_CONFIG_STORAGE_POOL(object);
7566 {
7667 GVirConfigObject *object;
7768
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_STORAGE_POOL,
69 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_POOL,
7970 "pool",
8071 DATADIR "/libvirt/schemas/storagepool.rng",
8172 xml, error);
8273 return GVIR_CONFIG_STORAGE_POOL(object);
8374 }
75
76 void gvir_config_storage_pool_set_pool_type(GVirConfigStoragePool *pool,
77 GVirConfigStoragePoolType type)
78 {
79 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
80
81 gvir_config_object_set_attribute_with_type(GVIR_CONFIG_OBJECT(pool),
82 "type",
83 GVIR_CONFIG_TYPE_STORAGE_POOL_TYPE,
84 type,
85 NULL);
86 }
87
88 void gvir_config_storage_pool_set_name(GVirConfigStoragePool *pool,
89 const char *name)
90 {
91 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
92
93 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(pool),
94 "name", name);
95 }
96
97 void gvir_config_storage_pool_set_uuid(GVirConfigStoragePool *pool,
98 const char *uuid)
99 {
100 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
101
102 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(pool),
103 "uuid", uuid);
104 }
105
106 void gvir_config_storage_pool_set_capacity(GVirConfigStoragePool *pool,
107 guint64 capacity)
108 {
109 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
110
111 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(pool),
112 "capacity", capacity);
113 }
114
115 void gvir_config_storage_pool_set_allocation(GVirConfigStoragePool *pool,
116 guint64 allocation)
117 {
118 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
119
120 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(pool),
121 "allocation", allocation);
122 }
123
124 void gvir_config_storage_pool_set_available(GVirConfigStoragePool *pool,
125 guint64 available)
126 {
127 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
128
129 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(pool),
130 "available", available);
131 }
132
133 void gvir_config_storage_pool_set_source(GVirConfigStoragePool *pool,
134 GVirConfigStoragePoolSource *source)
135 {
136 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
137 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_SOURCE(source));
138
139 gvir_config_object_attach(GVIR_CONFIG_OBJECT(pool),
140 GVIR_CONFIG_OBJECT(source));
141 }
142
143 void gvir_config_storage_pool_set_target(GVirConfigStoragePool *pool,
144 GVirConfigStoragePoolTarget *target)
145 {
146 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL(pool));
147 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_TARGET(target));
148
149 gvir_config_object_attach(GVIR_CONFIG_OBJECT(pool),
150 GVIR_CONFIG_OBJECT(target));
151 }
00 /*
1 * libvirt-gobject-storage-pool-config.c: libvirt gobject integration
1 * libvirt-gconfig-storage-pool.h: libvirt storage pool configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2626 #ifndef __LIBVIRT_GCONFIG_STORAGE_POOL_H__
2727 #define __LIBVIRT_GCONFIG_STORAGE_POOL_H__
2828
29 #include <libvirt-gconfig/libvirt-gconfig-storage-pool-source.h>
30 #include <libvirt-gconfig/libvirt-gconfig-storage-pool-target.h>
31
2932 G_BEGIN_DECLS
3033
31 #define GVIR_TYPE_CONFIG_STORAGE_POOL (gvir_config_storage_pool_get_type ())
32 #define GVIR_CONFIG_STORAGE_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_STORAGE_POOL, GVirConfigStoragePool))
33 #define GVIR_CONFIG_STORAGE_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_STORAGE_POOL, GVirConfigStoragePoolClass))
34 #define GVIR_IS_CONFIG_STORAGE_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_STORAGE_POOL))
35 #define GVIR_IS_CONFIG_STORAGE_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_STORAGE_POOL))
36 #define GVIR_CONFIG_STORAGE_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_STORAGE_POOL, GVirConfigStoragePoolClass))
34 #define GVIR_CONFIG_TYPE_STORAGE_POOL (gvir_config_storage_pool_get_type ())
35 #define GVIR_CONFIG_STORAGE_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL, GVirConfigStoragePool))
36 #define GVIR_CONFIG_STORAGE_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_POOL, GVirConfigStoragePoolClass))
37 #define GVIR_CONFIG_IS_STORAGE_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL))
38 #define GVIR_CONFIG_IS_STORAGE_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_POOL))
39 #define GVIR_CONFIG_STORAGE_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_POOL, GVirConfigStoragePoolClass))
3740
3841 typedef struct _GVirConfigStoragePool GVirConfigStoragePool;
3942 typedef struct _GVirConfigStoragePoolPrivate GVirConfigStoragePoolPrivate;
5558 gpointer padding[20];
5659 };
5760
61 typedef enum {
62 GVIR_CONFIG_STORAGE_POOL_TYPE_DIR,
63 GVIR_CONFIG_STORAGE_POOL_TYPE_FS,
64 GVIR_CONFIG_STORAGE_POOL_TYPE_NETFS,
65 GVIR_CONFIG_STORAGE_POOL_TYPE_LOGICAL,
66 GVIR_CONFIG_STORAGE_POOL_TYPE_DISK,
67 GVIR_CONFIG_STORAGE_POOL_TYPE_ISCSI,
68 GVIR_CONFIG_STORAGE_POOL_TYPE_SCSI,
69 GVIR_CONFIG_STORAGE_POOL_TYPE_MPATH
70 } GVirConfigStoragePoolType;
5871
5972 GType gvir_config_storage_pool_get_type(void);
6073
6275 GVirConfigStoragePool *gvir_config_storage_pool_new_from_xml(const gchar *xml,
6376 GError **error);
6477
78 void gvir_config_storage_pool_set_allocation(GVirConfigStoragePool *pool,
79 guint64 allocation);
80 void gvir_config_storage_pool_set_available(GVirConfigStoragePool *pool,
81 guint64 available);
82 void gvir_config_storage_pool_set_capacity(GVirConfigStoragePool *pool,
83 guint64 capacity);
84 void gvir_config_storage_pool_set_name(GVirConfigStoragePool *pool,
85 const char *name);
86 void gvir_config_storage_pool_set_pool_type(GVirConfigStoragePool *pool,
87 GVirConfigStoragePoolType type);
88 void gvir_config_storage_pool_set_source(GVirConfigStoragePool *pool,
89 GVirConfigStoragePoolSource *source);
90 void gvir_config_storage_pool_set_target(GVirConfigStoragePool *pool,
91 GVirConfigStoragePoolTarget *target);
92 void gvir_config_storage_pool_set_uuid(GVirConfigStoragePool *pool,
93 const char *uuid);
94
6595 G_END_DECLS
6696
6797 #endif /* __LIBVIRT_GCONFIG_STORAGE_POOL_H__ */
0 /*
1 * libvirt-gconfig-storage-vol-backing-store.c: libvirt storage vol backing store configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27
28 #define GVIR_CONFIG_STORAGE_VOL_BACKING_STORE_GET_PRIVATE(obj) \
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE, GVirConfigStorageVolBackingStorePrivate))
30
31 struct _GVirConfigStorageVolBackingStorePrivate
32 {
33 gboolean unused;
34 };
35
36 G_DEFINE_TYPE(GVirConfigStorageVolBackingStore, gvir_config_storage_vol_backing_store, GVIR_CONFIG_TYPE_OBJECT);
37
38
39 static void gvir_config_storage_vol_backing_store_class_init(GVirConfigStorageVolBackingStoreClass *klass)
40 {
41 g_type_class_add_private(klass, sizeof(GVirConfigStorageVolBackingStorePrivate));
42 }
43
44
45 static void gvir_config_storage_vol_backing_store_init(GVirConfigStorageVolBackingStore *backing_store)
46 {
47 g_debug("Init GVirConfigStorageVolBackingStore=%p", backing_store);
48
49 backing_store->priv = GVIR_CONFIG_STORAGE_VOL_BACKING_STORE_GET_PRIVATE(backing_store);
50 }
51
52
53 GVirConfigStorageVolBackingStore *gvir_config_storage_vol_backing_store_new(void)
54 {
55 GVirConfigObject *object;
56
57 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE,
58 "backingStore", NULL);
59 return GVIR_CONFIG_STORAGE_VOL_BACKING_STORE(object);
60 }
61
62 GVirConfigStorageVolBackingStore *gvir_config_storage_vol_backing_store_new_from_xml(const gchar *xml,
63 GError **error)
64 {
65 GVirConfigObject *object;
66
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE,
68 "backingStore", NULL,
69 xml, error);
70 return GVIR_CONFIG_STORAGE_VOL_BACKING_STORE(object);
71 }
72
73 void gvir_config_storage_vol_backing_store_set_format(GVirConfigStorageVolBackingStore *backing_store,
74 const char *format)
75 {
76 GVirConfigObject *node;
77
78 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_BACKING_STORE(backing_store));
79
80 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(backing_store), "format");
81 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
82 gvir_config_object_set_attribute(node, "type", format, NULL);
83 g_object_unref(G_OBJECT(node));
84 }
85
86 void gvir_config_storage_vol_backing_store_set_path(GVirConfigStorageVolBackingStore *backing_store,
87 const char *path)
88 {
89 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_BACKING_STORE(backing_store));
90
91 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(backing_store),
92 "path", path);
93 }
0 /*
1 * libvirt-gconfig-storage-vol-backing-store.c: libvirt storage volume backing store configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_STORAGE_VOL_BACKING_STORE_H__
27 #define __LIBVIRT_GCONFIG_STORAGE_VOL_BACKING_STORE_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE (gvir_config_storage_vol_backing_store_get_type ())
32 #define GVIR_CONFIG_STORAGE_VOL_BACKING_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE, GVirConfigStorageVolBackingStore))
33 #define GVIR_CONFIG_STORAGE_VOL_BACKING_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE, GVirConfigStorageVolBackingStoreClass))
34 #define GVIR_CONFIG_IS_STORAGE_VOL_BACKING_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE))
35 #define GVIR_CONFIG_IS_STORAGE_VOL_BACKING_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE))
36 #define GVIR_CONFIG_STORAGE_VOL_BACKING_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_BACKING_STORE, GVirConfigStorageVolBackingStoreClass))
37
38 typedef struct _GVirConfigStorageVolBackingStore GVirConfigStorageVolBackingStore;
39 typedef struct _GVirConfigStorageVolBackingStorePrivate GVirConfigStorageVolBackingStorePrivate;
40 typedef struct _GVirConfigStorageVolBackingStoreClass GVirConfigStorageVolBackingStoreClass;
41
42 struct _GVirConfigStorageVolBackingStore
43 {
44 GVirConfigObject parent;
45
46 GVirConfigStorageVolBackingStorePrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigStorageVolBackingStoreClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_storage_vol_backing_store_get_type(void);
60
61 GVirConfigStorageVolBackingStore *gvir_config_storage_vol_backing_store_new(void);
62 GVirConfigStorageVolBackingStore *gvir_config_storage_vol_backing_store_new_from_xml(const gchar *xml,
63 GError **error);
64 void gvir_config_storage_vol_backing_store_set_format(GVirConfigStorageVolBackingStore *backing_store,
65 const char *format);
66 void gvir_config_storage_vol_backing_store_set_path(GVirConfigStorageVolBackingStore *backing_store,
67 const char *path);
68
69 G_END_DECLS
70
71 #endif /* __LIBVIRT_GCONFIG_STORAGE_VOL_BACKING_STORE_H__ */
0 /*
1 * libvirt-gconfig-storage-vol-target.c: libvirt storage vol target configuration
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #include <config.h>
23
24 #include "libvirt-gconfig/libvirt-gconfig.h"
25 #include "libvirt-gconfig/libvirt-gconfig-private.h"
26
27
28 #define GVIR_CONFIG_STORAGE_VOL_TARGET_GET_PRIVATE(obj) \
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET, GVirConfigStorageVolTargetPrivate))
30
31 struct _GVirConfigStorageVolTargetPrivate
32 {
33 gboolean unused;
34 };
35
36 G_DEFINE_TYPE(GVirConfigStorageVolTarget, gvir_config_storage_vol_target, GVIR_CONFIG_TYPE_OBJECT);
37
38
39 static void gvir_config_storage_vol_target_class_init(GVirConfigStorageVolTargetClass *klass)
40 {
41 g_type_class_add_private(klass, sizeof(GVirConfigStorageVolTargetPrivate));
42 }
43
44
45 static void gvir_config_storage_vol_target_init(GVirConfigStorageVolTarget *target)
46 {
47 g_debug("Init GVirConfigStorageVolTarget=%p", target);
48
49 target->priv = GVIR_CONFIG_STORAGE_VOL_TARGET_GET_PRIVATE(target);
50 }
51
52
53 GVirConfigStorageVolTarget *gvir_config_storage_vol_target_new(void)
54 {
55 GVirConfigObject *object;
56
57 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET,
58 "target", NULL);
59 return GVIR_CONFIG_STORAGE_VOL_TARGET(object);
60 }
61
62 GVirConfigStorageVolTarget *gvir_config_storage_vol_target_new_from_xml(const gchar *xml,
63 GError **error)
64 {
65 GVirConfigObject *object;
66
67 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET,
68 "target", NULL,
69 xml, error);
70 return GVIR_CONFIG_STORAGE_VOL_TARGET(object);
71 }
72
73 void gvir_config_storage_vol_target_set_format(GVirConfigStorageVolTarget *target,
74 const char *format)
75 {
76 GVirConfigObject *node;
77
78 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_TARGET(target));
79
80 node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(target), "format");
81 g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
82 gvir_config_object_set_attribute(node, "type", format, NULL);
83 g_object_unref(G_OBJECT(node));
84 }
85
86 void gvir_config_storage_vol_target_set_permissions(GVirConfigStorageVolTarget *target,
87 GVirConfigStoragePermissions *perms)
88 {
89 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_TARGET(target));
90 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_PERMISSIONS(perms));
91
92 gvir_config_object_attach(GVIR_CONFIG_OBJECT(target),
93 GVIR_CONFIG_OBJECT(perms));
94 }
0 /*
1 * libvirt-gconfig-storage-vol-target.c: libvirt storage volume target configuration
2 *
3 * Copyright (C) 2010-2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@redhat.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_STORAGE_VOL_TARGET_H__
27 #define __LIBVIRT_GCONFIG_STORAGE_VOL_TARGET_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET (gvir_config_storage_vol_target_get_type ())
32 #define GVIR_CONFIG_STORAGE_VOL_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET, GVirConfigStorageVolTarget))
33 #define GVIR_CONFIG_STORAGE_VOL_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET, GVirConfigStorageVolTargetClass))
34 #define GVIR_CONFIG_IS_STORAGE_VOL_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET))
35 #define GVIR_CONFIG_IS_STORAGE_VOL_TARGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET))
36 #define GVIR_CONFIG_STORAGE_VOL_TARGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL_TARGET, GVirConfigStorageVolTargetClass))
37
38 typedef struct _GVirConfigStorageVolTarget GVirConfigStorageVolTarget;
39 typedef struct _GVirConfigStorageVolTargetPrivate GVirConfigStorageVolTargetPrivate;
40 typedef struct _GVirConfigStorageVolTargetClass GVirConfigStorageVolTargetClass;
41
42 struct _GVirConfigStorageVolTarget
43 {
44 GVirConfigObject parent;
45
46 GVirConfigStorageVolTargetPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigStorageVolTargetClass
52 {
53 GVirConfigObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_storage_vol_target_get_type(void);
60
61 GVirConfigStorageVolTarget *gvir_config_storage_vol_target_new(void);
62 GVirConfigStorageVolTarget *gvir_config_storage_vol_target_new_from_xml(const gchar *xml,
63 GError **error);
64
65 void gvir_config_storage_vol_target_set_format(GVirConfigStorageVolTarget *target,
66 const char *format);
67 void gvir_config_storage_vol_target_set_permissions(GVirConfigStorageVolTarget *target,
68 GVirConfigStoragePermissions *perms);
69
70 G_END_DECLS
71
72 #endif /* __LIBVIRT_GCONFIG_STORAGE_VOL_TARGET_H__ */
00 /*
1 * libvirt-gobject-config_storage_vol.c: libvirt glib integration
1 * libvirt-gconfig-storage-vol.c: libvirt storage vol configuration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2222
2323 #include <config.h>
2424
25 #include <string.h>
25 #include "libvirt-gconfig/libvirt-gconfig.h"
26 #include "libvirt-gconfig/libvirt-gconfig-private.h"
2627
27 #include "libvirt-gconfig/libvirt-gconfig.h"
28
29 extern gboolean debugFlag;
30
31 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3228
3329 #define GVIR_CONFIG_STORAGE_VOL_GET_PRIVATE(obj) \
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONFIG_STORAGE_VOL, GVirConfigStorageVolPrivate))
30 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_STORAGE_VOL, GVirConfigStorageVolPrivate))
3531
3632 struct _GVirConfigStorageVolPrivate
3733 {
3834 gboolean unused;
3935 };
4036
41 G_DEFINE_TYPE(GVirConfigStorageVol, gvir_config_storage_vol, GVIR_TYPE_CONFIG_OBJECT);
37 G_DEFINE_TYPE(GVirConfigStorageVol, gvir_config_storage_vol, GVIR_CONFIG_TYPE_OBJECT);
4238
4339
4440 static void gvir_config_storage_vol_class_init(GVirConfigStorageVolClass *klass)
4541 {
46
4742 g_type_class_add_private(klass, sizeof(GVirConfigStorageVolPrivate));
4843 }
4944
5045
5146 static void gvir_config_storage_vol_init(GVirConfigStorageVol *conn)
5247 {
53 GVirConfigStorageVolPrivate *priv;
48 g_debug("Init GVirConfigStorageVol=%p", conn);
5449
55 DEBUG("Init GVirConfigStorageVol=%p", conn);
56
57 priv = conn->priv = GVIR_CONFIG_STORAGE_VOL_GET_PRIVATE(conn);
58
59 memset(priv, 0, sizeof(*priv));
50 conn->priv = GVIR_CONFIG_STORAGE_VOL_GET_PRIVATE(conn);
6051 }
6152
6253
6455 {
6556 GVirConfigObject *object;
6657
67 object = gvir_config_object_new(GVIR_TYPE_CONFIG_STORAGE_VOL,
58 object = gvir_config_object_new(GVIR_CONFIG_TYPE_STORAGE_VOL,
6859 "volume",
6960 DATADIR "/libvirt/schemas/storage_vol.rng");
7061 return GVIR_CONFIG_STORAGE_VOL(object);
7566 {
7667 GVirConfigObject *object;
7768
78 object = gvir_config_object_new_from_xml(GVIR_TYPE_CONFIG_STORAGE_VOL,
69 object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_STORAGE_VOL,
7970 "volume",
8071 DATADIR "/libvirt/schemas/storage_vol.rng",
8172 xml, error);
8273 return GVIR_CONFIG_STORAGE_VOL(object);
8374 }
75
76 void gvir_config_storage_vol_set_name(GVirConfigStorageVol *vol,
77 const char *name)
78 {
79 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol));
80
81 gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(vol),
82 "name", name);
83 }
84
85 void gvir_config_storage_vol_set_capacity(GVirConfigStorageVol *vol,
86 guint64 capacity)
87 {
88 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol));
89
90 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(vol),
91 "capacity", capacity);
92 }
93
94 void gvir_config_storage_vol_set_allocation(GVirConfigStorageVol *vol,
95 guint64 allocation)
96 {
97 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol));
98
99 gvir_config_object_set_node_content_uint64(GVIR_CONFIG_OBJECT(vol),
100 "allocation", allocation);
101 }
102
103 void gvir_config_storage_vol_set_target(GVirConfigStorageVol *vol,
104 GVirConfigStorageVolTarget *target)
105 {
106 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol));
107 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_TARGET(target));
108
109 gvir_config_object_attach(GVIR_CONFIG_OBJECT(vol),
110 GVIR_CONFIG_OBJECT(target));
111 }
112
113 void gvir_config_storage_vol_set_backing_store(GVirConfigStorageVol *vol,
114 GVirConfigStorageVolBackingStore *backing_store)
115 {
116 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL(vol));
117 g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_BACKING_STORE(backing_store));
118
119 gvir_config_object_attach(GVIR_CONFIG_OBJECT(vol),
120 GVIR_CONFIG_OBJECT(backing_store));
121 }
00 /*
1 * libvirt-gobject-storage_vol-config.c: libvirt gobject integration
1 * libvirt-gconfig-storage-vol.c: libvirt storage volume configuration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2626 #ifndef __LIBVIRT_GCONFIG_STORAGE_VOL_H__
2727 #define __LIBVIRT_GCONFIG_STORAGE_VOL_H__
2828
29 #include <libvirt-gconfig/libvirt-gconfig-storage-vol-backing-store.h>
30 #include <libvirt-gconfig/libvirt-gconfig-storage-vol-target.h>
31
2932 G_BEGIN_DECLS
3033
31 #define GVIR_TYPE_CONFIG_STORAGE_VOL (gvir_config_storage_vol_get_type ())
32 #define GVIR_CONFIG_STORAGE_VOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_CONFIG_STORAGE_VOL, GVirConfigStorageVol))
33 #define GVIR_CONFIG_STORAGE_VOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_CONFIG_STORAGE_VOL, GVirConfigStorageVolClass))
34 #define GVIR_IS_CONFIG_STORAGE_VOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_CONFIG_STORAGE_VOL))
35 #define GVIR_IS_CONFIG_STORAGE_VOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_CONFIG_STORAGE_VOL))
36 #define GVIR_CONFIG_STORAGE_VOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_CONFIG_STORAGE_VOL, GVirConfigStorageVolClass))
34 #define GVIR_CONFIG_TYPE_STORAGE_VOL (gvir_config_storage_vol_get_type ())
35 #define GVIR_CONFIG_STORAGE_VOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL, GVirConfigStorageVol))
36 #define GVIR_CONFIG_STORAGE_VOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_STORAGE_VOL, GVirConfigStorageVolClass))
37 #define GVIR_CONFIG_IS_STORAGE_VOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL))
38 #define GVIR_CONFIG_IS_STORAGE_VOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_STORAGE_VOL))
39 #define GVIR_CONFIG_STORAGE_VOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_STORAGE_VOL, GVirConfigStorageVolClass))
3740
3841 typedef struct _GVirConfigStorageVol GVirConfigStorageVol;
3942 typedef struct _GVirConfigStorageVolPrivate GVirConfigStorageVolPrivate;
6265 GVirConfigStorageVol *gvir_config_storage_vol_new_from_xml(const gchar *xml,
6366 GError **error);
6467
68 void gvir_config_storage_vol_set_allocation(GVirConfigStorageVol *vol,
69 guint64 allocation);
70 void gvir_config_storage_vol_set_backing_store(GVirConfigStorageVol *vol,
71 GVirConfigStorageVolBackingStore *backing_store);
72 void gvir_config_storage_vol_set_capacity(GVirConfigStorageVol *vol,
73 guint64 capacity);
74 void gvir_config_storage_vol_set_name(GVirConfigStorageVol *vol,
75 const char *name);
76 void gvir_config_storage_vol_set_target(GVirConfigStorageVol *vol,
77 GVirConfigStorageVolTarget *target);
78
6579 G_END_DECLS
6680
6781 #endif /* __LIBVIRT_GCONFIG_STORAGE_VOL_H__ */
0 /*
1 * libvirt-gconfig-xml-doc.c: libvirt XML document management
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #include <config.h>
23
24 #include <string.h>
25
26 #include "libvirt-gconfig/libvirt-gconfig.h"
27 #include "libvirt-gconfig/libvirt-gconfig-xml-doc.h"
28
29 extern gboolean debugFlag;
30
31 #define GVIR_CONFIG_XML_DOC_GET_PRIVATE(obj) \
32 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_XML_DOC, GVirConfigXmlDocPrivate))
33
34 struct _GVirConfigXmlDocPrivate
35 {
36 xmlDocPtr doc;
37 };
38
39 G_DEFINE_TYPE(GVirConfigXmlDoc, gvir_config_xml_doc, G_TYPE_OBJECT);
40
41 enum {
42 PROP_0,
43 PROP_DOC
44 };
45
46 static void gvir_config_xml_doc_get_property(GObject *object,
47 guint prop_id,
48 GValue *value,
49 GParamSpec *pspec)
50 {
51 GVirConfigXmlDoc *xml_doc = GVIR_CONFIG_XML_DOC(object);
52
53 switch (prop_id) {
54 case PROP_DOC:
55 g_value_set_pointer(value, xml_doc->priv->doc);
56 break;
57 default:
58 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
59 }
60 }
61
62 static void gvir_config_xml_doc_set_property(GObject *object,
63 guint prop_id,
64 const GValue *value,
65 GParamSpec *pspec)
66 {
67 GVirConfigXmlDoc *doc = GVIR_CONFIG_XML_DOC(object);
68
69 switch (prop_id) {
70 case PROP_DOC:
71 doc->priv->doc = g_value_get_pointer(value);
72 break;
73 default:
74 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
75 }
76 }
77
78 static void gvir_config_xml_doc_finalize(GObject *object)
79 {
80 GVirConfigXmlDoc *doc = GVIR_CONFIG_XML_DOC(object);
81 GVirConfigXmlDocPrivate *priv = doc->priv;
82
83 g_debug("Finalize GVirConfigXmlDoc=%p", doc);
84
85 xmlFreeDoc(priv->doc);
86
87 G_OBJECT_CLASS(gvir_config_xml_doc_parent_class)->finalize(object);
88 }
89
90 static void gvir_config_xml_doc_class_init(GVirConfigXmlDocClass *klass)
91 {
92 GObjectClass *object_class = G_OBJECT_CLASS(klass);
93
94 g_type_class_add_private(klass, sizeof(GVirConfigXmlDocPrivate));
95
96 object_class->finalize = gvir_config_xml_doc_finalize;
97 object_class->get_property = gvir_config_xml_doc_get_property;
98 object_class->set_property = gvir_config_xml_doc_set_property;
99
100 g_object_class_install_property(object_class,
101 PROP_DOC,
102 g_param_spec_pointer("doc",
103 "XML Doc",
104 "The XML doc this config object corresponds to",
105 G_PARAM_READWRITE |
106 G_PARAM_CONSTRUCT_ONLY |
107 G_PARAM_STATIC_STRINGS));
108 }
109
110
111 static void gvir_config_xml_doc_init(GVirConfigXmlDoc *xml_doc)
112 {
113 GVirConfigXmlDocPrivate *priv;
114
115 g_debug("Init GVirConfigXmlDoc=%p", xml_doc);
116
117 priv = xml_doc->priv = GVIR_CONFIG_XML_DOC_GET_PRIVATE(xml_doc);
118
119 memset(priv, 0, sizeof(*priv));
120 }
121
122
123 GVirConfigXmlDoc *gvir_config_xml_doc_new(xmlDocPtr doc)
124 {
125 if (doc == NULL) {
126 doc = xmlNewDoc((xmlChar *)"1.0");
127 }
128 return GVIR_CONFIG_XML_DOC(g_object_new(GVIR_CONFIG_TYPE_XML_DOC,
129 "doc", doc,
130 NULL));
131 }
0 /*
1 * libvirt-gobject-xml-doc.h: libvirt XML document management
2 *
3 * Copyright (C) 2011 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Christophe Fergeau <cfergeau@gmail.com>
20 */
21
22 #if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
23 #error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
24 #endif
25
26 #ifndef __LIBVIRT_GCONFIG_XML_DOC_H__
27 #define __LIBVIRT_GCONFIG_XML_DOC_H__
28
29 G_BEGIN_DECLS
30
31 #define GVIR_CONFIG_TYPE_XML_DOC (gvir_config_xml_doc_get_type ())
32 #define GVIR_CONFIG_XML_DOC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_CONFIG_TYPE_XML_DOC, GVirConfigXmlDoc))
33 #define GVIR_CONFIG_XML_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_CONFIG_TYPE_XML_DOC, GVirConfigXmlDocClass))
34 #define GVIR_CONFIG_IS_XML_DOC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_CONFIG_TYPE_XML_DOC))
35 #define GVIR_CONFIG_IS_XML_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_CONFIG_TYPE_XML_DOC))
36 #define GVIR_CONFIG_XML_DOC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_CONFIG_TYPE_XML_DOC, GVirConfigXmlDocClass))
37
38 typedef struct _GVirConfigXmlDoc GVirConfigXmlDoc;
39 typedef struct _GVirConfigXmlDocPrivate GVirConfigXmlDocPrivate;
40 typedef struct _GVirConfigXmlDocClass GVirConfigXmlDocClass;
41
42 struct _GVirConfigXmlDoc
43 {
44 GObject parent;
45
46 GVirConfigXmlDocPrivate *priv;
47
48 /* Do not add fields to this struct */
49 };
50
51 struct _GVirConfigXmlDocClass
52 {
53 GObjectClass parent_class;
54
55 gpointer padding[20];
56 };
57
58
59 GType gvir_config_xml_doc_get_type(void);
60
61 GVirConfigXmlDoc *gvir_config_xml_doc_new(xmlDocPtr doc);
62
63 G_END_DECLS
64
65 #endif /* __LIBVIRT_GCONFIG_XML_DOC_H__ */
00 /*
11 * libvirt-gconfig.h: libvirt gconfig integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2525 #include <glib-object.h>
2626 #include <libxml/tree.h>
2727
28 #include <libvirt-gconfig/libvirt-gconfig-helpers.h>
28 #include <libvirt-gconfig/libvirt-gconfig-main.h>
2929 #include <libvirt-gconfig/libvirt-gconfig-object.h>
3030 #include <libvirt-gconfig/libvirt-gconfig-capabilities.h>
3131 #include <libvirt-gconfig/libvirt-gconfig-domain.h>
32 #include <libvirt-gconfig/libvirt-gconfig-domain-chardev.h>
33 #include <libvirt-gconfig/libvirt-gconfig-domain-chardev-source.h>
34 #include <libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h>
35 #include <libvirt-gconfig/libvirt-gconfig-domain-channel.h>
36 #include <libvirt-gconfig/libvirt-gconfig-domain-clock.h>
37 #include <libvirt-gconfig/libvirt-gconfig-domain-console.h>
38 #include <libvirt-gconfig/libvirt-gconfig-domain-device.h>
39 #include <libvirt-gconfig/libvirt-gconfig-domain-disk.h>
40 #include <libvirt-gconfig/libvirt-gconfig-domain-filesys.h>
41 #include <libvirt-gconfig/libvirt-gconfig-domain-graphics.h>
42 #include <libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.h>
43 #include <libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.h>
44 #include <libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h>
45 #include <libvirt-gconfig/libvirt-gconfig-domain-input.h>
46 #include <libvirt-gconfig/libvirt-gconfig-domain-interface.h>
47 #include <libvirt-gconfig/libvirt-gconfig-domain-interface-bridge.h>
48 #include <libvirt-gconfig/libvirt-gconfig-domain-interface-network.h>
49 #include <libvirt-gconfig/libvirt-gconfig-domain-interface-user.h>
50 #include <libvirt-gconfig/libvirt-gconfig-domain-memballoon.h>
51 #include <libvirt-gconfig/libvirt-gconfig-domain-os.h>
52 #include <libvirt-gconfig/libvirt-gconfig-domain-parallel.h>
53 #include <libvirt-gconfig/libvirt-gconfig-domain-seclabel.h>
54 #include <libvirt-gconfig/libvirt-gconfig-domain-serial.h>
3255 #include <libvirt-gconfig/libvirt-gconfig-domain-snapshot.h>
56 #include <libvirt-gconfig/libvirt-gconfig-domain-sound.h>
57 #include <libvirt-gconfig/libvirt-gconfig-domain-timer.h>
58 #include <libvirt-gconfig/libvirt-gconfig-domain-video.h>
59 #include <libvirt-gconfig/libvirt-gconfig-enum-types.h>
60 #include <libvirt-gconfig/libvirt-gconfig-helpers.h>
3361 #include <libvirt-gconfig/libvirt-gconfig-interface.h>
3462 #include <libvirt-gconfig/libvirt-gconfig-network.h>
63 #include <libvirt-gconfig/libvirt-gconfig-network-filter.h>
3564 #include <libvirt-gconfig/libvirt-gconfig-node-device.h>
36 #include <libvirt-gconfig/libvirt-gconfig-network-filter.h>
3765 #include <libvirt-gconfig/libvirt-gconfig-secret.h>
66 #include <libvirt-gconfig/libvirt-gconfig-storage-permissions.h>
3867 #include <libvirt-gconfig/libvirt-gconfig-storage-pool.h>
68 #include <libvirt-gconfig/libvirt-gconfig-storage-pool-source.h>
69 #include <libvirt-gconfig/libvirt-gconfig-storage-pool-target.h>
3970 #include <libvirt-gconfig/libvirt-gconfig-storage-vol.h>
71 #include <libvirt-gconfig/libvirt-gconfig-storage-vol-backing-store.h>
72 #include <libvirt-gconfig/libvirt-gconfig-storage-vol-target.h>
4073
4174 #endif /* __LIBVIRT_GCONFIG_H__ */
0 LIBVIRT_GOBJECT_0.0.1 {
0 LIBVIRT_GCONFIG_0.0.4 {
11 global:
2 gvir_config_init_check;
3 gvir_config_init;
4
25 gvir_config_capabilities_get_type;
36 gvir_config_capabilities_new;
47 gvir_config_capabilities_new_from_xml;
58
9 gvir_config_domain_add_device;
610 gvir_config_domain_get_type;
11 gvir_config_domain_lifecycle_action_get_type;
12 gvir_config_domain_lifecycle_event_get_type;
713 gvir_config_domain_new;
814 gvir_config_domain_new_from_xml;
15 gvir_config_domain_set_clock;
16 gvir_config_domain_get_devices;
17 gvir_config_domain_set_devices;
918 gvir_config_domain_get_features;
1019 gvir_config_domain_set_features;
20 gvir_config_domain_set_lifecycle;
1121 gvir_config_domain_get_memory;
1222 gvir_config_domain_set_memory;
1323 gvir_config_domain_get_name;
1424 gvir_config_domain_set_name;
25 gvir_config_domain_set_os;
26 gvir_config_domain_set_seclabel;
27 gvir_config_domain_get_vcpus;
28 gvir_config_domain_set_vcpus;
29 gvir_config_domain_set_virt_type;
30 gvir_config_domain_virt_type_get_type;
31
32 gvir_config_domain_channel_get_type;
33 gvir_config_domain_channel_new;
34 gvir_config_domain_channel_new_from_xml;
35 gvir_config_domain_channel_set_target_type;
36 gvir_config_domain_channel_set_target_name;
37 gvir_config_domain_channel_target_type_get_type;
38
39 gvir_config_domain_chardev_get_type;
40 gvir_config_domain_chardev_set_source;
41
42 gvir_config_domain_chardev_source_get_type;
43
44 gvir_config_domain_chardev_source_pty_get_type;
45 gvir_config_domain_chardev_source_pty_new;
46 gvir_config_domain_chardev_source_pty_new_from_xml;
47 gvir_config_domain_source_pty_set_path;
48
49 gvir_config_domain_clock_get_type;
50 gvir_config_domain_clock_offset_get_type;
51 gvir_config_domain_clock_new;
52 gvir_config_domain_clock_new_from_xml;
53 gvir_config_domain_clock_set_offset;
54 gvir_config_domain_clock_set_timezone;
55 gvir_config_domain_clock_set_variable_offset;
56
57 gvir_config_domain_console_get_type;
58 gvir_config_domain_console_new;
59 gvir_config_domain_console_new_from_xml;
60 gvir_config_domain_console_set_target_type;
61 gvir_config_domain_console_target_type_get_type;
62
63 gvir_config_domain_device_get_type;
64
65 gvir_config_domain_disk_get_type;
66 gvir_config_domain_disk_bus_get_type;
67 gvir_config_domain_disk_guest_device_type_get_type;
68 gvir_config_domain_disk_snapshot_type_get_type;
69 gvir_config_domain_disk_type_get_type;
70 gvir_config_domain_disk_new;
71 gvir_config_domain_disk_new_from_xml;
72 gvir_config_domain_disk_get_driver_name;
73 gvir_config_domain_disk_set_driver_name;
74 gvir_config_domain_disk_get_driver_type;
75 gvir_config_domain_disk_set_driver_type;
76 gvir_config_domain_disk_get_guest_device_type;
77 gvir_config_domain_disk_set_guest_device_type;
78 gvir_config_domain_disk_get_snapshot_type;
79 gvir_config_domain_disk_set_snapshot_type;
80 gvir_config_domain_disk_get_source;
81 gvir_config_domain_disk_set_source;
82 gvir_config_domain_disk_get_target_bus;
83 gvir_config_domain_disk_set_target_bus;
84 gvir_config_domain_disk_get_target_dev;
85 gvir_config_domain_disk_set_target_dev;
86 gvir_config_domain_disk_get_disk_type;
87 gvir_config_domain_disk_set_type;
88
89 gvir_config_domain_filesys_get_type;
90 gvir_config_domain_filesys_type_get_type;
91 gvir_config_domain_filesys_access_type_get_type;
92 gvir_config_domain_filesys_driver_type_get_type;
93 gvir_config_domain_filesys_new;
94 gvir_config_domain_filesys_new_from_xml;
95 gvir_config_domain_filesys_set_access_type;
96 gvir_config_domain_filesys_set_driver_type;
97 gvir_config_domain_filesys_set_readonly;
98 gvir_config_domain_filesys_set_source;
99 gvir_config_domain_filesys_set_target;
100 gvir_config_domain_filesys_set_type;
101
102 gvir_config_domain_graphics_get_type;
103
104 gvir_config_domain_graphics_sdl_get_type;
105 gvir_config_domain_graphics_sdl_new;
106 gvir_config_domain_graphics_sdl_new_from_xml;
107 gvir_config_domain_graphics_sdl_set_display;
108 gvir_config_domain_graphics_sdl_set_xauthority;
109
110 gvir_config_domain_graphics_spice_get_type;
111 gvir_config_domain_graphics_spice_new;
112 gvir_config_domain_graphics_spice_new_from_xml;
113 gvir_config_domain_graphics_spice_set_autoport;
114 gvir_config_domain_graphics_spice_set_port;
115 gvir_config_domain_graphics_spice_set_tls_port;
116 gvir_config_domain_graphics_spice_set_password;
117
118 gvir_config_domain_graphics_vnc_get_type;
119 gvir_config_domain_graphics_vnc_new;
120 gvir_config_domain_graphics_vnc_new_from_xml;
121 gvir_config_domain_graphics_vnc_set_autoport;
122 gvir_config_domain_graphics_vnc_set_password;
123 gvir_config_domain_graphics_vnc_set_port;
124
125 gvir_config_domain_input_bus_get_type;
126 gvir_config_domain_input_get_type;
127 gvir_config_domain_input_device_type_get_type;
128 gvir_config_domain_input_new;
129 gvir_config_domain_input_new_from_xml;
130 gvir_config_domain_input_set_device_type;
131 gvir_config_domain_input_set_bus;
132
133 gvir_config_domain_interface_get_type;
134 gvir_config_domain_interface_link_state_get_type;
135 gvir_config_domain_interface_set_ifname;
136 gvir_config_domain_interface_set_link_state;
137 gvir_config_domain_interface_set_mac;
138 gvir_config_domain_interface_set_model;
139
140 gvir_config_domain_interface_bridge_get_type;
141 gvir_config_domain_interface_bridge_new;
142 gvir_config_domain_interface_bridge_new_from_xml;
143 gvir_config_domain_interface_bridge_set_source;
144
145 gvir_config_domain_interface_network_get_type;
146 gvir_config_domain_interface_network_new;
147 gvir_config_domain_interface_network_new_from_xml;
148 gvir_config_domain_interface_network_set_source;
149
150 gvir_config_domain_interface_user_get_type;
151 gvir_config_domain_interface_user_new;
152 gvir_config_domain_interface_user_new_from_xml;
153
154 gvir_config_domain_memballoon_get_type;
155 gvir_config_domain_memballoon_model_get_type;
156 gvir_config_domain_memballoon_new;
157 gvir_config_domain_memballoon_new_from_xml;
158 gvir_config_domain_memballoon_set_model;
159
160 gvir_config_domain_os_get_type;
161 gvir_config_domain_os_boot_device_get_type;
162 gvir_config_domain_os_sm_bios_mode_get_type;
163 gvir_config_domain_os_new;
164 gvir_config_domain_os_new_from_xml;
165 gvir_config_domain_os_set_os_type;
166 gvir_config_domain_os_set_boot_devices;
167 gvir_config_domain_os_set_cmdline;
168 gvir_config_domain_os_set_init;
169 gvir_config_domain_os_set_kernel;
170 gvir_config_domain_os_set_loader;
171 gvir_config_domain_os_set_ramdisk;
172 gvir_config_domain_os_set_smbios_mode;
173 gvir_config_domain_os_enable_boot_menu;
174 gvir_config_domain_os_bios_enable_serial;
175 gvir_config_domain_os_set_machine;
176 gvir_config_domain_os_set_arch;
177 gvir_config_domain_os_type_get_type;
178
179 gvir_config_domain_parallel_get_type;
180 gvir_config_domain_parallel_new;
181 gvir_config_domain_parallel_new_from_xml;
182
183 gvir_config_domain_seclabel_get_type;
184 gvir_config_domain_seclabel_type_get_type;
185 gvir_config_domain_seclabel_new;
186 gvir_config_domain_seclabel_new_from_xml;
187 gvir_config_domain_seclabel_set_type;
188 gvir_config_domain_seclabel_set_model;
189 gvir_config_domain_seclabel_set_baselabel;
190 gvir_config_domain_seclabel_set_label;
191
192 gvir_config_domain_serial_get_type;
193 gvir_config_domain_serial_new;
194 gvir_config_domain_serial_new_from_xml;
15195
16196 gvir_config_domain_snapshot_get_type;
17197 gvir_config_domain_snapshot_new;
18198 gvir_config_domain_snapshot_new_from_xml;
199
200 gvir_config_domain_sound_get_type;
201 gvir_config_domain_sound_model_get_type;
202 gvir_config_domain_sound_new;
203 gvir_config_domain_sound_new_from_xml;
204 gvir_config_domain_sound_set_model;
205
206 gvir_config_domain_timer_get_type;
207 gvir_config_domain_timer_new;
208 gvir_config_domain_timer_new_from_xml;
209
210 gvir_config_domain_video_get_type;
211 gvir_config_domain_video_model_get_type;
212 gvir_config_domain_video_new;
213 gvir_config_domain_video_new_from_xml;
214 gvir_config_domain_video_set_model;
215 gvir_config_domain_video_set_vram;
216 gvir_config_domain_video_set_heads;
19217
20218 gvir_config_interface_get_type;
21219 gvir_config_interface_new;
37235 gvir_config_object_error_quark;
38236 gvir_config_object_new;
39237 gvir_config_object_get_schema;
40 gvir_config_object_get_xml_node;
41238 gvir_config_object_to_xml;
42239 gvir_config_object_validate;
240 gvir_config_object_attach;
241 gvir_config_object_set_attribute;
242 gvir_config_object_set_attribute_with_type;
43243
44244 gvir_config_secret_get_type;
45245 gvir_config_secret_new;
46246 gvir_config_secret_new_from_xml;
47247
248 gvir_config_storage_permissions_get_type;
249 gvir_config_storage_permissions_new;
250 gvir_config_storage_permissions_new_from_xml;
251 gvir_config_storage_permissions_set_group;
252 gvir_config_storage_permissions_set_label;
253 gvir_config_storage_permissions_set_mode;
254 gvir_config_storage_permissions_set_owner;
255
48256 gvir_config_storage_pool_get_type;
257 gvir_config_storage_pool_type_get_type;
49258 gvir_config_storage_pool_new;
50259 gvir_config_storage_pool_new_from_xml;
260 gvir_config_storage_pool_set_allocation;
261 gvir_config_storage_pool_set_available;
262 gvir_config_storage_pool_set_capacity;
263 gvir_config_storage_pool_set_name;
264 gvir_config_storage_pool_set_pool_type;
265 gvir_config_storage_pool_set_source;
266 gvir_config_storage_pool_set_target;
267 gvir_config_storage_pool_set_uuid;
268
269 gvir_config_storage_pool_source_get_type;
270 gvir_config_storage_pool_source_new;
271 gvir_config_storage_pool_source_new_from_xml;
272 gvir_config_storage_pool_source_set_adapter;
273 gvir_config_storage_pool_source_set_device_path;
274 gvir_config_storage_pool_source_set_directory;
275 gvir_config_storage_pool_source_set_format;
276 gvir_config_storage_pool_source_set_host;
277 gvir_config_storage_pool_source_set_name;
278 gvir_config_storage_pool_source_set_product;
279 gvir_config_storage_pool_source_set_vendor;
280
281 gvir_config_storage_pool_target_get_type;
282 gvir_config_storage_pool_target_new;
283 gvir_config_storage_pool_target_new_from_xml;
284 gvir_config_storage_pool_target_set_path;
285 gvir_config_storage_pool_target_set_permissions;
51286
52287 gvir_config_storage_vol_get_type;
53288 gvir_config_storage_vol_new;
54289 gvir_config_storage_vol_new_from_xml;
55
290 gvir_config_storage_vol_set_allocation;
291 gvir_config_storage_vol_set_backing_store;
292 gvir_config_storage_vol_set_capacity;
293 gvir_config_storage_vol_set_name;
294 gvir_config_storage_vol_set_target;
295
296 gvir_config_storage_vol_backing_store_get_type;
297 gvir_config_storage_vol_backing_store_new;
298 gvir_config_storage_vol_backing_store_new_from_xml;
299 gvir_config_storage_vol_backing_store_set_format;
300 gvir_config_storage_vol_backing_store_set_path;
301
302 gvir_config_storage_vol_target_get_type;
303 gvir_config_storage_vol_target_new;
304 gvir_config_storage_vol_target_new_from_xml;
305 gvir_config_storage_vol_target_set_format;
306 gvir_config_storage_vol_target_set_permissions;
307
308 gvir_config_xml_doc_get_type;
309 gvir_config_xml_doc_new;
56310 local:
57311 *;
58312 };
133133 GIO2_LIBS = @GIO2_LIBS@
134134 GLIB2_CFLAGS = @GLIB2_CFLAGS@
135135 GLIB2_LIBS = @GLIB2_LIBS@
136 GLIB_MKENUMS = @GLIB_MKENUMS@
136137 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
137138 GOBJECT2_LIBS = @GOBJECT2_LIBS@
138139 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
141142 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
142143 GTHREAD2_LIBS = @GTHREAD2_LIBS@
143144 GTKDOC_CHECK = @GTKDOC_CHECK@
145 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
146 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
144147 GTKDOC_MKPDF = @GTKDOC_MKPDF@
145148 GTKDOC_REBASE = @GTKDOC_REBASE@
146149 G_IR_COMPILER = @G_IR_COMPILER@
00 /*
11 * test-domain-create.c: test libvirt-gconfig domain creation
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * Permission is hereby granted, free of charge, to any person obtaining a
66 * copy of this software and associated documentation files (the
2424 * Author: Christophe Fergeau <cfergeau@redhat.com>
2525 */
2626
27 #include <config.h>
28
2729 #include <string.h>
2830 #include <libvirt-gconfig/libvirt-gconfig.h>
2931
3032 const char *features[] = { "foo", "bar", "baz", NULL };
3133
32 int main(void)
34 int main(int argc, char **argv)
3335 {
3436 GVirConfigDomain *domain;
3537 char *name;
3739 unsigned int i;
3840 char *xml;
3941
40 g_type_init();
42 gvir_config_init(&argc, &argv);
4143
4244 domain = gvir_config_domain_new();
4345 g_assert(domain != NULL);
4850 g_free(name);
4951
5052 gvir_config_domain_set_memory(domain, 1234);
53 gvir_config_domain_set_vcpus(domain, 3);
5154 g_assert(gvir_config_domain_get_memory(domain) == 1234);
5255
5356 gvir_config_domain_set_features(domain, (const GStrv)features);
5861 }
5962 g_strfreev(feat);
6063
64 gvir_config_domain_set_lifecycle(domain,
65 GVIR_CONFIG_DOMAIN_LIFECYCLE_ON_POWEROFF,
66 GVIR_CONFIG_DOMAIN_LIFECYCLE_RESTART);
67
68 /* clock node */
69 GVirConfigDomainClock *klock;
70
71 klock = gvir_config_domain_clock_new();
72 gvir_config_domain_clock_set_offset(klock, GVIR_CONFIG_DOMAIN_CLOCK_UTC);
73 gvir_config_domain_set_clock(domain, klock);
74 g_object_unref(G_OBJECT(klock));
75
76 /* os node */
77 GVirConfigDomainOs *os;
78 GList *devices = NULL;
79
80 os = gvir_config_domain_os_new();
81 gvir_config_domain_os_set_os_type(os, GVIR_CONFIG_DOMAIN_OS_TYPE_HVM);
82 gvir_config_domain_os_set_arch(os, "x86_64");
83 devices = g_list_append(devices,
84 GINT_TO_POINTER(GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_CDROM));
85 devices = g_list_append(devices,
86 GINT_TO_POINTER(GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_NETWORK));
87 gvir_config_domain_os_set_boot_devices(os, devices);
88 g_list_free(devices);
89 devices = NULL;
90 gvir_config_domain_set_os(domain, os);
91 g_object_unref(G_OBJECT(os));
92
93 /* disk node */
94 GVirConfigDomainDisk *disk;
95
96 disk = gvir_config_domain_disk_new();
97 gvir_config_domain_disk_set_type(disk, GVIR_CONFIG_DOMAIN_DISK_FILE);
98 gvir_config_domain_disk_set_guest_device_type(disk, GVIR_CONFIG_DOMAIN_DISK_GUEST_DEVICE_DISK);
99 gvir_config_domain_disk_set_source(disk, "/tmp/foo/bar");
100 gvir_config_domain_disk_set_driver_name(disk, "foo");
101 gvir_config_domain_disk_set_driver_type(disk, "bar");
102 gvir_config_domain_disk_set_driver_name(disk, "qemu");
103 gvir_config_domain_disk_set_driver_type(disk, "qcow2");
104 gvir_config_domain_disk_set_target_bus(disk, GVIR_CONFIG_DOMAIN_DISK_BUS_IDE);
105 gvir_config_domain_disk_set_target_dev(disk, "hda");
106 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(disk));
107
108
109 /* network interfaces node */
110 GVirConfigDomainInterface *interface;
111
112 interface = GVIR_CONFIG_DOMAIN_INTERFACE(gvir_config_domain_interface_network_new());
113 gvir_config_domain_interface_network_set_source(GVIR_CONFIG_DOMAIN_INTERFACE_NETWORK(interface),
114 "default");
115 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(interface));
116
117 interface = GVIR_CONFIG_DOMAIN_INTERFACE(gvir_config_domain_interface_user_new());
118 gvir_config_domain_interface_set_ifname(interface, "eth0");
119 gvir_config_domain_interface_set_link_state(interface,
120 GVIR_CONFIG_DOMAIN_INTERFACE_LINK_STATE_UP);
121 gvir_config_domain_interface_set_mac(interface, "00:11:22:33:44:55");
122 gvir_config_domain_interface_set_model(interface, "foo");
123 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(interface));
124
125
126 /* input node */
127 GVirConfigDomainInput *input;
128
129 input = gvir_config_domain_input_new();
130 gvir_config_domain_input_set_device_type(input,
131 GVIR_CONFIG_DOMAIN_INPUT_DEVICE_TABLET);
132 gvir_config_domain_input_set_bus(input, GVIR_CONFIG_DOMAIN_INPUT_BUS_USB);
133 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(input));
134
135 /* graphics node */
136 GVirConfigDomainGraphicsSpice *graphics;
137
138 graphics = gvir_config_domain_graphics_spice_new();
139 gvir_config_domain_graphics_spice_set_port(graphics, 1234);
140 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(graphics));
141
142 /* video node */
143 GVirConfigDomainVideo *video;
144
145 video = gvir_config_domain_video_new();
146 gvir_config_domain_video_set_model(video,
147 GVIR_CONFIG_DOMAIN_VIDEO_MODEL_QXL);
148 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(video));
149
150 /* sound node */
151 GVirConfigDomainSound *sound;
152
153 sound = gvir_config_domain_sound_new();
154 gvir_config_domain_sound_set_model(sound,
155 GVIR_CONFIG_DOMAIN_SOUND_MODEL_ES1370);
156 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(sound));
157
158 /* console node */
159 GVirConfigDomainConsole *console;
160 GVirConfigDomainChardevSourcePty *pty;
161
162 console = gvir_config_domain_console_new();
163 pty = gvir_config_domain_chardev_source_pty_new();
164 gvir_config_domain_chardev_set_source(GVIR_CONFIG_DOMAIN_CHARDEV(console),
165 GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE(pty));
166 g_object_unref(G_OBJECT(pty));
167 devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(console));
168
169 gvir_config_domain_set_devices(domain, devices);
170 g_list_foreach(devices, (GFunc)g_object_unref, NULL);
171 g_list_free(devices);
172 devices = NULL;
173
174
61175 xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(domain));
62 g_print("%s\n", xml);
176 g_print("%s\n\n", xml);
63177 g_free(xml);
64178 g_object_unref(G_OBJECT(domain));
65179
180
181 /* storage pool */
182 GVirConfigStoragePool *pool;
183 GVirConfigStoragePoolSource *pool_source;
184 GVirConfigStoragePoolTarget *pool_target;
185 GVirConfigStoragePermissions *perms;
186
187 pool = gvir_config_storage_pool_new();
188 gvir_config_storage_pool_set_pool_type(pool, GVIR_CONFIG_STORAGE_POOL_TYPE_DIR);
189
190 pool_source = gvir_config_storage_pool_source_new();
191 gvir_config_storage_pool_source_set_directory(pool_source, "/foo/bar");
192 gvir_config_storage_pool_set_source(pool, pool_source);
193 g_object_unref(G_OBJECT(pool_source));
194
195 perms = gvir_config_storage_permissions_new();
196 gvir_config_storage_permissions_set_owner(perms, 1001);
197 gvir_config_storage_permissions_set_group(perms, 1007);
198 gvir_config_storage_permissions_set_mode(perms, 0744);
199 gvir_config_storage_permissions_set_label(perms, "virt_image_t");
200
201 pool_target = gvir_config_storage_pool_target_new();
202 gvir_config_storage_pool_target_set_path(pool_target, "/dev/disk/by-path");
203 gvir_config_storage_pool_target_set_permissions(pool_target, perms);
204 g_object_unref(G_OBJECT(perms));
205 gvir_config_storage_pool_set_target(pool, pool_target);
206 g_object_unref(G_OBJECT(pool_target));
207
208 xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(pool));
209 g_print("%s\n\n", xml);
210 g_free(xml);
211 g_object_unref(G_OBJECT(pool));
212
213
214 /* storage volume */
215 GVirConfigStorageVol *vol;
216 GVirConfigStorageVolTarget *vol_target;
217
218 vol = gvir_config_storage_vol_new();
219 gvir_config_storage_vol_set_name(vol, "my-volume");
220 gvir_config_storage_vol_set_capacity(vol, 1000000);
221
222 perms = gvir_config_storage_permissions_new();
223 gvir_config_storage_permissions_set_owner(perms, 1001);
224 gvir_config_storage_permissions_set_group(perms, 1007);
225 gvir_config_storage_permissions_set_mode(perms, 0744);
226 gvir_config_storage_permissions_set_label(perms, "virt_image_t");
227
228 vol_target = gvir_config_storage_vol_target_new();
229 gvir_config_storage_vol_target_set_format(vol_target, "qcow2");
230 gvir_config_storage_vol_target_set_permissions(vol_target, perms);
231 g_object_unref(G_OBJECT(perms));
232 gvir_config_storage_vol_set_target(vol, vol_target);
233 g_object_unref(G_OBJECT(vol_target));
234
235 xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(vol));
236 g_print("%s\n\n", xml);
237 g_free(xml);
238 g_object_unref(G_OBJECT(vol));
239
66240 return 0;
67241 }
00 /*
11 * test-domain-create.c: test libvirt-gconfig domain parsing
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * Permission is hereby granted, free of charge, to any person obtaining a
66 * copy of this software and associated documentation files (the
2424 * Author: Christophe Fergeau <cfergeau@redhat.com>
2525 */
2626
27 #include <config.h>
28
2729 #include <string.h>
2830 #include <libvirt-gconfig/libvirt-gconfig.h>
2931
3638 char *xml;
3739 GError *error = NULL;
3840
41 gvir_config_init(&argc, &argv);
3942 if (argc != 2) {
4043 g_print("Usage: %s filename\n", argv[0]);
4144 g_print("Attempt to parse the libvirt XML definition from filename\n");
1515 libvirt-glib-main.c
1616 libvirt_glib_1_0_la_CFLAGS = \
1717 -DLIBVIRT_GLIB_BUILD \
18 -DG_LOG_DOMAIN="\"Libvirt.GLib\"" \
1819 $(COVERAGE_CFLAGS) \
1920 -I$(top_srcdir) \
2021 $(LIBVIRT_CFLAGS) \
4647 --identifier-prefix=GVir \
4748 --symbol-prefix=gvir \
4849 --library=$(builddir)/libvirt-glib-1.0.la \
49 --add-include-path=$(builddir) \
5050 --output $@ \
5151 -I$(top_srcdir) \
52 -I$(srcdir) \
53 --pkg=glib-2.0 \
52 --verbose \
5453 --pkg=gthread-2.0 \
5554 --c-include="libvirt-glib/libvirt-glib.h" \
5655 --pkg-export=libvirt-glib-1.0 \
155155 GIO2_LIBS = @GIO2_LIBS@
156156 GLIB2_CFLAGS = @GLIB2_CFLAGS@
157157 GLIB2_LIBS = @GLIB2_LIBS@
158 GLIB_MKENUMS = @GLIB_MKENUMS@
158159 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
159160 GOBJECT2_LIBS = @GOBJECT2_LIBS@
160161 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
163164 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
164165 GTHREAD2_LIBS = @GTHREAD2_LIBS@
165166 GTKDOC_CHECK = @GTKDOC_CHECK@
167 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
168 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
166169 GTKDOC_MKPDF = @GTKDOC_MKPDF@
167170 GTKDOC_REBASE = @GTKDOC_REBASE@
168171 G_IR_COMPILER = @G_IR_COMPILER@
294297
295298 libvirt_glib_1_0_la_CFLAGS = \
296299 -DLIBVIRT_GLIB_BUILD \
300 -DG_LOG_DOMAIN="\"Libvirt.GLib\"" \
297301 $(COVERAGE_CFLAGS) \
298302 -I$(top_srcdir) \
299303 $(LIBVIRT_CFLAGS) \
731735 @WITH_GOBJECT_INTROSPECTION_TRUE@ --identifier-prefix=GVir \
732736 @WITH_GOBJECT_INTROSPECTION_TRUE@ --symbol-prefix=gvir \
733737 @WITH_GOBJECT_INTROSPECTION_TRUE@ --library=$(builddir)/libvirt-glib-1.0.la \
734 @WITH_GOBJECT_INTROSPECTION_TRUE@ --add-include-path=$(builddir) \
735738 @WITH_GOBJECT_INTROSPECTION_TRUE@ --output $@ \
736739 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_srcdir) \
737 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(srcdir) \
738 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=glib-2.0 \
740 @WITH_GOBJECT_INTROSPECTION_TRUE@ --verbose \
739741 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=gthread-2.0 \
740742 @WITH_GOBJECT_INTROSPECTION_TRUE@ --c-include="libvirt-glib/libvirt-glib.h" \
741743 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg-export=libvirt-glib-1.0 \
11 * libvirt-glib-error.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
126126 return err;
127127 }
128128
129
130 /**
131 * gvir_set_error: (skip)
132 * @error: pointer to error location
133 * @domain: error domain
134 * @code: error code
135 * @format: printf()-style format for error message
136 * @Varargs: parameters for message format
137 *
138 * If @error is NULL this does nothing. Otherwise it
139 * creates a new #GError with the given @domain and @code,
140 * and a message formatted with @format, and stores it
141 * in @error.
142 */
143 void gvir_set_error(GError **error,
144 GQuark domain,
145 gint code,
146 const gchar *format,
147 ...)
148 {
149 va_list args;
150 gchar *message;
151
152 if (!error)
153 return;
154
155 va_start(args, format);
156 message = g_strdup_vprintf(format, args);
157 va_end(args);
158
159 *error = gvir_error_new_literal(domain, code, message);
160
161 g_free(message);
162 }
163
164
165 /**
166 * gvir_set_error_literal: (skip)
167 * @error: pointer to error location
168 * @domain: error domain
169 * @code: error code
170 * @message: error message
171 *
172 * If @error is NULL this does nothing. Otherwise it
173 * creates a new #GError and stores it in @error; unlike
174 * gvir_set_error(), @message is not a printf()-style
175 * format string. Use this function if @message contains
176 * text you don't have control over, that could include
177 * printf() escape sequences.
178 */
179 void gvir_set_error_literal(GError **error,
180 GQuark domain,
181 gint code,
182 const gchar *message)
183 {
184 if (!error)
185 return;
186
187 *error = gvir_error_new_literal(domain, code, message);
188 }
189
190
191 /**
192 * gvir_set_error_valist: (skip)
193 * @error: pointer to error location
194 * @domain: error domain
195 * @code: error code
196 * @format: printf()-style format for error message
197 * @args: #va_list of parameters for the message format
198 *
199 * If @error is NULL this does nothing. Otherwise it
200 * creates a new #GError with the given @domain and @code,
201 * and a message formatted with @format, and stores it
202 * in @error.
203 */
204 void gvir_set_error_valist(GError **error,
205 GQuark domain,
206 gint code,
207 const gchar *format,
208 va_list args)
209 {
210 gchar *message;
211 if (!error)
212 return;
213
214 message = g_strdup_vprintf(format, args);
215 *error = gvir_error_new_literal(domain, code, message);
216
217 g_free(message);
218 }
11 * libvirt-glib-error.h: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
4141 const gchar *format,
4242 va_list args);
4343
44 void gvir_set_error(GError **error,
45 GQuark domain,
46 gint code,
47 const gchar *format,
48 ...);
49
50 void gvir_set_error_literal(GError **error,
51 GQuark domain,
52 gint code,
53 const gchar *message);
54
55 void gvir_set_error_valist(GError **error,
56 GQuark domain,
57 gint code,
58 const gchar *format,
59 va_list args);
60
61
4462 G_END_DECLS
4563
4664 #endif /* __LIBVIRT_GLIB_ERROR_H__ */
11 * libvirt-glib-event.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
3030
3131 #include "libvirt-glib/libvirt-glib.h"
3232
33 extern gboolean debugFlag;
34
35 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
36
3733 struct gvir_event_handle
3834 {
3935 int watch;
8278 if (condition & G_IO_ERR)
8379 events |= VIR_EVENT_HANDLE_ERROR;
8480
85 DEBUG("Dispatch handler %d %d %p\n", data->fd, events, data->opaque);
81 g_debug("Dispatch handler %d %d %p\n", data->fd, events, data->opaque);
8682
8783 (data->cb)(data->watch, data->fd, events, data->opaque);
8884
118114 data->channel = g_io_channel_unix_new(fd);
119115 data->ff = ff;
120116
121 DEBUG("Add handle %d %d %p\n", data->fd, events, data->opaque);
117 g_debug("Add handle %d %d %p\n", data->fd, events, data->opaque);
122118
123119 data->source = g_io_add_watch(data->channel,
124120 cond,
167163
168164 data = gvir_event_handle_find(watch, NULL);
169165 if (!data) {
170 DEBUG("Update for missing handle watch %d", watch);
166 g_debug("Update for missing handle watch %d", watch);
171167 goto cleanup;
172168 }
173169
226222
227223 data = gvir_event_handle_find(watch, &idx);
228224 if (!data) {
229 DEBUG("Remove of missing watch %d", watch);
230 goto cleanup;
231 }
232
233 DEBUG("Remove handle %d %d\n", watch, data->fd);
225 g_debug("Remove of missing watch %d", watch);
226 goto cleanup;
227 }
228
229 g_debug("Remove handle %d %d\n", watch, data->fd);
234230
235231 if (!data->source)
236232 goto cleanup;
252248 gvir_event_timeout_dispatch(void *opaque)
253249 {
254250 struct gvir_event_timeout *data = opaque;
255 DEBUG("Dispatch timeout %p %p %d %p\n", data, data->cb, data->timer, data->opaque);
251 g_debug("Dispatch timeout %p %p %d %p\n", data, data->cb, data->timer, data->opaque);
256252 (data->cb)(data->timer, data->opaque);
257253
258254 return TRUE;
282278
283279 g_ptr_array_add(timeouts, data);
284280
285 DEBUG("Add timeout %p %d %p %p %d\n", data, interval, cb, opaque, data->timer);
281 g_debug("Add timeout %p %d %p %p %d\n", data, interval, cb, opaque, data->timer);
286282
287283 ret = data->timer;
288284
328324
329325 data = gvir_event_timeout_find(timer, NULL);
330326 if (!data) {
331 DEBUG("Update of missing timer %d", timer);
332 goto cleanup;
333 }
334
335 DEBUG("Update timeout %p %d %d\n", data, timer, interval);
327 g_debug("Update of missing timer %d", timer);
328 goto cleanup;
329 }
330
331 g_debug("Update timeout %p %d %d\n", data, timer, interval);
336332
337333 if (interval >= 0) {
338334 if (data->source)
378374
379375 data = gvir_event_timeout_find(timer, &idx);
380376 if (!data) {
381 DEBUG("Remove of missing timer %d", timer);
382 goto cleanup;
383 }
384
385 DEBUG("Remove timeout %p %d\n", data, timer);
377 g_debug("Remove of missing timer %d", timer);
378 goto cleanup;
379 }
380
381 g_debug("Remove timeout %p %d\n", data, timer);
386382
387383 if (!data->source)
388384 goto cleanup;
419415
420416 g_once(&once, event_register_once, NULL);
421417 }
422
11 * libvirt-glib-event.h: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-glib-main.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2323 #include <config.h>
2424
2525 #include <stdlib.h>
26 #include <stdio.h>
2627 #include <libvirt/virterror.h>
2728
2829 #include "libvirt-glib-main.h"
29
30 gboolean debugFlag = FALSE;
31
32 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3330
3431 static void
3532 gvir_error_func(gpointer opaque G_GNUC_UNUSED,
3633 virErrorPtr err)
3734 {
38 DEBUG("Error: %s", err->message);
35 g_debug("Error: %s", err->message);
3936 }
4037
4138
5047 }
5148
5249
50 static void gvir_log_handler(const gchar *log_domain G_GNUC_UNUSED,
51 GLogLevelFlags log_level G_GNUC_UNUSED,
52 const gchar *message,
53 gpointer user_data)
54 {
55 if (user_data)
56 fprintf(stderr, "%s\n", message);
57 }
58
59
5360 gboolean gvir_init_check(int *argc G_GNUC_UNUSED,
5461 char ***argv G_GNUC_UNUSED,
5562 GError **err G_GNUC_UNUSED)
5663 {
57 char *debugEnv = getenv("LIBVIRT_GLIB_DEBUG");
58 if (debugEnv && *debugEnv && *debugEnv != '0')
59 debugFlag = 1;
60
6164 virSetErrorFunc(NULL, gvir_error_func);
6265 if (!g_thread_supported())
6366 g_thread_init(NULL);
6467
6568 virInitialize();
6669
70 /* GLib >= 2.31.0 debug is off by default, so we need to
71 * enable it. Older versions are on by default, so we need
72 * to disable it.
73 */
74 #if GLIB_CHECK_VERSION(2, 31, 0)
75 if (getenv("LIBVIRT_GLIB_DEBUG"))
76 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
77 gvir_log_handler, (void*)0x1);
78 #else
79 if (!getenv("LIBVIRT_GLIB_DEBUG"))
80 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
81 gvir_log_handler, NULL);
82 #endif
83
6784 return TRUE;
6885 }
69
11 * libvirt-glib-main.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
00 /*
11 * libvirt-glib.h: libvirt glib integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
0 LIBVIRT_GLIB_0.0.1 {
0 LIBVIRT_GLIB_0.0.4 {
11 global:
22 gvir_init;
33 gvir_init_check;
66 gvir_error_new;
77 gvir_error_new_valist;
88 gvir_error_new_literal;
9 gvir_set_error;
10 gvir_set_error_valist;
11 gvir_set_error_literal;
912
1013 local:
1114 *;
11
22 %define with_introspection 0
33 %define with_python 0
4 %define with_vala 0
45
56 %if 0%{?fedora} >= 15
67 %define with_introspection 1
1415 %if 0%{?rhel} && 0%{?rhel} < 7
1516 %define with_python 1
1617 %endif
17
18 %if 0%{with_introspection} && 0%{?fedora} > 15
19 %define with_vala 1
20 %endif
1821
1922 Name: libvirt-glib
20 Version: 0.0.2
23 Version: 0.0.4
2124 Release: 1%{?dist}%{?extra_release}
2225 Summary: libvirt glib integration for events
2326 Group: Development/Libraries
2730 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
2831
2932 BuildRequires: glib2-devel >= 2.10.0
30 BuildRequires: libvirt-devel >= 0.9.4
33 BuildRequires: libvirt-devel >= 0.9.7
3134 BuildRequires: python-devel
3235 %if %{with_introspection}
3336 BuildRequires: gobject-introspection-devel
3841 BuildRequires: libxml2-devel
3942 # Hack due to https://bugzilla.redhat.com/show_bug.cgi?id=613466
4043 BuildRequires: libtool
44 %if %{with_vala}
45 BuildRequires: vala-tools
46 %endif
4147
4248 %package devel
4349 Group: Development/Libraries
152158 %if %{with_introspection}
153159 %{_libdir}/girepository-1.0/LibvirtGLib-1.0.typelib
154160 %endif
161 %if %{with_vala}
162 %{_datadir}/vala/vapi/libvirt-glib-1.0.vapi
163 %endif
155164
156165 %files -n libvirt-gconfig
157166 %{_libdir}/libvirt-gconfig-1.0.so.*
158167 %if %{with_introspection}
159168 %{_libdir}/girepository-1.0/LibvirtGConfig-1.0.typelib
160169 %endif
170 %if %{with_vala}
171 %{_datadir}/vala/vapi/libvirt-gconfig-1.0.vapi
172 %endif
161173
162174 %files -n libvirt-gobject
163175 %{_libdir}/libvirt-gobject-1.0.so.*
164176 %if %{with_introspection}
165177 %{_libdir}/girepository-1.0/LibvirtGObject-1.0.typelib
178 %endif
179 %if %{with_vala}
180 %{_datadir}/vala/vapi/libvirt-gobject-1.0.deps
181 %{_datadir}/vala/vapi/libvirt-gobject-1.0.vapi
166182 %endif
167183
168184 %files devel
11
22 %define with_introspection 0
33 %define with_python 0
4 %define with_vala 0
45
56 %if 0%{?fedora} >= 15
67 %define with_introspection 1
1415 %if 0%{?rhel} && 0%{?rhel} < 7
1516 %define with_python 1
1617 %endif
17
18 %if 0%{with_introspection} && 0%{?fedora} > 15
19 %define with_vala 1
20 %endif
1821
1922 Name: @PACKAGE@
2023 Version: @VERSION@
2730 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
2831
2932 BuildRequires: glib2-devel >= 2.10.0
30 BuildRequires: libvirt-devel >= 0.9.4
33 BuildRequires: libvirt-devel >= 0.9.7
3134 BuildRequires: python-devel
3235 %if %{with_introspection}
3336 BuildRequires: gobject-introspection-devel
3841 BuildRequires: libxml2-devel
3942 # Hack due to https://bugzilla.redhat.com/show_bug.cgi?id=613466
4043 BuildRequires: libtool
44 %if %{with_vala}
45 BuildRequires: vala-tools
46 %endif
4147
4248 %package devel
4349 Group: Development/Libraries
152158 %if %{with_introspection}
153159 %{_libdir}/girepository-1.0/LibvirtGLib-1.0.typelib
154160 %endif
161 %if %{with_vala}
162 %{_datadir}/vala/vapi/libvirt-glib-1.0.vapi
163 %endif
155164
156165 %files -n libvirt-gconfig
157166 %{_libdir}/libvirt-gconfig-1.0.so.*
158167 %if %{with_introspection}
159168 %{_libdir}/girepository-1.0/LibvirtGConfig-1.0.typelib
160169 %endif
170 %if %{with_vala}
171 %{_datadir}/vala/vapi/libvirt-gconfig-1.0.vapi
172 %endif
161173
162174 %files -n libvirt-gobject
163175 %{_libdir}/libvirt-gobject-1.0.so.*
164176 %if %{with_introspection}
165177 %{_libdir}/girepository-1.0/LibvirtGObject-1.0.typelib
178 %endif
179 %if %{with_vala}
180 %{_datadir}/vala/vapi/libvirt-gobject-1.0.deps
181 %{_datadir}/vala/vapi/libvirt-gobject-1.0.vapi
166182 %endif
167183
168184 %files devel
5959 nodist_libvirt_gobject_1_0_la_SOURCES = \
6060 $(GOBJECT_GENERATED_FILES)
6161 libvirt_gobject_1_0_la_CFLAGS = \
62 -DG_LOG_DOMAIN="\"Libvirt.GObject\"" \
6263 -DDATADIR="\"$(datadir)\"" \
6364 -DLIBVIRT_GOBJECT_BUILD \
6465 $(COVERAGE_CFLAGS) \
6566 -I$(top_srcdir) \
67 $(GIO2_CFLAGS) \
68 $(GOBJECT2_CFLAGS) \
69 $(GTHREAD2_CFLAGS) \
6670 $(LIBVIRT_CFLAGS) \
67 $(GOBJECT2_CFLAGS) \
68 $(GIO2_CFLAGS) \
6971 $(LIBXML2_CFLAGS) \
7072 $(WARN_CFLAGS)
7173 libvirt_gobject_1_0_la_LIBADD = \
74 $(GIO2_LIBS) \
75 $(GOBJECT2_LIBS) \
76 $(GTHREAD2_LIBS) \
7277 $(LIBVIRT_LIBS) \
73 $(GOBJECT2_LIBS) \
74 $(GIO2_LIBS) \
7578 ../libvirt-glib/libvirt-glib-1.0.la \
7679 ../libvirt-gconfig/libvirt-gconfig-1.0.la \
7780 $(CYGWIN_EXTRA_LIBADD)
115118 if WITH_GOBJECT_INTROSPECTION
116119
117120 LibvirtGObject-1.0.gir: libvirt-gobject-1.0.la $(G_IR_SCANNER) Makefile.am
118 $(AM_V_GEN)PKG_CONFIG_PATH=$(top_builddir) $(G_IR_SCANNER) \
121 $(AM_V_GEN)$(G_IR_SCANNER) \
119122 --quiet \
120123 --warn-all \
121124 --namespace LibvirtGObject \
122125 --nsversion 1.0 \
123126 --include GObject-2.0 \
124127 --include Gio-2.0 \
125 --include LibvirtGLib-1.0 \
126 --include LibvirtGConfig-1.0 \
128 --include-uninstalled $(top_builddir)/libvirt-glib/LibvirtGLib-1.0.gir \
129 --include-uninstalled $(top_builddir)/libvirt-gconfig/LibvirtGConfig-1.0.gir \
127130 --identifier-prefix=GVir \
128131 --symbol-prefix=gvir \
132 --library=$(top_builddir)/libvirt-glib/libvirt-glib-1.0.la \
133 --library=$(top_builddir)/libvirt-gconfig/libvirt-gconfig-1.0.la \
129134 --library=$(builddir)/libvirt-gobject-1.0.la \
130 --add-include-path=$(top_builddir)/libvirt-glib \
131 --add-include-path=$(top_builddir)/libvirt-gconfig \
132135 --output $@ \
136 -I$(top_builddir) \
133137 -I$(top_srcdir) \
134 -I$(top_builddir) \
135 $(LIBXML2_CFLAGS) \
136138 --verbose \
137 --pkg=gobject-2.0 \
139 --c-include="libvirt-gobject/libvirt-gobject.h" \
138140 --pkg=gthread-2.0 \
139 --c-include="libvirt-gobject/libvirt-gobject.h" \
141 --pkg=libxml-2.0 \
140142 --pkg-export=libvirt-gobject-1.0 \
141143 $(srcdir)/libvirt-gobject.h \
142144 $(GOBJECT_SOURCE_FILES:%=$(srcdir)/%) \
178178 GIO2_LIBS = @GIO2_LIBS@
179179 GLIB2_CFLAGS = @GLIB2_CFLAGS@
180180 GLIB2_LIBS = @GLIB2_LIBS@
181 GLIB_MKENUMS = @GLIB_MKENUMS@
181182 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
182183 GOBJECT2_LIBS = @GOBJECT2_LIBS@
183184 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
186187 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
187188 GTHREAD2_LIBS = @GTHREAD2_LIBS@
188189 GTKDOC_CHECK = @GTKDOC_CHECK@
190 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
191 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
189192 GTKDOC_MKPDF = @GTKDOC_MKPDF@
190193 GTKDOC_REBASE = @GTKDOC_REBASE@
191194 G_IR_COMPILER = @G_IR_COMPILER@
364367 $(GOBJECT_GENERATED_FILES)
365368
366369 libvirt_gobject_1_0_la_CFLAGS = \
370 -DG_LOG_DOMAIN="\"Libvirt.GObject\"" \
367371 -DDATADIR="\"$(datadir)\"" \
368372 -DLIBVIRT_GOBJECT_BUILD \
369373 $(COVERAGE_CFLAGS) \
370374 -I$(top_srcdir) \
375 $(GIO2_CFLAGS) \
376 $(GOBJECT2_CFLAGS) \
377 $(GTHREAD2_CFLAGS) \
371378 $(LIBVIRT_CFLAGS) \
372 $(GOBJECT2_CFLAGS) \
373 $(GIO2_CFLAGS) \
374379 $(LIBXML2_CFLAGS) \
375380 $(WARN_CFLAGS)
376381
377382 libvirt_gobject_1_0_la_LIBADD = \
383 $(GIO2_LIBS) \
384 $(GOBJECT2_LIBS) \
385 $(GTHREAD2_LIBS) \
378386 $(LIBVIRT_LIBS) \
379 $(GOBJECT2_LIBS) \
380 $(GIO2_LIBS) \
381387 ../libvirt-glib/libvirt-glib-1.0.la \
382388 ../libvirt-gconfig/libvirt-gconfig-1.0.la \
383389 $(CYGWIN_EXTRA_LIBADD)
9971003 $^ | sed -e 's/g_vir/gvir/g' | sed -e 's/_VIR_/_/g' > $@
9981004
9991005 @WITH_GOBJECT_INTROSPECTION_TRUE@LibvirtGObject-1.0.gir: libvirt-gobject-1.0.la $(G_IR_SCANNER) Makefile.am
1000 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH=$(top_builddir) $(G_IR_SCANNER) \
1006 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(AM_V_GEN)$(G_IR_SCANNER) \
10011007 @WITH_GOBJECT_INTROSPECTION_TRUE@ --quiet \
10021008 @WITH_GOBJECT_INTROSPECTION_TRUE@ --warn-all \
10031009 @WITH_GOBJECT_INTROSPECTION_TRUE@ --namespace LibvirtGObject \
10041010 @WITH_GOBJECT_INTROSPECTION_TRUE@ --nsversion 1.0 \
10051011 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include GObject-2.0 \
10061012 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include Gio-2.0 \
1007 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include LibvirtGLib-1.0 \
1008 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include LibvirtGConfig-1.0 \
1013 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include-uninstalled $(top_builddir)/libvirt-glib/LibvirtGLib-1.0.gir \
1014 @WITH_GOBJECT_INTROSPECTION_TRUE@ --include-uninstalled $(top_builddir)/libvirt-gconfig/LibvirtGConfig-1.0.gir \
10091015 @WITH_GOBJECT_INTROSPECTION_TRUE@ --identifier-prefix=GVir \
10101016 @WITH_GOBJECT_INTROSPECTION_TRUE@ --symbol-prefix=gvir \
1017 @WITH_GOBJECT_INTROSPECTION_TRUE@ --library=$(top_builddir)/libvirt-glib/libvirt-glib-1.0.la \
1018 @WITH_GOBJECT_INTROSPECTION_TRUE@ --library=$(top_builddir)/libvirt-gconfig/libvirt-gconfig-1.0.la \
10111019 @WITH_GOBJECT_INTROSPECTION_TRUE@ --library=$(builddir)/libvirt-gobject-1.0.la \
1012 @WITH_GOBJECT_INTROSPECTION_TRUE@ --add-include-path=$(top_builddir)/libvirt-glib \
1013 @WITH_GOBJECT_INTROSPECTION_TRUE@ --add-include-path=$(top_builddir)/libvirt-gconfig \
10141020 @WITH_GOBJECT_INTROSPECTION_TRUE@ --output $@ \
1021 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_builddir) \
10151022 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_srcdir) \
1016 @WITH_GOBJECT_INTROSPECTION_TRUE@ -I$(top_builddir) \
1017 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(LIBXML2_CFLAGS) \
10181023 @WITH_GOBJECT_INTROSPECTION_TRUE@ --verbose \
1019 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=gobject-2.0 \
1024 @WITH_GOBJECT_INTROSPECTION_TRUE@ --c-include="libvirt-gobject/libvirt-gobject.h" \
10201025 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=gthread-2.0 \
1021 @WITH_GOBJECT_INTROSPECTION_TRUE@ --c-include="libvirt-gobject/libvirt-gobject.h" \
1026 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg=libxml-2.0 \
10221027 @WITH_GOBJECT_INTROSPECTION_TRUE@ --pkg-export=libvirt-gobject-1.0 \
10231028 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(srcdir)/libvirt-gobject.h \
10241029 @WITH_GOBJECT_INTROSPECTION_TRUE@ $(GOBJECT_SOURCE_FILES:%=$(srcdir)/%) \
00 /*
11 * libvirt-gobject-compat.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-connection.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_CONNECTION_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_CONNECTION, GVirConnectionPrivate))
127123 GVirConnection *conn = GVIR_CONNECTION(object);
128124 GVirConnectionPrivate *priv = conn->priv;
129125
130 DEBUG("Finalize GVirConnection=%p", conn);
126 g_debug("Finalize GVirConnection=%p", conn);
131127
132128 if (gvir_connection_is_open(conn))
133129 gvir_connection_close(conn);
229225 {
230226 GVirConnectionPrivate *priv;
231227
232 DEBUG("Init GVirConnection=%p", conn);
228 g_debug("Init GVirConnection=%p", conn);
233229
234230 priv = conn->priv = GVIR_CONNECTION_GET_PRIVATE(conn);
235231
260256 void *opaque)
261257 {
262258 gchar uuid[VIR_UUID_STRING_BUFLEN];
259 GHashTable *doms;
263260 GVirConnection *gconn = opaque;
264261 GVirDomain *gdom;
265262 GVirConnectionPrivate *priv = gconn->priv;
269266 return 0;
270267 }
271268
272 DEBUG("%s: %s event:%d, detail:%d", G_STRFUNC, uuid, event, detail);
273
274 g_mutex_lock(priv->lock);
275 gdom = g_hash_table_lookup(priv->domains, uuid);
269 g_debug("%s: %s event:%d, detail:%d", G_STRFUNC, uuid, event, detail);
270
271 g_mutex_lock(priv->lock);
272 doms = g_hash_table_ref(priv->domains);
273 gdom = g_hash_table_lookup(doms, uuid);
274 if (gdom != NULL)
275 g_object_ref(G_OBJECT(gdom));
276276 g_mutex_unlock(priv->lock);
277277
278278 if (gdom == NULL) {
279279 gdom = GVIR_DOMAIN(g_object_new(GVIR_TYPE_DOMAIN, "handle", dom, NULL));
280280
281281 g_mutex_lock(priv->lock);
282 g_hash_table_insert(priv->domains, (gpointer)gvir_domain_get_uuid(gdom), gdom);
282 g_hash_table_insert(doms, (gpointer)gvir_domain_get_uuid(gdom),
283 g_object_ref(G_OBJECT(gdom)));
283284 g_mutex_unlock(priv->lock);
284285 }
285286
296297 case VIR_DOMAIN_EVENT_UNDEFINED:
297298 if (detail == VIR_DOMAIN_EVENT_UNDEFINED_REMOVED) {
298299 g_mutex_lock(priv->lock);
299 g_hash_table_steal(priv->domains, uuid);
300 g_hash_table_remove(doms, uuid);
300301 g_mutex_unlock(priv->lock);
301302
302303 g_signal_emit(gconn, signals[VIR_DOMAIN_REMOVED], 0, gdom);
303 g_object_unref(gdom);
304304 } else
305305 g_warn_if_reached();
306306 break;
307307
308308 case VIR_DOMAIN_EVENT_STARTED:
309 if (detail == VIR_DOMAIN_EVENT_STARTED_BOOTED)
309 if (detail == VIR_DOMAIN_EVENT_STARTED_BOOTED) {
310 if (!virDomainIsPersistent(dom))
311 g_signal_emit(gconn, signals[VIR_DOMAIN_ADDED], 0, gdom);
310312 g_signal_emit_by_name(gdom, "started::booted");
311 else if (detail == VIR_DOMAIN_EVENT_STARTED_MIGRATED)
313 } else if (detail == VIR_DOMAIN_EVENT_STARTED_MIGRATED)
312314 g_signal_emit_by_name(gdom, "started::migrated");
313315 else if (detail == VIR_DOMAIN_EVENT_STARTED_RESTORED)
314316 g_signal_emit_by_name(gdom, "started::restored");
363365 g_signal_emit_by_name(gdom, "stopped::from-snapshot");
364366 else
365367 g_warn_if_reached();
368
369 if (virDomainIsPersistent(dom) != 1) {
370 g_mutex_lock(priv->lock);
371 g_hash_table_remove(doms, uuid);
372 g_mutex_unlock(priv->lock);
373
374 g_signal_emit(gconn, signals[VIR_DOMAIN_REMOVED], 0, gdom);
375 }
376 break;
377
378 case VIR_DOMAIN_EVENT_SHUTDOWN:
366379 break;
367380
368381 default:
369382 g_warn_if_reached();
370383 }
371384
385 g_object_unref(G_OBJECT(gdom));
386 g_hash_table_unref(doms);
372387 return 0;
373388 }
374389
388403
389404 g_mutex_lock(priv->lock);
390405 if (priv->conn) {
391 if (err)
392 *err = g_error_new(GVIR_CONNECTION_ERROR,
393 0,
394 "Connection %s is already open",
395 priv->uri);
406 g_set_error(err, GVIR_CONNECTION_ERROR,
407 0,
408 "Connection %s is already open",
409 priv->uri);
396410 g_mutex_unlock(priv->lock);
397411 return FALSE;
398412 }
399413
400414 if (!(priv->conn = virConnectOpen(priv->uri))) {
401 if (err)
402 *err = gvir_error_new(GVIR_CONNECTION_ERROR,
403 0,
404 "Unable to open %s",
405 priv->uri);
415 gvir_set_error(err, GVIR_CONNECTION_ERROR,
416 0,
417 "Unable to open %s",
418 priv->uri);
406419 g_mutex_unlock(priv->lock);
407420 return FALSE;
421 }
422
423 if (!priv->uri) {
424 char *uri = virConnectGetURI(priv->conn);
425 if (!uri) {
426 gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
427 0,
428 "Unable to get connection URI");
429 virConnectClose(priv->conn);
430 priv->conn = NULL;
431 g_mutex_unlock(priv->lock);
432 return FALSE;
433 }
434 priv->uri = g_strdup(uri);
435 free(uri);
408436 }
409437
410438 if (virConnectDomainEventRegister(priv->conn, domain_event_cb, conn, NULL) != -1)
452480 res = g_simple_async_result_new(G_OBJECT(conn),
453481 callback,
454482 user_data,
455 gvir_connection_open);
483 gvir_connection_open_async);
456484 g_simple_async_result_run_in_thread(res,
457485 gvir_connection_open_helper,
458486 G_PRIORITY_DEFAULT,
471499 GError **err)
472500 {
473501 g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE);
474 g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
475
476 if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
477 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
478 g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_open);
479 if (g_simple_async_result_propagate_error(simple, err))
480 return FALSE;
481 }
502 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(conn),
503 gvir_connection_open_async),
504 FALSE);
505
506 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err))
507 return FALSE;
482508
483509 return TRUE;
484510 }
498524 void gvir_connection_close(GVirConnection *conn)
499525 {
500526 GVirConnectionPrivate *priv = conn->priv;
501 DEBUG("Close GVirConnection=%p", conn);
527 g_debug("Close GVirConnection=%p", conn);
502528
503529 g_mutex_lock(priv->lock);
504530
541567 gint i;
542568
543569 if ((n = count_func(vconn)) < 0) {
544 if (err)
545 *err = gvir_error_new(GVIR_CONNECTION_ERROR,
546 0,
547 "Unable to count %s", name);
570 gvir_set_error(err, GVIR_CONNECTION_ERROR,
571 0,
572 "Unable to count %s", name);
548573 goto error;
549574 }
550575
554579
555580 lst = g_new(gchar *, n);
556581 if ((n = list_func(vconn, lst, n)) < 0) {
557 if (err)
558 *err = gvir_error_new(GVIR_CONNECTION_ERROR,
559 0,
560 "Unable to list %s %d", name, n);
582 gvir_set_error(err, GVIR_CONNECTION_ERROR,
583 0,
584 "Unable to list %s %d", name, n);
561585 goto error;
562586 }
563587 }
594618
595619 g_mutex_lock(priv->lock);
596620 if (!priv->conn) {
597 if (err)
598 *err = g_error_new(GVIR_CONNECTION_ERROR,
599 0,
600 "Connection is not open");
621 g_set_error_literal(err, GVIR_CONNECTION_ERROR,
622 0,
623 "Connection is not open");
601624 g_mutex_unlock(priv->lock);
602625 goto cleanup;
603626 }
610633 goto cleanup;
611634
612635 if ((nactive = virConnectNumOfDomains(vconn)) < 0) {
613 if (err)
614 *err = gvir_error_new(GVIR_CONNECTION_ERROR,
615 0,
616 "Unable to count domains");
636 gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
637 0,
638 "Unable to count domains");
617639 goto cleanup;
618640 }
619641 if (nactive) {
622644
623645 active = g_new(gint, nactive);
624646 if ((nactive = virConnectListDomains(vconn, active, nactive)) < 0) {
625 if (err)
626 *err = gvir_error_new(GVIR_CONNECTION_ERROR,
627 0,
628 "Unable to list domains");
647 gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
648 0,
649 "Unable to list domains");
629650 goto cleanup;
630651 }
631652 }
726747
727748 g_mutex_lock(priv->lock);
728749 if (!priv->conn) {
729 if (err)
730 *err = g_error_new(GVIR_CONNECTION_ERROR,
731 0,
732 "Connection is not open");
750 g_set_error_literal(err, GVIR_CONNECTION_ERROR,
751 0,
752 "Connection is not open");
733753 g_mutex_unlock(priv->lock);
734754 goto cleanup;
735755 }
866886 res = g_simple_async_result_new(G_OBJECT(conn),
867887 callback,
868888 user_data,
869 gvir_connection_fetch_domains);
889 gvir_connection_fetch_domains_async);
870890 g_simple_async_result_run_in_thread(res,
871891 gvir_connection_fetch_domains_helper,
872892 G_PRIORITY_DEFAULT,
884904 GError **err)
885905 {
886906 g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE);
887 g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
888
889 if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
890 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
891 g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_fetch_domains);
892 if (g_simple_async_result_propagate_error(simple, err))
893 return FALSE;
894 }
907 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(conn),
908 gvir_connection_fetch_domains_async),
909 FALSE);
910
911 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err))
912 return FALSE;
895913
896914 return TRUE;
897915 }
927945 res = g_simple_async_result_new(G_OBJECT(conn),
928946 callback,
929947 user_data,
930 gvir_connection_fetch_storage_pools);
948 gvir_connection_fetch_storage_pools_async);
931949 g_simple_async_result_run_in_thread(res,
932950 gvir_connection_fetch_pools_helper,
933951 G_PRIORITY_DEFAULT,
945963 GError **err)
946964 {
947965 g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE);
948 g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
949
950 if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
951 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
952 g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
953 gvir_connection_fetch_storage_pools);
954 if (g_simple_async_result_propagate_error(simple, err))
955 return FALSE;
956 }
966 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(conn),
967 gvir_connection_fetch_storage_pools_async),
968 FALSE);
969
970 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err))
971 return FALSE;
957972
958973 return TRUE;
959974 }
12091224 handle = virDomainDefineXML(priv->conn, xml);
12101225 g_free(xml);
12111226 if (!handle) {
1212 if (err)
1213 *err = gvir_error_new_literal(GVIR_CONNECTION_ERROR,
1214 0,
1215 "Failed to create domain");
1227 gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
1228 0,
1229 "Failed to create domain");
12161230 return NULL;
12171231 }
12181232
12571271 handle = virDomainCreateXML(priv->conn, xml, flags);
12581272 g_free(xml);
12591273 if (!handle) {
1260 if (err)
1261 *err = gvir_error_new_literal(GVIR_CONNECTION_ERROR,
1262 0,
1263 "Failed to create domain");
1274 gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
1275 0,
1276 "Failed to create domain");
12641277 return NULL;
12651278 }
12661279
13021315 g_return_val_if_fail(xml != NULL, NULL);
13031316
13041317 if (!(handle = virStoragePoolDefineXML(priv->conn, xml, flags))) {
1305 if (err)
1306 *err = gvir_error_new_literal(GVIR_CONNECTION_ERROR,
1307 flags,
1308 "Failed to create storage pool");
1318 gvir_set_error_literal(err, GVIR_CONNECTION_ERROR,
1319 flags,
1320 "Failed to create storage pool");
13091321 return NULL;
13101322 }
13111323
00 /*
11 * libvirt-gobject-connection.h: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
00 /*
11 * libvirt-gobject-domain-device-private.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
00 /*
11 * libvirt-gobject-domain-device.c: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-gobject/libvirt-gobject.h"
2929
3030 #include "libvirt-gobject/libvirt-gobject-domain-device-private.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_DOMAIN_DEVICE_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_DOMAIN_DEVICE, GVirDomainDevicePrivate))
9288 GVirDomainDevice *self = GVIR_DOMAIN_DEVICE(object);
9389 GVirDomainDevicePrivate *priv = self->priv;
9490
95 DEBUG("Finalize GVirDomainDevice=%p", self);
91 g_debug("Finalize GVirDomainDevice=%p", self);
9692
9793 g_clear_object(&priv->domain);
9894
122118
123119 static void gvir_domain_device_init(GVirDomainDevice *self)
124120 {
125 DEBUG("Init GVirDomainDevice=%p", self);
121 g_debug("Init GVirDomainDevice=%p", self);
126122
127123 self->priv = GVIR_DOMAIN_DEVICE_GET_PRIVATE(self);
128124 }
00 /*
11 * libvirt-gobject-domain-device.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
00 /*
11 * libvirt-gobject-domain-disk.c: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2929 #include "libvirt-gobject-compat.h"
3030
3131 #include "libvirt-gobject/libvirt-gobject-domain-device-private.h"
32
33 extern gboolean debugFlag;
34
35 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3632
3733 #define GVIR_DOMAIN_DISK_GET_PRIVATE(obj) \
3834 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_DOMAIN_DISK, GVirDomainDiskPrivate))
10298 GVirDomainDisk *self = GVIR_DOMAIN_DISK(object);
10399 GVirDomainDiskPrivate *priv = self->priv;
104100
105 DEBUG("Finalize GVirDomainDisk=%p", self);
101 g_debug("Finalize GVirDomainDisk=%p", self);
106102
107103 g_free(priv->path);
108104
132128
133129 static void gvir_domain_disk_init(GVirDomainDisk *self)
134130 {
135 DEBUG("Init GVirDomainDisk=%p", self);
131 g_debug("Init GVirDomainDisk=%p", self);
136132
137133 self->priv = GVIR_DOMAIN_DISK_GET_PRIVATE(self);
138134 }
178174 handle = gvir_domain_device_get_domain_handle(GVIR_DOMAIN_DEVICE(self));
179175
180176 if (virDomainBlockStats(handle, priv->path, &stats, sizeof (stats)) < 0) {
181 if (err)
182 *err = gvir_error_new_literal(GVIR_DOMAIN_DISK_ERROR,
183 0,
184 "Unable to get domain disk stats");
177 gvir_set_error_literal(err, GVIR_DOMAIN_DISK_ERROR,
178 0,
179 "Unable to get domain disk stats");
185180 goto end;
186181 }
187182
00 /*
11 * libvirt-gobject-domain-disk.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
00 /*
11 * libvirt-gobject-domain-interface.c: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2929 #include "libvirt-gobject-compat.h"
3030
3131 #include "libvirt-gobject/libvirt-gobject-domain-device-private.h"
32
33 extern gboolean debugFlag;
34
35 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3632
3733 #define GVIR_DOMAIN_INTERFACE_GET_PRIVATE(obj) \
3834 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_DOMAIN_INTERFACE, GVirDomainInterfacePrivate))
10298 GVirDomainInterface *self = GVIR_DOMAIN_INTERFACE(object);
10399 GVirDomainInterfacePrivate *priv = self->priv;
104100
105 DEBUG("Finalize GVirDomainInterface=%p", self);
101 g_debug("Finalize GVirDomainInterface=%p", self);
106102
107103 g_free(priv->path);
108104
132128
133129 static void gvir_domain_interface_init(GVirDomainInterface *self)
134130 {
135 DEBUG("Init GVirDomainInterface=%p", self);
131 g_debug("Init GVirDomainInterface=%p", self);
136132
137133 self->priv = GVIR_DOMAIN_INTERFACE_GET_PRIVATE(self);
138134 }
178174 handle = gvir_domain_device_get_domain_handle(GVIR_DOMAIN_DEVICE(self));
179175
180176 if (virDomainInterfaceStats(handle, priv->path, &stats, sizeof (stats)) < 0) {
181 if (err)
182 *err = gvir_error_new_literal(GVIR_DOMAIN_INTERFACE_ERROR,
183 0,
184 "Unable to get domain interface stats");
177 gvir_set_error_literal(err, GVIR_DOMAIN_INTERFACE_ERROR,
178 0,
179 "Unable to get domain interface stats");
185180 goto end;
186181 }
187182
00 /*
11 * libvirt-gobject-domain-interface.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-domain_snapshot.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_DOMAIN_SNAPSHOT_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_DOMAIN_SNAPSHOT, GVirDomainSnapshotPrivate))
104100 GVirDomainSnapshot *conn = GVIR_DOMAIN_SNAPSHOT(object);
105101 GVirDomainSnapshotPrivate *priv = conn->priv;
106102
107 DEBUG("Finalize GVirDomainSnapshot=%p", conn);
103 g_debug("Finalize GVirDomainSnapshot=%p", conn);
108104
109105 virDomainSnapshotFree(priv->handle);
110106
139135
140136 static void gvir_domain_snapshot_init(GVirDomainSnapshot *conn)
141137 {
142 GVirDomainSnapshotPrivate *priv;
143
144 DEBUG("Init GVirDomainSnapshot=%p", conn);
145
146 priv = conn->priv = GVIR_DOMAIN_SNAPSHOT_GET_PRIVATE(conn);
147
148 memset(priv, 0, sizeof(*priv));
138 g_debug("Init GVirDomainSnapshot=%p", conn);
139
140 conn->priv = GVIR_DOMAIN_SNAPSHOT_GET_PRIVATE(conn);
149141 }
150142
151143 typedef struct virDomainSnapshot GVirDomainSnapshotHandle;
203195 gchar *xml;
204196
205197 if (!(xml = virDomainSnapshotGetXMLDesc(priv->handle, flags))) {
206 *err = gvir_error_new_literal(GVIR_DOMAIN_SNAPSHOT_ERROR,
207 0,
208 "Unable to get domain_snapshot XML config");
198 gvir_set_error_literal(err, GVIR_DOMAIN_SNAPSHOT_ERROR,
199 0,
200 "Unable to get domain_snapshot XML config");
209201 return NULL;
210202 }
211203
00 /*
11 * libvirt-gobject-domain_snapshot.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-domain.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
3131
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
35
3632 #define GVIR_DOMAIN_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_DOMAIN, GVirDomainPrivate))
3834
4844 enum {
4945 PROP_0,
5046 PROP_HANDLE,
47 PROP_PERSISTENT,
5148 };
5249
5350 enum {
8380 g_value_set_boxed(value, priv->handle);
8481 break;
8582
83 case PROP_PERSISTENT:
84 g_value_set_boolean(value, gvir_domain_get_persistent (conn));
85 break;
86
8687 default:
8788 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
8889 }
115116 GVirDomain *conn = GVIR_DOMAIN(object);
116117 GVirDomainPrivate *priv = conn->priv;
117118
118 DEBUG("Finalize GVirDomain=%p", conn);
119 g_debug("Finalize GVirDomain=%p", conn);
119120
120121 virDomainFree(priv->handle);
121122
159160 G_PARAM_STATIC_NICK |
160161 G_PARAM_STATIC_BLURB));
161162
163 g_object_class_install_property(object_class,
164 PROP_PERSISTENT,
165 g_param_spec_boolean("persistent",
166 "Persistent",
167 "If domain is persistent",
168 TRUE,
169 G_PARAM_READABLE |
170 G_PARAM_STATIC_NAME |
171 G_PARAM_STATIC_NICK |
172 G_PARAM_STATIC_BLURB));
173
162174 signals[VIR_STARTED] = g_signal_new("started",
163175 G_OBJECT_CLASS_TYPE(object_class),
164176 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE |
214226
215227 static void gvir_domain_init(GVirDomain *conn)
216228 {
217 GVirDomainPrivate *priv;
218
219 DEBUG("Init GVirDomain=%p", conn);
220
221 priv = conn->priv = GVIR_DOMAIN_GET_PRIVATE(conn);
222
223 memset(priv, 0, sizeof(*priv));
229 g_debug("Init GVirDomain=%p", conn);
230
231 conn->priv = GVIR_DOMAIN_GET_PRIVATE(conn);
224232 }
225233
226234 typedef struct virDomain GVirDomainHandle;
286294 gint ret;
287295
288296 if ((ret = virDomainGetID(priv->handle)) < 0) {
289 if (err)
290 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
291 0,
292 "Unable to get ID for domain");
297 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
298 0,
299 "Unable to get ID for domain");
293300 }
294301 return ret;
295302 }
312319 else
313320 ret = virDomainCreate(priv->handle);
314321 if (ret < 0) {
315 if (err)
316 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
317 0,
318 "Unable to start domain");
322 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
323 0,
324 "Unable to start domain");
319325 return FALSE;
320326 }
321327
334340 GVirDomainPrivate *priv = dom->priv;
335341
336342 if (virDomainResume(priv->handle) < 0) {
337 if (err)
338 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
339 0,
340 "Unable to resume domain");
343 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
344 0,
345 "Unable to resume domain");
341346 return FALSE;
342347 }
343348
361366 else
362367 ret = virDomainDestroy(priv->handle);
363368 if (ret < 0) {
364 if (err)
365 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
366 0,
367 "Unable to stop domain");
369 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
370 0,
371 "Unable to stop domain");
368372 return FALSE;
369373 }
370374
388392 else
389393 ret = virDomainUndefine(priv->handle);
390394 if (ret < 0) {
391 if (err)
392 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
393 0,
394 "Unable to delete domain");
395 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
396 0,
397 "Unable to delete domain");
395398 return FALSE;
396399 }
397400
410413 GVirDomainPrivate *priv = dom->priv;
411414
412415 if (virDomainShutdown(priv->handle) < 0) {
413 if (err)
414 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
415 0,
416 "Unable to shutdown domain");
416 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
417 0,
418 "Unable to shutdown domain");
417419 return FALSE;
418420 }
419421
432434 GVirDomainPrivate *priv = dom->priv;
433435
434436 if (virDomainReboot(priv->handle, flags) < 0) {
435 if (err)
436 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
437 0,
438 "Unable to reboot domain");
437 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
438 0,
439 "Unable to reboot domain");
439440 return FALSE;
440441 }
441442
456457 gchar *xml;
457458
458459 if (!(xml = virDomainGetXMLDesc(priv->handle, flags))) {
459 if (err)
460 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
461 0,
462 "Unable to get domain XML config");
460 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
461 0,
462 "Unable to get domain XML config");
463463 return NULL;
464464 }
465465
495495 GVirDomainPrivate *priv = domain->priv;
496496
497497 g_return_val_if_fail(GVIR_IS_DOMAIN (domain), FALSE);
498 g_return_val_if_fail(GVIR_IS_CONFIG_DOMAIN (conf), FALSE);
498 g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN (conf), FALSE);
499499 g_return_val_if_fail(err == NULL || *err == NULL, FALSE);
500500
501501 xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(conf));
503503 g_return_val_if_fail(xml != NULL, FALSE);
504504
505505 if ((conn = virDomainGetConnect(priv->handle)) == NULL) {
506 if (err != NULL)
507 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
508 0,
509 "Failed to get domain connection");
506 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
507 0,
508 "Failed to get domain connection");
510509 g_free (xml);
511510
512511 return FALSE;
516515 g_free (xml);
517516
518517 if (handle == NULL) {
519 if (err != NULL)
520 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
521 0,
522 "Failed to set "
523 "domain configuration");
518 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
519 0,
520 "Failed to set "
521 "domain configuration");
524522 return FALSE;
525523 }
526524
528526 virDomainFree(handle);
529527
530528 if (g_strcmp0 (uuid, priv->uuid) != 0) {
531 if (err != NULL)
532 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
533 0,
534 "Failed to set "
535 "domain configuration");
529 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
530 0,
531 "Failed to set "
532 "domain configuration");
536533
537534 return FALSE;
538535 }
553550 GVirDomainInfo *ret;
554551
555552 if (virDomainGetInfo(priv->handle, &info) < 0) {
556 if (err)
557 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
558 0,
559 "Unable to get domain info");
553 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
554 0,
555 "Unable to get domain info");
560556 return NULL;
561557 }
562558
598594 st,
599595 monitor_id,
600596 flags))) {
601 if (err)
602 *err = gvir_error_new_literal(GVIR_DOMAIN_ERROR,
603 0,
604 "Unable to take a screenshot");
597 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
598 0,
599 "Unable to take a screenshot");
605600 goto end;
606601 }
607602 end:
609604 virStreamFree(st);
610605 return mime;
611606 }
607
608
609 /**
610 * gvir_domain_open_console:
611 * @dom: (transfer none): the domain
612 * @devname: (transfer none)(allow-none): the device name
613 * @stream: (transfer none): stream to use as output
614 * @flags: extra flags, currently unused
615 *
616 * Open a text console for the domain @dom, connecting it to the
617 * stream @stream. If @devname is NULL, the default console will
618 * be opened, otherwise @devname can be used to specify a non-default
619 * console device.
620 *
621 * Returns: TRUE if the console was opened, FALSE otherwise.
622 */
623 gboolean gvir_domain_open_console(GVirDomain *dom,
624 GVirStream *stream,
625 const gchar *devname,
626 guint flags,
627 GError **err)
628 {
629 GVirDomainPrivate *priv;
630 virStreamPtr st = NULL;
631 gboolean ret = FALSE;
632
633 g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE);
634 g_return_val_if_fail(GVIR_IS_STREAM(stream), FALSE);
635
636 priv = dom->priv;
637 g_object_get(stream, "handle", &st, NULL);
638
639 if (virDomainOpenConsole(priv->handle,
640 devname,
641 st,
642 flags) < 0) {
643 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
644 0,
645 "Unable to open console");
646 goto cleanup;
647 }
648
649 ret = TRUE;
650 cleanup:
651 if (st != NULL)
652 virStreamFree(st);
653 return ret;
654 }
655
656
657 /**
658 * gvir_domain_open_graphics:
659 * @dom: the domain
660 * @idx: the graphics index
661 * @fd: pre-opened socket pair
662 * @flags: extra flags, currently unused
663 *
664 * Open a connection to the local graphics display, connecting it to the
665 * socket pair file descriptor passed in as @fd.
666 *
667 * Returns: TRUE if the graphics connection was opened, FALSE otherwise.
668 */
669 gboolean gvir_domain_open_graphics(GVirDomain *dom,
670 guint idx,
671 int fd,
672 unsigned int flags,
673 GError **err)
674 {
675 GVirDomainPrivate *priv;
676 gboolean ret = FALSE;
677
678 g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE);
679
680 priv = dom->priv;
681
682 if (virDomainOpenGraphics(priv->handle,
683 idx,
684 fd,
685 flags) < 0) {
686 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
687 0,
688 "Unable to open graphics");
689 goto cleanup;
690 }
691
692 ret = TRUE;
693 cleanup:
694 return ret;
695 }
696
697 /**
698 * gir_domain_suspend:
699 * @dom: the domain to suspend
700 * @err: Place-holder for possible errors
701 *
702 * Suspends an active domain, the process is frozen without further access to
703 * CPU resources and I/O but the memory used by the domain at the hypervisor
704 * level will stay allocated. Use gvir_domain_resume() to reactivate the domain.
705 *
706 * Returns: TRUE if domain was suspended successfully, FALSE otherwise.
707 */
708 gboolean gvir_domain_suspend (GVirDomain *dom,
709 GError **err)
710 {
711 gboolean ret = FALSE;
712
713 g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE);
714
715 if (virDomainSuspend(dom->priv->handle) < 0) {
716 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
717 0,
718 "Unable to suspend domain");
719 goto cleanup;
720 }
721
722 ret = TRUE;
723 cleanup:
724 return ret;
725 }
726
727 /**
728 * gvir_domain_save:
729 * @dom: the domain to save and suspend
730 * @flags: extra flags, currently unused
731 * @err: Place-holder for possible errors
732 *
733 * Just like #gvir_domain_suspend but also saves the state of the domain on disk
734 * and therefore makes it possible to restore the domain to its previous state
735 * even after shutdown/reboot of host machine.
736 *
737 * Returns: TRUE if domain was saved and suspended successfully, FALSE otherwise.
738 */
739 gboolean gvir_domain_save (GVirDomain *dom,
740 unsigned int flags,
741 GError **err)
742 {
743 g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE);
744
745 if (virDomainManagedSave(dom->priv->handle, flags) < 0) {
746 gvir_set_error_literal(err, GVIR_DOMAIN_ERROR,
747 0,
748 "Unable to save and suspend domain");
749 return FALSE;
750 }
751
752 return TRUE;
753 }
754
755 typedef struct {
756 guint flags;
757 } DomainSaveData;
758
759 static void domain_save_data_free(DomainSaveData *data)
760 {
761 g_slice_free (DomainSaveData, data);
762 }
763
764 static void
765 gvir_domain_save_helper(GSimpleAsyncResult *res,
766 GObject *object,
767 GCancellable *cancellable G_GNUC_UNUSED)
768 {
769 GVirDomain *dom = GVIR_DOMAIN(object);
770 DomainSaveData *data;
771 GError *err = NULL;
772
773 data = g_simple_async_result_get_op_res_gpointer (res);
774
775 if (!gvir_domain_save(dom, data->flags, &err))
776 g_simple_async_result_take_error(res, err);
777 }
778
779 /**
780 * gir_domain_save_async:
781 * @dom: the domain to save and suspend
782 * @flags: extra flags, currently unused
783 * @cancellable: (allow-none)(transfer none): cancellation object
784 * @callback: (scope async): completion callback
785 * @user_data: (closure): opaque data for callback
786 *
787 * Asynchronous variant of #gvir_domain_save.
788 */
789 void gvir_domain_save_async (GVirDomain *dom,
790 unsigned int flags,
791 GCancellable *cancellable,
792 GAsyncReadyCallback callback,
793 gpointer user_data)
794 {
795 GSimpleAsyncResult *res;
796 DomainSaveData *data;
797
798 g_return_if_fail(GVIR_IS_DOMAIN(dom));
799
800 data = g_slice_new0(DomainSaveData);
801 data->flags = flags;
802
803 res = g_simple_async_result_new(G_OBJECT(dom),
804 callback,
805 user_data,
806 gvir_domain_save_async);
807 g_simple_async_result_set_op_res_gpointer (res, data, (GDestroyNotify) domain_save_data_free);
808 g_simple_async_result_run_in_thread(res,
809 gvir_domain_save_helper,
810 G_PRIORITY_DEFAULT,
811 cancellable);
812 g_object_unref(res);
813 }
814
815 /**
816 * gir_domain_save_finish:
817 * @dom: the domain to save and suspend
818 * @result: (transfer none): async method result
819 * @err: Place-holder for possible errors
820 *
821 * Finishes the operation started by #gvir_domain_save_async.
822 *
823 * Returns: TRUE if domain was saved and suspended successfully, FALSE otherwise.
824 */
825 gboolean gvir_domain_save_finish (GVirDomain *dom,
826 GAsyncResult *result,
827 GError **err)
828 {
829 g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE);
830 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(dom),
831 gvir_domain_save_async),
832 FALSE);
833
834 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err))
835 return FALSE;
836
837 return TRUE;
838 }
839
840 /**
841 * gvir_domain_get_persistent:
842 * @dom: the domain
843 *
844 * Returns: TRUE if domain is persistent, FALSE otherwise.
845 */
846 gboolean gvir_domain_get_persistent(GVirDomain *dom)
847 {
848 g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE);
849
850 return virDomainIsPersistent(dom->priv->handle);
851 }
00 /*
11 * libvirt-gobject-domain.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
7979 } GVirDomainState;
8080
8181
82 typedef enum {
83 GVIR_DOMAIN_START_NONE = 0,
84 GVIR_DOMAIN_START_PAUSED = (1 << 0),
85 GVIR_DOMAIN_START_AUTODESTROY = (1 << 1),
86 GVIR_DOMAIN_START_BYPASS_CACHE = (1 << 2),
87 GVIR_DOMAIN_START_FORCE_BOOT = (1 << 3),
88 } GVirDomainStartFlags;
89
8290 typedef struct _GVirDomainInfo GVirDomainInfo;
8391 struct _GVirDomainInfo
8492 {
132140 guint flags,
133141 GError **err);
134142
143 gboolean gvir_domain_open_console(GVirDomain *dom,
144 GVirStream *stream,
145 const gchar *devname,
146 guint flags,
147 GError **err);
148
149 gboolean gvir_domain_open_graphics(GVirDomain *dom,
150 guint idx,
151 int fd,
152 unsigned int flags,
153 GError **err);
154
155 gboolean gvir_domain_suspend (GVirDomain *dom,
156 GError **err);
157 gboolean gvir_domain_save (GVirDomain *dom,
158 unsigned int flags,
159 GError **err);
160 void gvir_domain_save_async (GVirDomain *dom,
161 unsigned int flags,
162 GCancellable *cancellable,
163 GAsyncReadyCallback callback,
164 gpointer user_data);
165 gboolean gvir_domain_save_finish (GVirDomain *dom,
166 GAsyncResult *result,
167 GError **err);
168 gboolean gvir_domain_get_persistent(GVirDomain *dom);
169
135170 G_END_DECLS
136171
137172 #endif /* __LIBVIRT_GOBJECT_DOMAIN_H__ */
00 /*
11 * libvirt-gobject-input-stream.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-input-stream.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define gvir_input_stream_get_type _gvir_input_stream_get_type
3733 G_DEFINE_TYPE(GVirInputStream, gvir_input_stream, G_TYPE_INPUT_STREAM);
5349 gsize count;
5450 };
5551
56 static void gvir_input_stream_get_property(GObject *object,
57 guint prop_id,
58 GValue *value,
52 static void gvir_input_stream_get_property(GObject *object,
53 guint prop_id,
54 GValue *value,
5955 GParamSpec *pspec)
6056 {
6157 GVirInputStream *stream = GVIR_INPUT_STREAM(object);
7066 }
7167 }
7268
73 static void gvir_input_stream_set_property(GObject *object,
74 guint prop_id,
69 static void gvir_input_stream_set_property(GObject *object,
70 guint prop_id,
7571 const GValue *value,
76 GParamSpec *pspec)
72 GParamSpec *pspec)
7773 {
7874 GVirInputStream *stream = GVIR_INPUT_STREAM(object);
7975
9187 {
9288 GVirInputStream *stream = GVIR_INPUT_STREAM(object);
9389
94 DEBUG("Finalize input stream GVirStream=%p", stream->priv->stream);
90 g_debug("Finalize input stream GVirStream=%p", stream->priv->stream);
9591 stream->priv->stream = NULL; // unowned
9692
9793 if (G_OBJECT_CLASS(gvir_input_stream_parent_class)->finalize)
9894 (*G_OBJECT_CLASS(gvir_input_stream_parent_class)->finalize)(object);
9995 }
10096
101 static void
102 gvir_input_stream_read_ready (G_GNUC_UNUSED virStreamPtr st,
103 int events, void *opaque)
104 {
105 GVirInputStream *stream = GVIR_INPUT_STREAM(opaque);
106 GVirInputStreamPrivate *priv = stream->priv;
107 GSimpleAsyncResult *simple;
97 static gboolean
98 gvir_input_stream_read_ready(GVirStream *stream,
99 GVirStreamIOCondition cond,
100 void *opaque)
101 {
102 GVirInputStream *input_stream = GVIR_INPUT_STREAM(opaque);
103 GVirInputStreamPrivate *priv = input_stream->priv;
104 GSimpleAsyncResult *simple = priv->result;
108105 GError *error = NULL;
109106 gssize result;
110107
111 g_return_if_fail(events & VIR_STREAM_EVENT_READABLE);
112
113 result = gvir_stream_receive(priv->stream, priv->buffer, priv->count,
108 if (!(cond & GVIR_STREAM_IO_CONDITION_READABLE)) {
109 g_warn_if_reached();
110 g_simple_async_result_set_error(simple,
111 G_IO_ERROR,
112 G_IO_ERROR_INVALID_ARGUMENT,
113 "%s",
114 "Expected stream to be readable");
115 goto cleanup;
116 }
117
118 result = gvir_stream_receive(stream, priv->buffer, priv->count,
114119 priv->cancellable, &error);
115120
116121 if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
117122 g_warn_if_reached();
118 return;
119 }
120
121 simple = stream->priv->result;
122 stream->priv->result = NULL;
123 g_simple_async_result_set_error(simple,
124 G_IO_ERROR,
125 G_IO_ERROR_INVALID_ARGUMENT,
126 "%s",
127 "Expected stream to be readable");
128 goto cleanup;
129 }
123130
124131 if (result >= 0)
125132 g_simple_async_result_set_op_res_gssize(simple, result);
128135 g_simple_async_result_take_error(simple, error);
129136
130137 if (priv->cancellable) {
131 g_object_unref(stream->priv->cancellable);
138 g_object_unref(priv->cancellable);
132139 priv->cancellable = NULL;
133140 }
134141
142 cleanup:
143 priv->result = NULL;
135144 g_simple_async_result_complete(simple);
136145 g_object_unref(simple);
137
138 return;
139 }
140
141 static void gvir_input_stream_read_async(GInputStream *stream,
142 void *buffer,
143 gsize count,
144 G_GNUC_UNUSED int io_priority,
145 GCancellable *cancellable,
146 GAsyncReadyCallback callback,
147 gpointer user_data)
146 return FALSE;
147 }
148
149 static void gvir_input_stream_read_async(GInputStream *stream,
150 void *buffer,
151 gsize count,
152 int io_priority G_GNUC_UNUSED,
153 GCancellable *cancellable,
154 GAsyncReadyCallback callback,
155 gpointer user_data)
148156 {
149157 GVirInputStream *input_stream = GVIR_INPUT_STREAM(stream);
150 virStreamPtr handle;
151158
152159 g_return_if_fail(GVIR_IS_INPUT_STREAM(stream));
153160 g_return_if_fail(input_stream->priv->result == NULL);
154161
155 g_object_get(input_stream->priv->stream, "handle", &handle, NULL);
156
157 if (virStreamEventAddCallback(handle, VIR_STREAM_EVENT_READABLE,
158 gvir_input_stream_read_ready, stream, NULL) < 0) {
159 g_simple_async_report_error_in_idle(G_OBJECT(stream),
160 callback,
161 user_data,
162 G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
163 "Couldn't add event callback %s",
164 G_STRFUNC);
165 goto end;
166 }
162 gvir_stream_add_watch_full(input_stream->priv->stream,
163 G_PRIORITY_DEFAULT,
164 GVIR_STREAM_IO_CONDITION_READABLE,
165 gvir_input_stream_read_ready,
166 g_object_ref(stream),
167 (GDestroyNotify)g_object_unref);
167168
168169 input_stream->priv->result =
169170 g_simple_async_result_new(G_OBJECT(stream), callback, user_data,
173174 input_stream->priv->cancellable = cancellable;
174175 input_stream->priv->buffer = buffer;
175176 input_stream->priv->count = count;
176
177 end:
178 virStreamFree(handle);
179 }
180
181
182 static gssize gvir_input_stream_read_finish(GInputStream *stream,
183 GAsyncResult *result,
184 G_GNUC_UNUSED GError **error)
177 }
178
179
180 static gssize gvir_input_stream_read_finish(GInputStream *stream,
181 GAsyncResult *result,
182 GError **error G_GNUC_UNUSED)
185183 {
186184 GVirInputStream *input_stream = GVIR_INPUT_STREAM(stream);
187185 GSimpleAsyncResult *simple;
189187 gssize count;
190188
191189 g_return_val_if_fail(GVIR_IS_INPUT_STREAM(stream), -1);
190 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(stream),
191 gvir_input_stream_read_async),
192 -1);
192193 g_object_get(input_stream->priv->stream, "handle", &handle, NULL);
193194
194195 simple = G_SIMPLE_ASYNC_RESULT(result);
195
196 g_warn_if_fail(g_simple_async_result_get_source_tag(simple) == gvir_input_stream_read_async);
197196
198197 count = g_simple_async_result_get_op_res_gssize(simple);
199198
232231 stream->priv = G_TYPE_INSTANCE_GET_PRIVATE(stream, GVIR_TYPE_INPUT_STREAM, GVirInputStreamPrivate);
233232 }
234233
235 GVirInputStream* _gvir_input_stream_new(GVirStream *stream)
234 GVirInputStream *_gvir_input_stream_new(GVirStream *stream)
236235 {
237236 return GVIR_INPUT_STREAM(g_object_new(GVIR_TYPE_INPUT_STREAM, "stream", stream, NULL));
238237 }
00 /*
11 * libvirt-gobject-input-stream.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
3232
3333 G_BEGIN_DECLS
3434
35 #define GVIR_TYPE_INPUT_STREAM (_gvir_input_stream_get_type ())
36 #define GVIR_INPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
37 GVIR_TYPE_INPUT_STREAM, GVirInputStream))
38 #define GVIR_INPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \
39 GVIR_TYPE_INPUT_STREAM, GVirInputStreamClass))
40 #define GVIR_IS_INPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
41 GVIR_TYPE_INPUT_STREAM))
42 #define GVIR_IS_INPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \
43 GVIR_TYPE_INPUT_STREAM))
44 #define GVIR_INPUT_STREAM_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \
45 GVIR_TYPE_INPUT_STREAM, GVirInputStreamClass))
35 #define GVIR_TYPE_INPUT_STREAM (_gvir_input_stream_get_type ())
36 #define GVIR_INPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), GVIR_TYPE_INPUT_STREAM, GVirInputStream))
37 #define GVIR_INPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), GVIR_TYPE_INPUT_STREAM, GVirInputStreamClass))
38 #define GVIR_IS_INPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), GVIR_TYPE_INPUT_STREAM))
39 #define GVIR_IS_INPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), GVIR_TYPE_INPUT_STREAM))
40 #define GVIR_INPUT_STREAM_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), GVIR_TYPE_INPUT_STREAM, GVirInputStreamClass))
4641
47 typedef struct _GVirInputStreamPrivate GVirInputStreamPrivate;
48 typedef struct _GVirInputStreamClass GVirInputStreamClass;
49 typedef struct _GVirInputStream GVirInputStream;
42 typedef struct _GVirInputStreamPrivate GVirInputStreamPrivate;
43 typedef struct _GVirInputStreamClass GVirInputStreamClass;
44 typedef struct _GVirInputStream GVirInputStream;
5045
5146 struct _GVirInputStreamClass
5247 {
5954 GVirInputStreamPrivate *priv;
6055 };
6156
62 GType _gvir_input_stream_get_type (void) G_GNUC_CONST;
63 GVirInputStream * _gvir_input_stream_new (GVirStream *stream);
57 GType _gvir_input_stream_get_type(void) G_GNUC_CONST;
58 GVirInputStream *_gvir_input_stream_new(GVirStream *stream);
6459
6560 G_END_DECLS
6661
11 * libvirt-gobject-interface.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2727
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
30
31 extern gboolean debugFlag;
32
33 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3430
3531 #define GVIR_INTERFACE_GET_PRIVATE(obj) \
3632 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_INTERFACE, GVirInterfacePrivate))
10399 GVirInterface *conn = GVIR_INTERFACE(object);
104100 GVirInterfacePrivate *priv = conn->priv;
105101
106 DEBUG("Finalize GVirInterface=%p", conn);
102 g_debug("Finalize GVirInterface=%p", conn);
107103
108104 virInterfaceFree(priv->handle);
109105
138134
139135 static void gvir_interface_init(GVirInterface *conn)
140136 {
141 GVirInterfacePrivate *priv;
137 g_debug("Init GVirInterface=%p", conn);
142138
143 DEBUG("Init GVirInterface=%p", conn);
144
145 priv = conn->priv = GVIR_INTERFACE_GET_PRIVATE(conn);
146
147 memset(priv, 0, sizeof(*priv));
139 conn->priv = GVIR_INTERFACE_GET_PRIVATE(conn);
148140 }
149141
150142 typedef struct virInterface GVirInterfaceHandle;
192184 gchar *xml;
193185
194186 if (!(xml = virInterfaceGetXMLDesc(priv->handle, flags))) {
195 if (err)
196 *err = gvir_error_new_literal(GVIR_INTERFACE_ERROR,
197 0,
198 "Unable to get interface XML config");
187 gvir_set_error_literal(err, GVIR_INTERFACE_ERROR,
188 0,
189 "Unable to get interface XML config");
199190 return NULL;
200191 }
201192
00 /*
11 * libvirt-gobject-interface.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-main.c: libvirt gobject integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2323 #include <config.h>
2424
2525 #include <stdlib.h>
26 #include <stdio.h>
2627
2728 #include "libvirt-glib/libvirt-glib.h"
2829 #include "libvirt-gobject/libvirt-gobject.h"
29
30 gboolean debugFlag = FALSE;
31
32 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3330
3431 /**
3532 * gvir_init_object:
4643 }
4744 }
4845
46 static void gvir_log_handler(const gchar *log_domain G_GNUC_UNUSED,
47 GLogLevelFlags log_level G_GNUC_UNUSED,
48 const gchar *message,
49 gpointer user_data)
50 {
51 if (user_data)
52 fprintf(stderr, "%s\n", message);
53 }
54
4955
5056 /**
5157 * gvir_init_object_check:
5763 char ***argv,
5864 GError **err)
5965 {
60 char *debugEnv = getenv("LIBVIRT_GOBJECT_DEBUG");
61 if (debugEnv && *debugEnv && *debugEnv != '0')
62 debugFlag = 1;
63
6466 g_type_init();
6567
6668 gvir_event_register();
6870 if (!gvir_init_check(argc, argv, err))
6971 return FALSE;
7072
73 if (!gvir_config_init_check(argc, argv, err))
74 return FALSE;
75
76 /* GLib >= 2.31.0 debug is off by default, so we need to
77 * enable it. Older versions are on by default, so we need
78 * to disable it.
79 */
80 #if GLIB_CHECK_VERSION(2, 31, 0)
81 if (getenv("LIBVIRT_GOBJECT_DEBUG"))
82 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
83 gvir_log_handler, (void*)0x1);
84 #else
85 if (!getenv("LIBVIRT_GOBJECT_DEBUG"))
86 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
87 gvir_log_handler, NULL);
88 #endif
89
7190 return TRUE;
7291 }
73
11 * libvirt-gobject-main.c: libvirt gobject integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-manager.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2727
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
30
31 extern gboolean debugFlag;
32
33 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3430
3531 #define GVIR_MANAGER_GET_PRIVATE(obj) \
3632 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_MANAGER, GVirManagerPrivate))
6561 GVirManager *man = GVIR_MANAGER(object);
6662 GVirManagerPrivate *priv = man->priv;
6763
68 DEBUG("Finalize GVirManager=%p", man);
64 g_debug("Finalize GVirManager=%p", man);
6965
7066 GList *tmp = priv->connections;
7167 while (tmp) {
114110 {
115111 GVirManagerPrivate *priv;
116112
117 DEBUG("Init GVirManager=%p", conn);
113 g_debug("Init GVirManager=%p", conn);
118114
119115 priv = conn->priv = GVIR_MANAGER_GET_PRIVATE(conn);
120
121 memset(priv, 0, sizeof(*priv));
122116
123117 priv->lock = g_mutex_new();
124118 }
199193 }
200194 return NULL;
201195 }
202
00 /*
11 * libvirt-gobject-manager.h: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-network_filter.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_NETWORK_FILTER_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_NETWORK_FILTER, GVirNetworkFilterPrivate))
105101 GVirNetworkFilter *nf = GVIR_NETWORK_FILTER(object);
106102 GVirNetworkFilterPrivate *priv = nf->priv;
107103
108 DEBUG("Finalize GVirNetworkFilter=%p", nf);
104 g_debug("Finalize GVirNetworkFilter=%p", nf);
109105
110106 virNWFilterFree(priv->handle);
111107
155151
156152 static void gvir_network_filter_init(GVirNetworkFilter *conn)
157153 {
158 GVirNetworkFilterPrivate *priv;
159
160 DEBUG("Init GVirNetworkFilter=%p", conn);
161
162 priv = conn->priv = GVIR_NETWORK_FILTER_GET_PRIVATE(conn);
163
164 memset(priv, 0, sizeof(*priv));
154 g_debug("Init GVirNetworkFilter=%p", conn);
155
156 conn->priv = GVIR_NETWORK_FILTER_GET_PRIVATE(conn);
165157 }
166158
167159 typedef struct virNWFilter GVirNetworkFilterHandle;
218210 gchar *xml;
219211
220212 if (!(xml = virNWFilterGetXMLDesc(priv->handle, flags))) {
221 if (err)
222 *err = gvir_error_new_literal(GVIR_NETWORK_FILTER_ERROR,
223 0,
224 "Unable to get network_filter XML config");
213 gvir_set_error_literal(err, GVIR_NETWORK_FILTER_ERROR,
214 0,
215 "Unable to get network_filter XML config");
225216 return NULL;
226217 }
227218
00 /*
11 * libvirt-gobject-network_filter.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-network.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_NETWORK_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_NETWORK, GVirNetworkPrivate))
105101 GVirNetwork *conn = GVIR_NETWORK(object);
106102 GVirNetworkPrivate *priv = conn->priv;
107103
108 DEBUG("Finalize GVirNetwork=%p", conn);
104 g_debug("Finalize GVirNetwork=%p", conn);
109105
110106 virNetworkFree(priv->handle);
111107
153149
154150 static void gvir_network_init(GVirNetwork *conn)
155151 {
156 GVirNetworkPrivate *priv;
157
158 DEBUG("Init GVirNetwork=%p", conn);
159
160 priv = conn->priv = GVIR_NETWORK_GET_PRIVATE(conn);
161
162 memset(priv, 0, sizeof(*priv));
152 g_debug("Init GVirNetwork=%p", conn);
153
154 conn->priv = GVIR_NETWORK_GET_PRIVATE(conn);
163155 }
164156
165157 typedef struct virNetwork GVirNetworkHandle;
214206 gchar *xml;
215207
216208 if (!(xml = virNetworkGetXMLDesc(priv->handle, flags))) {
217 if (err)
218 *err = gvir_error_new_literal(GVIR_NETWORK_ERROR,
219 0,
220 "Unable to get network XML config");
209 gvir_set_error_literal(err, GVIR_NETWORK_ERROR,
210 0,
211 "Unable to get network XML config");
221212 return NULL;
222213 }
223214
00 /*
11 * libvirt-gobject-network.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-node_device.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_NODE_DEVICE_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_NODE_DEVICE, GVirNodeDevicePrivate))
104100 GVirNodeDevice *conn = GVIR_NODE_DEVICE(object);
105101 GVirNodeDevicePrivate *priv = conn->priv;
106102
107 DEBUG("Finalize GVirNodeDevice=%p", conn);
103 g_debug("Finalize GVirNodeDevice=%p", conn);
108104
109105 virNodeDeviceFree(priv->handle);
110106
139135
140136 static void gvir_node_device_init(GVirNodeDevice *conn)
141137 {
142 GVirNodeDevicePrivate *priv;
138 g_debug("Init GVirNodeDevice=%p", conn);
143139
144 DEBUG("Init GVirNodeDevice=%p", conn);
145
146 priv = conn->priv = GVIR_NODE_DEVICE_GET_PRIVATE(conn);
147
148 memset(priv, 0, sizeof(*priv));
140 conn->priv = GVIR_NODE_DEVICE_GET_PRIVATE(conn);
149141 }
150142
151143 typedef struct virNodeDevice GVirNodeDeviceHandle;
193185 gchar *xml;
194186
195187 if (!(xml = virNodeDeviceGetXMLDesc(priv->handle, flags))) {
196 if (err)
197 *err = gvir_error_new_literal(GVIR_NODE_DEVICE_ERROR,
198 0,
199 "Unable to get node_device XML config");
188 gvir_set_error_literal(err, GVIR_NODE_DEVICE_ERROR,
189 0,
190 "Unable to get node_device XML config");
200191 return NULL;
201192 }
202193
00 /*
11 * libvirt-gobject-node_device.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
00 /*
11 * libvirt-gobject-output-stream.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-output-stream.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define gvir_output_stream_get_type _gvir_output_stream_get_type
3733 G_DEFINE_TYPE(GVirOutputStream, gvir_output_stream, G_TYPE_OUTPUT_STREAM);
5349 gsize count;
5450 };
5551
56 static void gvir_output_stream_get_property(GObject *object,
57 guint prop_id,
58 GValue *value,
52 static void gvir_output_stream_get_property(GObject *object,
53 guint prop_id,
54 GValue *value,
5955 GParamSpec *pspec)
6056 {
6157 GVirOutputStream *stream = GVIR_OUTPUT_STREAM(object);
7066 }
7167 }
7268
73 static void gvir_output_stream_set_property(GObject *object,
74 guint prop_id,
69 static void gvir_output_stream_set_property(GObject *object,
70 guint prop_id,
7571 const GValue *value,
76 GParamSpec *pspec)
72 GParamSpec *pspec)
7773 {
7874 GVirOutputStream *stream = GVIR_OUTPUT_STREAM(object);
7975
9187 {
9288 GVirOutputStream *stream = GVIR_OUTPUT_STREAM(object);
9389
94 DEBUG("Finalize output stream GVirStream=%p", stream->priv->stream);
90 g_debug("Finalize output stream GVirStream=%p", stream->priv->stream);
9591 stream->priv->stream = NULL; // unowned
9692
9793 if (G_OBJECT_CLASS(gvir_output_stream_parent_class)->finalize)
9894 (*G_OBJECT_CLASS(gvir_output_stream_parent_class)->finalize)(object);
9995 }
10096
101 static void
102 gvir_output_stream_write_ready(virStreamPtr st G_GNUC_UNUSED,
103 int events,
97 static gboolean
98 gvir_output_stream_write_ready(GVirStream *stream,
99 GVirStreamIOCondition cond,
104100 void *opaque)
105101 {
106 GVirOutputStream *stream = GVIR_OUTPUT_STREAM(opaque);
107 GVirOutputStreamPrivate *priv = stream->priv;
108 GSimpleAsyncResult *simple;
102 GVirOutputStream *output_stream = GVIR_OUTPUT_STREAM(opaque);
103 GVirOutputStreamPrivate *priv = output_stream->priv;
104 GSimpleAsyncResult *simple = priv->result;
109105 GError *error = NULL;
110106 gssize result;
111107
112 g_return_if_fail(events & VIR_STREAM_EVENT_WRITABLE);
113
114 result = gvir_stream_send(priv->stream, priv->buffer, priv->count,
108 if (!(cond & GVIR_STREAM_IO_CONDITION_WRITABLE)) {
109 g_warn_if_reached();
110 g_simple_async_result_set_error(simple,
111 G_IO_ERROR,
112 G_IO_ERROR_INVALID_ARGUMENT,
113 "%s",
114 "Expected stream to be writable");
115 goto cleanup;
116 }
117
118 result = gvir_stream_send(stream, priv->buffer, priv->count,
115119 priv->cancellable, &error);
116120
117121 if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
118122 g_warn_if_reached();
119 return;
120 }
121
122 simple = stream->priv->result;
123 stream->priv->result = NULL;
123 g_simple_async_result_set_error(simple,
124 G_IO_ERROR,
125 G_IO_ERROR_INVALID_ARGUMENT,
126 "%s",
127 "Expected stream to be writable");
128 goto cleanup;
129 }
124130
125131 if (result >= 0)
126132 g_simple_async_result_set_op_res_gssize(simple, result);
129135 g_simple_async_result_take_error(simple, error);
130136
131137 if (priv->cancellable) {
132 g_object_unref(stream->priv->cancellable);
138 g_object_unref(priv->cancellable);
133139 priv->cancellable = NULL;
134140 }
135141
142 cleanup:
143 priv->result = NULL;
136144 g_simple_async_result_complete(simple);
137145 g_object_unref(simple);
138
139 return;
146 return FALSE;
140147 }
141148
142149 static void gvir_output_stream_write_async(GOutputStream *stream,
148155 gpointer user_data)
149156 {
150157 GVirOutputStream *output_stream = GVIR_OUTPUT_STREAM(stream);
151 virStreamPtr handle;
152158
153159 g_return_if_fail(GVIR_IS_OUTPUT_STREAM(stream));
154160 g_return_if_fail(output_stream->priv->result == NULL);
155161
156 g_object_get(output_stream->priv->stream, "handle", &handle, NULL);
157
158 if (virStreamEventAddCallback(handle, VIR_STREAM_EVENT_WRITABLE,
159 gvir_output_stream_write_ready, stream, NULL) < 0) {
160 g_simple_async_report_error_in_idle(G_OBJECT(stream),
161 callback,
162 user_data,
163 G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
164 "Couldn't add event callback %s",
165 G_STRFUNC);
166 goto end;
167 }
162 gvir_stream_add_watch_full(output_stream->priv->stream,
163 G_PRIORITY_DEFAULT,
164 GVIR_STREAM_IO_CONDITION_WRITABLE,
165 gvir_output_stream_write_ready,
166 g_object_ref(stream),
167 (GDestroyNotify)g_object_unref);
168168
169169 output_stream->priv->result =
170170 g_simple_async_result_new(G_OBJECT(stream), callback, user_data,
174174 output_stream->priv->cancellable = cancellable;
175175 output_stream->priv->buffer = buffer;
176176 output_stream->priv->count = count;
177
178 end:
179 virStreamFree(handle);
180 }
181
182
183 static gssize gvir_output_stream_write_finish(GOutputStream *stream,
184 GAsyncResult *result,
177 }
178
179
180 static gssize gvir_output_stream_write_finish(GOutputStream *stream,
181 GAsyncResult *result,
185182 GError **error G_GNUC_UNUSED)
186183 {
187184 GVirOutputStream *output_stream = GVIR_OUTPUT_STREAM(stream);
190187 gssize count;
191188
192189 g_return_val_if_fail(GVIR_IS_OUTPUT_STREAM(stream), -1);
190 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(stream),
191 gvir_output_stream_write_async),
192 -1);
193193 g_object_get(output_stream->priv->stream, "handle", &handle, NULL);
194194
195195 simple = G_SIMPLE_ASYNC_RESULT(result);
196
197 g_warn_if_fail(g_simple_async_result_get_source_tag(simple) == gvir_output_stream_write_async);
198196
199197 count = g_simple_async_result_get_op_res_gssize(simple);
200198
00 /*
11 * libvirt-gobject-output-stream.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
3232
3333 G_BEGIN_DECLS
3434
35 #define GVIR_TYPE_OUTPUT_STREAM (_gvir_output_stream_get_type ())
36 #define GVIR_OUTPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
37 GVIR_TYPE_OUTPUT_STREAM, GVirOutputStream))
38 #define GVIR_OUTPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \
39 GVIR_TYPE_OUTPUT_STREAM, GVirOutputStreamClass))
40 #define GVIR_IS_OUTPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
41 GVIR_TYPE_OUTPUT_STREAM))
42 #define GVIR_IS_OUTPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \
43 GVIR_TYPE_OUTPUT_STREAM))
44 #define GVIR_OUTPUT_STREAM_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \
45 GVIR_TYPE_OUTPUT_STREAM, GVirOutputStreamClass))
35 #define GVIR_TYPE_OUTPUT_STREAM (_gvir_output_stream_get_type ())
36 #define GVIR_OUTPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), GVIR_TYPE_OUTPUT_STREAM, GVirOutputStream))
37 #define GVIR_OUTPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), GVIR_TYPE_OUTPUT_STREAM, GVirOutputStreamClass))
38 #define GVIR_IS_OUTPUT_STREAM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), GVIR_TYPE_OUTPUT_STREAM))
39 #define GVIR_IS_OUTPUT_STREAM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), GVIR_TYPE_OUTPUT_STREAM))
40 #define GVIR_OUTPUT_STREAM_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), GVIR_TYPE_OUTPUT_STREAM, GVirOutputStreamClass))
4641
47 typedef struct _GVirOutputStreamPrivate GVirOutputStreamPrivate;
48 typedef struct _GVirOutputStreamClass GVirOutputStreamClass;
49 typedef struct _GVirOutputStream GVirOutputStream;
42 typedef struct _GVirOutputStreamPrivate GVirOutputStreamPrivate;
43 typedef struct _GVirOutputStreamClass GVirOutputStreamClass;
44 typedef struct _GVirOutputStream GVirOutputStream;
5045
5146 struct _GVirOutputStreamClass
5247 {
5954 GVirOutputStreamPrivate *priv;
6055 };
6156
62 GType _gvir_output_stream_get_type (void) G_GNUC_CONST;
63 GVirOutputStream * _gvir_output_stream_new (GVirStream *stream);
57 GType _gvir_output_stream_get_type(void) G_GNUC_CONST;
58 GVirOutputStream *_gvir_output_stream_new(GVirStream *stream);
6459
6560 G_END_DECLS
6661
11 * libvirt-gobject-secret.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_SECRET_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_SECRET, GVirSecretPrivate))
105101 GVirSecret *conn = GVIR_SECRET(object);
106102 GVirSecretPrivate *priv = conn->priv;
107103
108 DEBUG("Finalize GVirSecret=%p", conn);
104 g_debug("Finalize GVirSecret=%p", conn);
109105
110106 virSecretFree(priv->handle);
111107
155151
156152 static void gvir_secret_init(GVirSecret *conn)
157153 {
158 GVirSecretPrivate *priv;
159
160 DEBUG("Init GVirSecret=%p", conn);
161
162 priv = conn->priv = GVIR_SECRET_GET_PRIVATE(conn);
163
164 memset(priv, 0, sizeof(*priv));
154 g_debug("Init GVirSecret=%p", conn);
155
156 conn->priv = GVIR_SECRET_GET_PRIVATE(conn);
165157 }
166158
167159 typedef struct virSecret GVirSecretHandle;
204196 gchar *xml;
205197
206198 if (!(xml = virSecretGetXMLDesc(priv->handle, flags))) {
207 if (err)
208 *err = gvir_error_new_literal(GVIR_SECRET_ERROR,
209 0,
210 "Unable to get secret XML config");
199 gvir_set_error_literal(err, GVIR_SECRET_ERROR,
200 0,
201 "Unable to get secret XML config");
211202 return NULL;
212203 }
213204
00 /*
11 * libvirt-gobject-secret.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
11 * libvirt-gobject-storage_pool.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_STORAGE_POOL_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_STORAGE_POOL, GVirStoragePoolPrivate))
108104 GVirStoragePool *pool = GVIR_STORAGE_POOL(object);
109105 GVirStoragePoolPrivate *priv = pool->priv;
110106
111 DEBUG("Finalize GVirStoragePool=%p", pool);
107 g_debug("Finalize GVirStoragePool=%p", pool);
112108
113109 if (priv->volumes) {
114110 g_hash_table_unref(priv->volumes);
167163 {
168164 GVirStoragePoolPrivate *priv;
169165
170 DEBUG("Init GVirStoragePool=%p", pool);
166 g_debug("Init GVirStoragePool=%p", pool);
171167
172168 priv = pool->priv = GVIR_STORAGE_POOL_GET_PRIVATE(pool);
173
174 memset(priv, 0, sizeof(*priv));
175169
176170 priv->lock = g_mutex_new();
177171 }
193187
194188 G_DEFINE_BOXED_TYPE(GVirStoragePoolHandle, gvir_storage_pool_handle,
195189 gvir_storage_pool_handle_copy, gvir_storage_pool_handle_free)
190
191 static GVirStoragePoolInfo *
192 gvir_storage_pool_info_copy(GVirStoragePoolInfo *info)
193 {
194 return g_slice_dup(GVirStoragePoolInfo, info);
195 }
196
197 static void
198 gvir_storage_pool_info_free(GVirStoragePoolInfo *info)
199 {
200 g_slice_free(GVirStoragePoolInfo, info);
201 }
202
203 G_DEFINE_BOXED_TYPE(GVirStoragePoolInfo, gvir_storage_pool_info,
204 gvir_storage_pool_info_copy, gvir_storage_pool_info_free)
196205
197206 const gchar *gvir_storage_pool_get_name(GVirStoragePool *pool)
198207 {
229238 gchar *xml;
230239
231240 if (!(xml = virStoragePoolGetXMLDesc(priv->handle, flags))) {
241 gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
242 0,
243 "Unable to get storage_pool XML config");
244 return NULL;
245 }
246
247 GVirConfigStoragePool *conf = gvir_config_storage_pool_new_from_xml(xml, err);
248
249 free(xml);
250 return conf;
251 }
252
253 /**
254 * gvir_storage_pool_get_info:
255 * @pool: the storage_pool
256 * Returns: (transfer full): the info
257 */
258 GVirStoragePoolInfo *gvir_storage_pool_get_info(GVirStoragePool *pool,
259 GError **err)
260 {
261 GVirStoragePoolPrivate *priv = pool->priv;
262 virStoragePoolInfo info;
263 GVirStoragePoolInfo *ret;
264
265 if (virStoragePoolGetInfo(priv->handle, &info) < 0) {
232266 if (err)
233267 *err = gvir_error_new_literal(GVIR_STORAGE_POOL_ERROR,
234268 0,
235 "Unable to get storage_pool XML config");
269 "Unable to get storage pool info");
236270 return NULL;
237271 }
238272
239 GVirConfigStoragePool *conf = gvir_config_storage_pool_new_from_xml(xml, err);
240
241 free(xml);
242 return conf;
273 ret = g_slice_new(GVirStoragePoolInfo);
274 ret->state = info.state;
275 ret->capacity = info.capacity;
276 ret->allocation = info.allocation;
277 ret->available = info.available;
278
279 return ret;
243280 }
244281
245282 typedef gint (* CountFunction) (virStoragePoolPtr vpool);
258295 gint i;
259296
260297 if ((n = count_func(vpool)) < 0) {
261 *err = gvir_error_new(GVIR_STORAGE_POOL_ERROR,
262 0,
263 "Unable to count %s", name);
298 gvir_set_error(err, GVIR_STORAGE_POOL_ERROR,
299 0,
300 "Unable to count %s", name);
264301 goto error;
265302 }
266303
270307
271308 lst = g_new(gchar *, n);
272309 if ((n = list_func(vpool, lst, n)) < 0) {
273 *err = gvir_error_new(GVIR_STORAGE_POOL_ERROR,
274 0,
275 "Unable to list %s %d", name, n);
310 gvir_set_error(err, GVIR_STORAGE_POOL_ERROR,
311 0,
312 "Unable to list %s %d", name, n);
276313 goto error;
277314 }
278315 }
308345 vpool = priv->handle;
309346
310347 if (virStoragePoolRefresh(vpool, 0) < 0) {
311 if (err)
312 *err = gvir_error_new_literal(GVIR_STORAGE_POOL_ERROR,
313 0,
314 "Unable to refresh storage pool");
348 gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
349 0,
350 "Unable to refresh storage pool");
315351 goto cleanup;
316352 }
317353
400436 res = g_simple_async_result_new(G_OBJECT(pool),
401437 callback,
402438 user_data,
403 gvir_storage_pool_refresh);
439 gvir_storage_pool_refresh_async);
404440 g_simple_async_result_run_in_thread(res,
405441 gvir_storage_pool_refresh_helper,
406442 G_PRIORITY_DEFAULT,
418454 GError **err)
419455 {
420456 g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
421 g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
422
423 if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
424 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
425 g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
426 gvir_storage_pool_refresh);
427 if (g_simple_async_result_propagate_error(simple, err))
428 return FALSE;
429 }
457 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool),
458 gvir_storage_pool_refresh_async),
459 FALSE);
460
461 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result),
462 err))
463 return FALSE;
430464
431465 return TRUE;
432466 }
440474 * gvir_storage_pool_get_volumes:
441475 * @pool: the storage pool
442476 *
443 * Return value: (element-type LibvirtGObject.StoragePool) (transfer full): List
477 * Return value: (element-type LibvirtGObject.StorageVol) (transfer full): List
444478 * of #GVirStorageVol
445479 */
446480 GList *gvir_storage_pool_get_volumes(GVirStoragePool *pool)
500534 g_return_val_if_fail(xml != NULL, NULL);
501535
502536 if (!(handle = virStorageVolCreateXML(priv->handle, xml, 0))) {
503 if (err)
504 *err = gvir_error_new_literal(GVIR_STORAGE_POOL_ERROR,
505 0,
506 "Failed to create volume");
537 gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
538 0,
539 "Failed to create volume");
507540 return NULL;
508541 }
509542
535568 GError **err)
536569 {
537570 if (virStoragePoolBuild(pool->priv->handle, flags)) {
538 if (err)
539 *err = gvir_error_new_literal(GVIR_STORAGE_POOL_ERROR,
540 0,
541 "Failed to build storage pool");
571 gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
572 0,
573 "Failed to build storage pool");
542574 return FALSE;
543575 }
544576
586618 GSimpleAsyncResult *res;
587619 StoragePoolBuildData *data;
588620
589 data = g_new0(StoragePoolBuildData, 1);
621 data = g_slice_new0(StoragePoolBuildData);
590622 data->flags = flags;
591623
592624 res = g_simple_async_result_new(G_OBJECT(pool),
593625 callback,
594626 user_data,
595 gvir_storage_pool_build);
627 gvir_storage_pool_build_async);
596628 g_object_set_data(G_OBJECT(res), "StoragePoolBuildData", data);
597629 g_simple_async_result_run_in_thread(res,
598630 gvir_storage_pool_build_helper,
614646 GError **err)
615647 {
616648 g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
617 g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
618
619 if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
620 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
621 g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
622 gvir_storage_pool_build);
623 if (g_simple_async_result_propagate_error(simple, err))
624 return FALSE;
625 }
649 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool),
650 gvir_storage_pool_build_async),
651 FALSE);
652
653 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result),
654 err))
655 return FALSE;
626656
627657 return TRUE;
628658 }
640670 GError **err)
641671 {
642672 if (virStoragePoolCreate(pool->priv->handle, flags)) {
643 if (err)
644 *err = gvir_error_new_literal(GVIR_STORAGE_POOL_ERROR,
645 0,
646 "Failed to start storage pool");
673 gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
674 0,
675 "Failed to start storage pool");
647676 return FALSE;
648677 }
649678
687716 GSimpleAsyncResult *res;
688717 StoragePoolBuildData *data;
689718
690 data = g_new0(StoragePoolBuildData, 1);
719 data = g_slice_new0(StoragePoolBuildData);
691720 data->flags = flags;
692721
693722 res = g_simple_async_result_new(G_OBJECT(pool),
694723 callback,
695724 user_data,
696 gvir_storage_pool_start);
725 gvir_storage_pool_start_async);
697726 g_object_set_data(G_OBJECT(res), "StoragePoolBuildData", data);
698727 g_simple_async_result_run_in_thread(res,
699728 gvir_storage_pool_start_helper,
715744 GError **err)
716745 {
717746 g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
718 g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE);
719
720 if (G_IS_SIMPLE_ASYNC_RESULT(result)) {
721 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result);
722 g_warn_if_fail (g_simple_async_result_get_source_tag(simple) ==
723 gvir_storage_pool_start);
724 if (g_simple_async_result_propagate_error(simple, err))
725 return FALSE;
726 }
747 g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool),
748 gvir_storage_pool_start_async),
749 FALSE);
750
751 if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result),
752 err))
753 return FALSE;
727754
728755 return TRUE;
729756 }
00 /*
11 * libvirt-gobject-storage_pool.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
3535 #define GVIR_IS_STORAGE_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_STORAGE_POOL))
3636 #define GVIR_STORAGE_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_STORAGE_POOL, GVirStoragePoolClass))
3737
38 #define GVIR_TYPE_STORAGE_POOL_INFO (gvir_storage_pool_info_get_type())
3839 #define GVIR_TYPE_STORAGE_POOL_HANDLE (gvir_storage_pool_handle_get_type())
3940
4041 typedef struct _GVirStoragePool GVirStoragePool;
5758 gpointer padding[20];
5859 };
5960
61 typedef enum {
62 GVIR_STORAGE_POOL_STATE_INACTIVE = 0, /* Not running */
63 GVIR_STORAGE_POOL_STATE_BUILDING = 1, /* Initializing pool, not available */
64 GVIR_STORAGE_POOL_STATE_RUNNING = 2, /* Running normally */
65 GVIR_STORAGE_POOL_STATE_DEGRADED = 3, /* Running degraded */
66 GVIR_STORAGE_POOL_STATE_INACCESSIBLE = 4, /* Running, but not accessible */
67 } GVirStoragePoolState;
68
69 typedef struct _GVirStoragePoolInfo GVirStoragePoolInfo;
70 struct _GVirStoragePoolInfo
71 {
72 GVirStoragePoolState state; /* the state */
73 guint64 capacity; /* Logical size bytes */
74 guint64 allocation; /* Current allocation bytes */
75 guint64 available; /* Remaining free space bytes */
76 };
6077
6178 GType gvir_storage_pool_get_type(void);
79 GType gvir_storage_pool_info_get_type(void);
6280 GType gvir_storage_pool_handle_get_type(void);
6381
6482 const gchar *gvir_storage_pool_get_name(GVirStoragePool *pool);
6785 GVirConfigStoragePool *gvir_storage_pool_get_config(GVirStoragePool *pool,
6886 guint flags,
6987 GError **err);
88
89 GVirStoragePoolInfo *gvir_storage_pool_get_info(GVirStoragePool *pool,
90 GError **err);
7091
7192 gboolean gvir_storage_pool_refresh(GVirStoragePool *pool,
7293 GCancellable *cancellable,
11 * libvirt-gobject-storage_vol.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
2828 #include "libvirt-glib/libvirt-glib.h"
2929 #include "libvirt-gobject/libvirt-gobject.h"
3030 #include "libvirt-gobject-compat.h"
31
32 extern gboolean debugFlag;
33
34 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
3531
3632 #define GVIR_STORAGE_VOL_GET_PRIVATE(obj) \
3733 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_STORAGE_VOL, GVirStorageVolPrivate))
104100 GVirStorageVol *conn = GVIR_STORAGE_VOL(object);
105101 GVirStorageVolPrivate *priv = conn->priv;
106102
107 DEBUG("Finalize GVirStorageVol=%p", conn);
103 g_debug("Finalize GVirStorageVol=%p", conn);
108104
109105 virStorageVolFree(priv->handle);
110106
139135
140136 static void gvir_storage_vol_init(GVirStorageVol *conn)
141137 {
142 GVirStorageVolPrivate *priv;
143
144 DEBUG("Init GVirStorageVol=%p", conn);
145
146 priv = conn->priv = GVIR_STORAGE_VOL_GET_PRIVATE(conn);
147
148 memset(priv, 0, sizeof(*priv));
138 g_debug("Init GVirStorageVol=%p", conn);
139
140 conn->priv = GVIR_STORAGE_VOL_GET_PRIVATE(conn);
149141 }
150142
151143 typedef struct virStorageVol GVirStorageVolHandle;
165157
166158 G_DEFINE_BOXED_TYPE(GVirStorageVolHandle, gvir_storage_vol_handle,
167159 gvir_storage_vol_handle_copy, gvir_storage_vol_handle_free)
160
161 static GVirStorageVolInfo *
162 gvir_storage_vol_info_copy(GVirStorageVolInfo *info)
163 {
164 return g_slice_dup(GVirStorageVolInfo, info);
165 }
166
167 static void
168 gvir_storage_vol_info_free(GVirStorageVolInfo *info)
169 {
170 g_slice_free(GVirStorageVolInfo, info);
171 }
172
173 G_DEFINE_BOXED_TYPE(GVirStorageVolInfo, gvir_storage_vol_info,
174 gvir_storage_vol_info_copy, gvir_storage_vol_info_free)
168175
169176 const gchar *gvir_storage_vol_get_name(GVirStorageVol *vol)
170177 {
204211 gchar *xml;
205212
206213 if (!(xml = virStorageVolGetXMLDesc(priv->handle, flags))) {
214 gvir_set_error_literal(err, GVIR_STORAGE_VOL_ERROR,
215 0,
216 "Unable to get storage_vol XML config");
217 return NULL;
218 }
219
220 GVirConfigStorageVol *conf = gvir_config_storage_vol_new_from_xml(xml, err);
221
222 free(xml);
223 return conf;
224 }
225
226 /**
227 * gvir_storage_vol_get_info:
228 * @vol: the storage_vol
229 * Returns: (transfer full): the info
230 */
231 GVirStorageVolInfo *gvir_storage_vol_get_info(GVirStorageVol *vol,
232 GError **err)
233 {
234 GVirStorageVolPrivate *priv = vol->priv;
235 virStorageVolInfo info;
236 GVirStorageVolInfo *ret;
237
238 if (virStorageVolGetInfo(priv->handle, &info) < 0) {
207239 if (err)
208240 *err = gvir_error_new_literal(GVIR_STORAGE_VOL_ERROR,
209241 0,
210 "Unable to get storage_vol XML config");
242 "Unable to get storage vol info");
211243 return NULL;
212244 }
213245
214 GVirConfigStorageVol *conf = gvir_config_storage_vol_new_from_xml(xml, err);
215
216 free(xml);
217 return conf;
218 }
246 ret = g_slice_new(GVirStorageVolInfo);
247 ret->type = info.type;
248 ret->capacity = info.capacity;
249 ret->allocation = info.allocation;
250
251 return ret;
252 }
253
254 /**
255 * gvir_storage_vol_delete:
256 * @vol: the storage volume to delete
257 * @flags: the flags
258 * @err: Return location for errors, or NULL
259 *
260 * Deletes the storage volume @vol.
261 *
262 * Returns: %TRUE on success, %FALSE otherwise
263 */
264 gboolean gvir_storage_vol_delete(GVirStorageVol *vol,
265 guint flags,
266 GError **err)
267 {
268 if (virStorageVolDelete(vol->priv->handle, flags) < 0) {
269 gvir_set_error_literal(err,
270 GVIR_STORAGE_VOL_ERROR,
271 0,
272 "Unable to delete storage volume");
273 return FALSE;
274 }
275
276 return TRUE;
277 }
00 /*
11 * libvirt-gobject-storage_vol.c: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
3535 #define GVIR_IS_STORAGE_VOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_STORAGE_VOL))
3636 #define GVIR_STORAGE_VOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_STORAGE_VOL, GVirStorageVolClass))
3737
38 #define GVIR_TYPE_STORAGE_VOL_INFO (gvir_storage_vol_info_get_type())
3839 #define GVIR_TYPE_STORAGE_VOL_HANDLE (gvir_storage_vol_handle_get_type())
3940
4041 typedef struct _GVirStorageVol GVirStorageVol;
5758 gpointer padding[20];
5859 };
5960
61 typedef enum {
62 GVIR_STORAGE_VOL_STATE_FILE = 0, /* Regular file based volume */
63 GVIR_STORAGE_VOL_STATE_BLOCK = 1, /* Block based volume */
64 GVIR_STORAGE_VOL_STATE_DIR = 2, /* Directory-passthrough based volume */
65 } GVirStorageVolType;
66
67 typedef struct _GVirStorageVolInfo GVirStorageVolInfo;
68 struct _GVirStorageVolInfo
69 {
70 GVirStorageVolType type; /* Type flags */
71 guint64 capacity; /* Logical size bytes */
72 guint64 allocation; /* Current allocation bytes */
73 };
74
6075 GType gvir_storage_vol_get_type(void);
76 GType gvir_storage_vol_info_get_type(void);
6177 GType gvir_storage_vol_handle_get_type(void);
6278
6379 const gchar *gvir_storage_vol_get_name(GVirStorageVol *vol);
6480 const gchar *gvir_storage_vol_get_path(GVirStorageVol *vol);
6581
82 gboolean gvir_storage_vol_delete(GVirStorageVol *vol,
83 guint flags,
84 GError **err);
85
6686 GVirConfigStorageVol *gvir_storage_vol_get_config(GVirStorageVol *vol,
6787 guint flags,
6888 GError **err);
89 GVirStorageVolInfo *gvir_storage_vol_get_info(GVirStorageVol *vol,
90 GError **err);
6991
7092 G_END_DECLS
7193
11 * libvirt-gobject-stream.c: libvirt glib integration
22 *
33 * Copyright (C) 2008 Daniel P. Berrange
4 * Copyright (C) 2010 Red Hat
4 * Copyright (C) 2010-2011 Red Hat, Inc.
55 *
66 * This library is free software; you can redistribute it and/or
77 * modify it under the terms of the GNU Lesser General Public
3333 #include "libvirt-gobject/libvirt-gobject-input-stream.h"
3434 #include "libvirt-gobject/libvirt-gobject-output-stream.h"
3535
36 extern gboolean debugFlag;
37
38 #define DEBUG(fmt, ...) do { if (G_UNLIKELY(debugFlag)) g_debug(fmt, ## __VA_ARGS__); } while (0)
39
4036 #define GVIR_STREAM_GET_PRIVATE(obj) \
4137 (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_TYPE_STREAM, GVirStreamPrivate))
4238
4541 virStreamPtr handle;
4642 GInputStream *input_stream;
4743 GOutputStream *output_stream;
44
45 gboolean eventRegistered;
46 int eventLast;
47 GList *sources;
4848 };
49
50 typedef struct {
51 GSource source;
52 GVirStreamIOCondition cond;
53 GVirStreamIOCondition newCond;
54 GVirStream *stream;
55 } GVirStreamSource;
56
4957
5058 G_DEFINE_TYPE(GVirStream, gvir_stream, G_TYPE_IO_STREAM);
5159
8997
9098
9199 static gboolean gvir_stream_close(GIOStream *io_stream,
92 GCancellable *cancellable, G_GNUC_UNUSED GError **error)
100 GCancellable *cancellable,
101 G_GNUC_UNUSED GError **error)
93102 {
94103 GVirStream *self = GVIR_STREAM(io_stream);
95104
103112 }
104113
105114
106 static void gvir_stream_close_async(GIOStream *stream, G_GNUC_UNUSED int io_priority,
107 GCancellable *cancellable, GAsyncReadyCallback callback,
115 static void gvir_stream_close_async(GIOStream *stream,
116 int io_priority G_GNUC_UNUSED,
117 GCancellable *cancellable,
118 GAsyncReadyCallback callback,
108119 gpointer user_data)
109120 {
110121 GSimpleAsyncResult *res;
133144
134145
135146 static gboolean
136 gvir_stream_close_finish(G_GNUC_UNUSED GIOStream *stream,
137 G_GNUC_UNUSED GAsyncResult *result,
138 G_GNUC_UNUSED GError **error)
147 gvir_stream_close_finish(GIOStream *stream G_GNUC_UNUSED,
148 GAsyncResult *result G_GNUC_UNUSED,
149 GError **error G_GNUC_UNUSED)
139150 {
140151 return TRUE;
141152 }
185196 {
186197 GVirStream *self = GVIR_STREAM(object);
187198 GVirStreamPrivate *priv = self->priv;
188
189 DEBUG("Finalize GVirStream=%p", self);
199 GList *tmp;
200
201 g_debug("Finalize GVirStream=%p", self);
190202
191203 if (self->priv->input_stream)
192204 g_object_unref(self->priv->input_stream);
197209
198210 virStreamFree(priv->handle);
199211 }
212
213 tmp = priv->sources;
214 while (tmp) {
215 GVirStreamSource *source = tmp->data;
216 g_source_destroy((GSource*)source);
217 tmp = tmp->next;
218 }
219 g_list_free(priv->sources);
200220
201221 G_OBJECT_CLASS(gvir_stream_parent_class)->finalize(object);
202222 }
279299 * Returns: Number of bytes read, or 0 if the end of stream reached,
280300 * or -1 on error.
281301 */
282 gssize gvir_stream_receive(GVirStream *self, gchar *buffer, gsize size,
283 GCancellable *cancellable, GError **error)
302 gssize gvir_stream_receive(GVirStream *self,
303 gchar *buffer,
304 gsize size,
305 GCancellable *cancellable,
306 GError **error)
284307 {
285308 int got;
286309
306329 GVirStream *self;
307330 GVirStreamSinkFunc func;
308331 gpointer user_data;
332 GCancellable *cancellable;
309333 };
310334
311335 static int
312336 stream_sink(virStreamPtr st G_GNUC_UNUSED,
313 const char *bytes, size_t nbytes, void *opaque)
337 const char *bytes,
338 size_t nbytes,
339 void *opaque)
314340 {
315341 struct stream_sink_helper *helper = opaque;
342
343 if (g_cancellable_is_cancelled(helper->cancellable))
344 return -1;
316345
317346 return helper->func(helper->self, bytes, nbytes, helper->user_data);
318347 }
320349 /**
321350 * gvir_stream_receive_all:
322351 * @stream: the stream
352 * @cancellable: cancellation notifier
323353 * @func: (scope notified): the callback for writing data to application
324354 * @user_data: (closure): data to be passed to @callback
325355 * Returns: the number of bytes consumed or -1 upon error
329359 * to virStreamRecv, for apps that do blocking-I/o.
330360 */
331361 gssize
332 gvir_stream_receive_all(GVirStream *self, GVirStreamSinkFunc func, gpointer user_data, GError **err)
362 gvir_stream_receive_all(GVirStream *self,
363 GCancellable *cancellable,
364 GVirStreamSinkFunc func,
365 gpointer user_data,
366 GError **err)
333367 {
334368 struct stream_sink_helper helper = {
335369 .self = self,
336370 .func = func,
337 .user_data = user_data
371 .user_data = user_data,
372 .cancellable = cancellable,
338373 };
339374 int r;
340375
343378
344379 r = virStreamRecvAll(self->priv->handle, stream_sink, &helper);
345380 if (r < 0) {
346 if (err != NULL)
347 *err = gvir_error_new_literal(GVIR_STREAM_ERROR,
348 0,
349 "Unable to perform RecvAll");
381 gvir_set_error_literal(err, GVIR_STREAM_ERROR,
382 0,
383 "Unable to perform RecvAll");
350384 }
351385
352386 return r;
375409 * Returns: Number of bytes read, or 0 if the end of stream reached,
376410 * or -1 on error.
377411 */
378 gssize gvir_stream_send(GVirStream *self, const gchar *buffer, gsize size,
379 GCancellable *cancellable, GError **error)
412 gssize gvir_stream_send(GVirStream *self,
413 const gchar *buffer,
414 gsize size,
415 GCancellable *cancellable,
416 GError **error)
380417 {
381418 int got;
382419
402439 GVirStream *self;
403440 GVirStreamSourceFunc func;
404441 gpointer user_data;
442 GCancellable *cancellable;
405443 };
406444
407445 static int
408446 stream_source(virStreamPtr st G_GNUC_UNUSED,
409 char *bytes, size_t nbytes, void *opaque)
447 char *bytes,
448 size_t nbytes,
449 void *opaque)
410450 {
411451 struct stream_source_helper *helper = opaque;
452
453 if (g_cancellable_is_cancelled(helper->cancellable))
454 return -1;
412455
413456 return helper->func(helper->self, bytes, nbytes, helper->user_data);
414457 }
416459 /**
417460 * gvir_stream_send_all:
418461 * @stream: the stream
462 * @cancellable: cancellation notifier
419463 * @func: (scope notified): the callback for writing data to application
420464 * @user_data: (closure): data to be passed to @callback
421465 * Returns: the number of bytes consumed or -1 upon error
425469 * to virStreamRecv, for apps that do blocking-I/o.
426470 */
427471 gssize
428 gvir_stream_send_all(GVirStream *self, GVirStreamSourceFunc func, gpointer user_data, GError **err)
472 gvir_stream_send_all(GVirStream *self,
473 GCancellable *cancellable,
474 GVirStreamSourceFunc func,
475 gpointer user_data,
476 GError **err)
429477 {
430478 struct stream_source_helper helper = {
431479 .self = self,
432480 .func = func,
433 .user_data = user_data
481 .user_data = user_data,
482 .cancellable = cancellable,
434483 };
435484 int r;
436485
439488
440489 r = virStreamSendAll(self->priv->handle, stream_source, &helper);
441490 if (r < 0) {
442 if (err != NULL)
443 *err = gvir_error_new_literal(GVIR_STREAM_ERROR,
444 0,
445 "Unable to perform SendAll");
491 gvir_set_error_literal(err, GVIR_STREAM_ERROR,
492 0,
493 "Unable to perform SendAll");
446494 }
447495
448496 return r;
449497 }
498
499
500 static void gvir_stream_handle_events(virStreamPtr st G_GNUC_UNUSED,
501 int events,
502 void *opaque)
503 {
504 GVirStream *stream = GVIR_STREAM(opaque);
505 GVirStreamPrivate *priv = stream->priv;
506 GList *tmp = priv->sources;
507
508 while (tmp) {
509 GVirStreamSource *source = tmp->data;
510 source->newCond = 0;
511 if (source->cond & GVIR_STREAM_IO_CONDITION_READABLE) {
512 if (events & VIR_STREAM_EVENT_READABLE)
513 source->newCond |= GVIR_STREAM_IO_CONDITION_READABLE;
514 if (events & VIR_STREAM_EVENT_HANGUP)
515 source->newCond |= GVIR_STREAM_IO_CONDITION_HANGUP;
516 if (events & VIR_STREAM_EVENT_ERROR)
517 source->newCond |= GVIR_STREAM_IO_CONDITION_ERROR;
518 }
519 if (source->cond & GVIR_STREAM_IO_CONDITION_WRITABLE) {
520 if (events & VIR_STREAM_EVENT_WRITABLE)
521 source->newCond |= GVIR_STREAM_IO_CONDITION_WRITABLE;
522 if (events & VIR_STREAM_EVENT_HANGUP)
523 source->newCond |= GVIR_STREAM_IO_CONDITION_HANGUP;
524 if (events & VIR_STREAM_EVENT_ERROR)
525 source->newCond |= GVIR_STREAM_IO_CONDITION_ERROR;
526 }
527 tmp = tmp->next;
528 }
529
530 }
531
532
533 static void gvir_stream_update_events(GVirStream *stream)
534 {
535 GVirStreamPrivate *priv = stream->priv;
536 int mask = 0;
537 GList *tmp = priv->sources;
538
539 while (tmp) {
540 GVirStreamSource *source = tmp->data;
541 if (source->cond & GVIR_STREAM_IO_CONDITION_READABLE)
542 mask |= VIR_STREAM_EVENT_READABLE;
543 if (source->cond & GVIR_STREAM_IO_CONDITION_WRITABLE)
544 mask |= VIR_STREAM_EVENT_WRITABLE;
545 tmp = tmp->next;
546 }
547
548 if (mask) {
549 if (priv->eventRegistered) {
550 virStreamEventUpdateCallback(priv->handle, mask);
551 } else {
552 virStreamEventAddCallback(priv->handle, mask,
553 gvir_stream_handle_events,
554 g_object_ref(stream),
555 g_object_unref);
556 priv->eventRegistered = TRUE;
557 }
558 } else {
559 if (priv->eventRegistered) {
560 virStreamEventRemoveCallback(priv->handle);
561 priv->eventRegistered = FALSE;
562 }
563 }
564 }
565
566 static gboolean gvir_stream_source_prepare(GSource *source,
567 gint *timeout)
568 {
569 GVirStreamSource *gsource = (GVirStreamSource*)source;
570 if (gsource->newCond) {
571 *timeout = 0;
572 return TRUE;
573 }
574 *timeout = -1;
575 return FALSE;
576 }
577
578 static gboolean gvir_stream_source_check(GSource *source)
579 {
580 GVirStreamSource *gsource = (GVirStreamSource*)source;
581 if (gsource->newCond)
582 return TRUE;
583 return FALSE;
584 }
585
586 static gboolean gvir_stream_source_dispatch(GSource *source,
587 GSourceFunc callback,
588 gpointer user_data)
589 {
590 GVirStreamSource *gsource = (GVirStreamSource*)source;
591 GVirStreamIOFunc func = (GVirStreamIOFunc)callback;
592 gboolean ret;
593 ret = func(gsource->stream, gsource->newCond, user_data);
594 gsource->newCond = 0;
595 return ret;
596 }
597
598 static void gvir_stream_source_finalize(GSource *source)
599 {
600 GVirStreamSource *gsource = (GVirStreamSource*)source;
601 GVirStreamPrivate *priv = gsource->stream->priv;
602
603 priv->sources = g_list_remove(priv->sources, source);
604
605 gvir_stream_update_events(gsource->stream);
606 }
607
608 GSourceFuncs gvir_stream_source_funcs = {
609 .prepare = gvir_stream_source_prepare,
610 .check = gvir_stream_source_check,
611 .dispatch = gvir_stream_source_dispatch,
612 .finalize = gvir_stream_source_finalize,
613 };
614
615
616 /**
617 * gvir_stream_add_watch: (skip):
618 * @stream: the stream
619 * @cond: the conditions to watch for (bitfield of #GVirStreamIOCondition)
620 * @func: (closure opaque): the function to call when the condition is satisfied
621 * @opaque: (closure): user data to pass to @func
622 *
623 * Adds a watch for @stream to the mainloop
624 *
625 * Returns: the event source id
626 */
627 guint gvir_stream_add_watch(GVirStream *stream,
628 GVirStreamIOCondition cond,
629 GVirStreamIOFunc func,
630 gpointer opaque)
631 {
632 return gvir_stream_add_watch_full(stream,
633 G_PRIORITY_DEFAULT,
634 cond,
635 func,
636 opaque,
637 NULL);
638 }
639
640 /**
641 * gvir_stream_add_watch_full:
642 * @stream: the stream
643 * @priority: the priority of the #GVirStream source
644 * @cond: the conditions to watch for (bitfield of #GVirStreamIOCondition)
645 * @func: (closure opaque): the function to call when the condition is satisfied
646 * @opaque: (closure): user data to pass to @func
647 * @notify: the function to call when the source is removed
648 *
649 * Adds a watch for @stream to the mainloop
650 *
651 * Returns: the event source id
652 * Rename to: gvir_stream_add_watch
653 */
654 guint gvir_stream_add_watch_full(GVirStream *stream,
655 gint priority,
656 GVirStreamIOCondition cond,
657 GVirStreamIOFunc func,
658 gpointer opaque,
659 GDestroyNotify notify)
660 {
661 GVirStreamPrivate *priv = stream->priv;
662 GVirStreamSource *source = (GVirStreamSource*)g_source_new(&gvir_stream_source_funcs,
663 sizeof(GVirStreamSource));
664 guint ret;
665
666 source->stream = stream;
667 source->cond = cond;
668
669 if (priority != G_PRIORITY_DEFAULT)
670 g_source_set_priority((GSource*)source, priority);
671
672 priv->sources = g_list_append(priv->sources, source);
673
674 gvir_stream_update_events(source->stream);
675
676 g_source_set_callback((GSource*)source, (GSourceFunc)func, opaque, notify);
677 ret = g_source_attach((GSource*)source, g_main_context_default());
678
679 g_source_unref((GSource*)source);
680
681 return ret;
682 }
00 /*
11 * libvirt-gobject-stream.h: libvirt gobject integration
22 *
3 * Copyright (C) 2011 Red Hat
3 * Copyright (C) 2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
9292 GType gvir_stream_get_type(void);
9393 GType gvir_stream_handle_get_type(void);
9494
95 gssize gvir_stream_receive_all(GVirStream *stream, GVirStreamSinkFunc func, gpointer user_data, GError **error);
96 gssize gvir_stream_receive(GVirStream *stream, gchar *buffer, gsize size, GCancellable *cancellable, GError **error);
95 typedef enum {
96 GVIR_STREAM_IO_CONDITION_READABLE = (1 << 0),
97 GVIR_STREAM_IO_CONDITION_WRITABLE = (1 << 1),
98 GVIR_STREAM_IO_CONDITION_HANGUP = (1 << 2),
99 GVIR_STREAM_IO_CONDITION_ERROR = (1 << 3),
100 } GVirStreamIOCondition;
97101
98 gssize gvir_stream_send_all(GVirStream *stream, GVirStreamSourceFunc func, gpointer user_data, GError **error);
99 gssize gvir_stream_send(GVirStream *stream, const gchar *buffer, gsize size, GCancellable *cancellable, GError **error);
102 typedef gboolean (*GVirStreamIOFunc)(GVirStream *stream,
103 GVirStreamIOCondition cond,
104 gpointer opaque);
105
106 guint gvir_stream_add_watch(GVirStream *stream,
107 GVirStreamIOCondition cond,
108 GVirStreamIOFunc func,
109 gpointer opaque);
110 guint gvir_stream_add_watch_full(GVirStream *stream,
111 gint priority,
112 GVirStreamIOCondition cond,
113 GVirStreamIOFunc func,
114 gpointer opaque,
115 GDestroyNotify notify);
116
117 gssize gvir_stream_receive_all(GVirStream *stream,
118 GCancellable *cancellable,
119 GVirStreamSinkFunc func,
120 gpointer user_data,
121 GError **error);
122 gssize gvir_stream_receive(GVirStream *stream,
123 gchar *buffer,
124 gsize size,
125 GCancellable *cancellable,
126 GError **error);
127
128 gssize gvir_stream_send_all(GVirStream *stream,
129 GCancellable *cancellable,
130 GVirStreamSourceFunc func,
131 gpointer user_data,
132 GError **error);
133 gssize gvir_stream_send(GVirStream *stream,
134 const gchar *buffer,
135 gsize size,
136 GCancellable *cancellable,
137 GError **error);
100138
101139 G_END_DECLS
102140
00 /*
11 * libvirt-gobject.h: libvirt gobject integration
22 *
3 * Copyright (C) 2010 Red Hat
3 * Copyright (C) 2010-2011 Red Hat, Inc.
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
0 LIBVIRT_GOBJECT_0.0.1 {
0 LIBVIRT_GOBJECT_0.0.4 {
11 global:
22 gvir_init_object;
33 gvir_init_object_check;
4343 gvir_domain_handle_get_type;
4444 gvir_domain_info_get_type;
4545 gvir_domain_state_get_type;
46 gvir_domain_start_flags_get_type;
4647 gvir_domain_get_name;
4748 gvir_domain_get_uuid;
4849 gvir_domain_get_id;
4950 gvir_domain_start;
5051 gvir_domain_resume;
5152 gvir_domain_stop;
53 gvir_domain_suspend;
54 gvir_domain_save;
55 gvir_domain_save_async;
56 gvir_domain_save_finish;
5257 gvir_domain_delete;
58 gvir_domain_open_console;
59 gvir_domain_open_graphics;
5360 gvir_domain_shutdown;
5461 gvir_domain_reboot;
5562 gvir_domain_get_config;
5663 gvir_domain_set_config;
5764 gvir_domain_get_info;
65 gvir_domain_get_persistent;
5866 gvir_domain_screenshot;
5967
6068 gvir_domain_snapshot_get_type;
9098 gvir_secret_get_config;
9199
92100 gvir_storage_pool_get_type;
101 gvir_storage_pool_info_get_type;
93102 gvir_storage_pool_handle_get_type;
94103 gvir_storage_pool_get_name;
95104 gvir_storage_pool_get_uuid;
96105 gvir_storage_pool_get_config;
106 gvir_storage_pool_get_info;
97107 gvir_storage_pool_refresh;
98108 gvir_storage_pool_refresh_async;
99109 gvir_storage_pool_refresh_finish;
108118 gvir_storage_pool_start_finish;
109119
110120 gvir_storage_vol_get_type;
121 gvir_storage_vol_info_get_type;
111122 gvir_storage_vol_handle_get_type;
112123 gvir_storage_vol_get_name;
113124 gvir_storage_vol_get_path;
114125 gvir_storage_vol_get_config;
126 gvir_storage_vol_get_info;
127 gvir_storage_vol_delete;
115128
116129 gvir_connection_handle_get_type;
117130
123136 gvir_manager_find_connection_by_uri;
124137
125138 gvir_stream_get_type;
139 gvir_stream_receive;
126140 gvir_stream_receive_all;
141 gvir_stream_send;
142 gvir_stream_send_all;
127143 gvir_stream_handle_get_type;
144 gvir_stream_add_watch;
145 gvir_stream_add_watch_full;
128146
129147 local:
130148 *;
55 Name: libvirt-gobject
66 Version: @VERSION@
77 Description: libvirt GObject library
8 Requires: gobject-2.0 libvirt-gconfig-1.0
8 Requires: gio-2.0 gobject-2.0 libvirt-gconfig-1.0
99 Libs: -L${libdir} -lvirt-gobject-1.0
10 Libs.private: @LIBVIRT_LIBS@
10 Requires.private: gthread-2.0 libvirt
1111 Cflags: -I${includedir}/libvirt-gobject-1.0
1616
1717 BuildRequires: mingw32-filesystem >= 23
1818 BuildRequires: mingw32-glib2
19 BuildRequires: mingw32-libvirt >= 0.9.4
19 BuildRequires: mingw32-libvirt >= 0.9.7
2020 BuildRequires: pkgconfig
2121
2222 BuildArch: noarch
2222
2323 install-data-local:
2424 $(mkinstalldirs) $(DESTDIR)$(pythondir)
25 @INSTALL@ -m 0644 $(srcdir)/libvirtglib.py $(DESTDIR)$(pythondir)
25 $(INSTALL) -m 0644 $(srcdir)/libvirtglib.py $(DESTDIR)$(pythondir)
2626
2727 uninstall-local:
2828 rm -f $(DESTDIR)$(pythondir)/libvirtglib.py
3131 else
3232 all:
3333 endif
34
150150 GIO2_LIBS = @GIO2_LIBS@
151151 GLIB2_CFLAGS = @GLIB2_CFLAGS@
152152 GLIB2_LIBS = @GLIB2_LIBS@
153 GLIB_MKENUMS = @GLIB_MKENUMS@
153154 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
154155 GOBJECT2_LIBS = @GOBJECT2_LIBS@
155156 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
158159 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
159160 GTHREAD2_LIBS = @GTHREAD2_LIBS@
160161 GTKDOC_CHECK = @GTKDOC_CHECK@
162 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
163 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
161164 GTKDOC_MKPDF = @GTKDOC_MKPDF@
162165 GTKDOC_REBASE = @GTKDOC_REBASE@
163166 G_IR_COMPILER = @G_IR_COMPILER@
609612
610613 @WITH_PYTHON_TRUE@install-data-local:
611614 @WITH_PYTHON_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pythondir)
612 @WITH_PYTHON_TRUE@ @INSTALL@ -m 0644 $(srcdir)/libvirtglib.py $(DESTDIR)$(pythondir)
615 @WITH_PYTHON_TRUE@ $(INSTALL) -m 0644 $(srcdir)/libvirtglib.py $(DESTDIR)$(pythondir)
613616
614617 @WITH_PYTHON_TRUE@uninstall-local:
615618 @WITH_PYTHON_TRUE@ rm -f $(DESTDIR)$(pythondir)/libvirtglib.py
00 /*
11 * libvirt-glib.c: Binding the glib event loop integration to python
22 *
3 * Copyright (C) 2008 Red Hat, Inc.
3 * Copyright (C) 2008 Red Hat, Inc., Inc.
44 *
55 * Daniel Berrange <berrange@redhat.com>
66 */
77
88 def event_register():
99 libvirtglibmod.event_register()
10
112112 GIO2_LIBS = @GIO2_LIBS@
113113 GLIB2_CFLAGS = @GLIB2_CFLAGS@
114114 GLIB2_LIBS = @GLIB2_LIBS@
115 GLIB_MKENUMS = @GLIB_MKENUMS@
115116 GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
116117 GOBJECT2_LIBS = @GOBJECT2_LIBS@
117118 GOBJECT_INTROSPECTION_CFLAGS = @GOBJECT_INTROSPECTION_CFLAGS@
120121 GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
121122 GTHREAD2_LIBS = @GTHREAD2_LIBS@
122123 GTKDOC_CHECK = @GTKDOC_CHECK@
124 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
125 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
123126 GTKDOC_MKPDF = @GTKDOC_MKPDF@
124127 GTKDOC_REBASE = @GTKDOC_REBASE@
125128 G_IR_COMPILER = @G_IR_COMPILER@