1 /* SPDX-License-Identifier: LGPL-2.1-or-later */ 2 #pragma once 3 4 #include "sd-bus.h" 5 6 #include "unit.h" 7 8 extern const sd_bus_vtable bus_unit_vtable[]; 9 extern const sd_bus_vtable bus_unit_cgroup_vtable[]; 10 11 void bus_unit_send_change_signal(Unit *u); 12 void bus_unit_send_pending_change_signal(Unit *u, bool including_new); 13 int bus_unit_send_pending_freezer_message(Unit *u); 14 void bus_unit_send_removed_signal(Unit *u); 15 16 int bus_unit_method_start_generic(sd_bus_message *message, Unit *u, JobType job_type, bool reload_if_possible, sd_bus_error *error); 17 int bus_unit_method_enqueue_job(sd_bus_message *message, void *userdata, sd_bus_error *error); 18 int bus_unit_method_kill(sd_bus_message *message, void *userdata, sd_bus_error *error); 19 int bus_unit_method_reset_failed(sd_bus_message *message, void *userdata, sd_bus_error *error); 20 21 int bus_unit_set_properties(Unit *u, sd_bus_message *message, UnitWriteFlags flags, bool commit, sd_bus_error *error); 22 int bus_unit_method_set_properties(sd_bus_message *message, void *userdata, sd_bus_error *error); 23 int bus_unit_method_get_processes(sd_bus_message *message, void *userdata, sd_bus_error *error); 24 int bus_unit_method_attach_processes(sd_bus_message *message, void *userdata, sd_bus_error *error); 25 int bus_unit_method_ref(sd_bus_message *message, void *userdata, sd_bus_error *error); 26 int bus_unit_method_unref(sd_bus_message *message, void *userdata, sd_bus_error *error); 27 int bus_unit_method_clean(sd_bus_message *message, void *userdata, sd_bus_error *error); 28 int bus_unit_method_freeze(sd_bus_message *message, void *userdata, sd_bus_error *error); 29 int bus_unit_method_thaw(sd_bus_message *message, void *userdata, sd_bus_error *error); 30 31 typedef enum BusUnitQueueFlags { 32 BUS_UNIT_QUEUE_RELOAD_IF_POSSIBLE = 1 << 0, 33 BUS_UNIT_QUEUE_VERBOSE_REPLY = 1 << 1, 34 BUS_UNIT_QUEUE_RETURN_SKIP_ON_CONDITION_FAIL = 1 << 2, // FIXME: currently not used, will be changed soon 35 } BusUnitQueueFlags; 36 37 int bus_unit_queue_job_one( 38 sd_bus_message *message, 39 Unit *u, 40 JobType type, 41 JobMode mode, 42 BusUnitQueueFlags flags, 43 sd_bus_message *reply, 44 sd_bus_error *error); 45 int bus_unit_queue_job( 46 sd_bus_message *message, 47 Unit *u, 48 JobType type, 49 JobMode mode, 50 BusUnitQueueFlags flags, 51 sd_bus_error *error); 52 int bus_unit_validate_load_state(Unit *u, sd_bus_error *error); 53 54 int bus_unit_track_add_name(Unit *u, const char *name); 55 int bus_unit_track_add_sender(Unit *u, sd_bus_message *m); 56 int bus_unit_track_remove_sender(Unit *u, sd_bus_message *m); 57