options.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /*
  2. * QEMU migration capabilities
  3. *
  4. * Copyright (c) 2012-2023 Red Hat Inc
  5. *
  6. * Authors:
  7. * Orit Wasserman <owasserm@redhat.com>
  8. * Juan Quintela <quintela@redhat.com>
  9. *
  10. * This work is licensed under the terms of the GNU GPL, version 2 or later.
  11. * See the COPYING file in the top-level directory.
  12. */
  13. #ifndef QEMU_MIGRATION_OPTIONS_H
  14. #define QEMU_MIGRATION_OPTIONS_H
  15. #include "hw/qdev-properties.h"
  16. #include "hw/qdev-properties-system.h"
  17. #include "migration/client-options.h"
  18. /* migration properties */
  19. extern const Property migration_properties[];
  20. extern const size_t migration_properties_count;
  21. /* capabilities */
  22. bool migrate_auto_converge(void);
  23. bool migrate_colo(void);
  24. bool migrate_dirty_bitmaps(void);
  25. bool migrate_events(void);
  26. bool migrate_mapped_ram(void);
  27. bool migrate_ignore_shared(void);
  28. bool migrate_late_block_activate(void);
  29. bool migrate_multifd(void);
  30. bool migrate_pause_before_switchover(void);
  31. bool migrate_postcopy_blocktime(void);
  32. bool migrate_postcopy_preempt(void);
  33. bool migrate_rdma_pin_all(void);
  34. bool migrate_release_ram(void);
  35. bool migrate_return_path(void);
  36. bool migrate_validate_uuid(void);
  37. bool migrate_xbzrle(void);
  38. bool migrate_zero_copy_send(void);
  39. /*
  40. * pseudo capabilities
  41. *
  42. * These are functions that are used in a similar way to capabilities
  43. * check, but they are not a capability.
  44. */
  45. bool migrate_multifd_flush_after_each_section(void);
  46. bool migrate_postcopy(void);
  47. bool migrate_rdma(void);
  48. bool migrate_tls(void);
  49. /* capabilities helpers */
  50. bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp);
  51. /* parameters */
  52. const BitmapMigrationNodeAliasList *migrate_block_bitmap_mapping(void);
  53. bool migrate_has_block_bitmap_mapping(void);
  54. uint32_t migrate_checkpoint_delay(void);
  55. uint8_t migrate_cpu_throttle_increment(void);
  56. uint8_t migrate_cpu_throttle_initial(void);
  57. bool migrate_cpu_throttle_tailslow(void);
  58. bool migrate_direct_io(void);
  59. uint64_t migrate_downtime_limit(void);
  60. uint8_t migrate_max_cpu_throttle(void);
  61. uint64_t migrate_max_bandwidth(void);
  62. uint64_t migrate_avail_switchover_bandwidth(void);
  63. uint64_t migrate_max_postcopy_bandwidth(void);
  64. int migrate_multifd_channels(void);
  65. MultiFDCompression migrate_multifd_compression(void);
  66. int migrate_multifd_zlib_level(void);
  67. int migrate_multifd_qatzip_level(void);
  68. int migrate_multifd_zstd_level(void);
  69. uint8_t migrate_throttle_trigger_threshold(void);
  70. const char *migrate_tls_authz(void);
  71. const char *migrate_tls_creds(void);
  72. const char *migrate_tls_hostname(void);
  73. uint64_t migrate_xbzrle_cache_size(void);
  74. ZeroPageDetection migrate_zero_page_detection(void);
  75. /* parameters helpers */
  76. bool migrate_params_check(MigrationParameters *params, Error **errp);
  77. void migrate_params_init(MigrationParameters *params);
  78. #endif