]>
Commit | Line | Data |
---|---|---|
113dd9cb LP |
1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
2 | #pragma once | |
3 | ||
e2d99934 ZJS |
4 | #include <sd-bus.h> |
5 | ||
113dd9cb | 6 | #include "time-util.h" |
ebaf5549 | 7 | #include "unit-def.h" |
113dd9cb LP |
8 | |
9 | typedef struct BootTimes { | |
10 | usec_t firmware_time; | |
11 | usec_t loader_time; | |
12 | usec_t kernel_time; | |
13 | usec_t kernel_done_time; | |
14 | usec_t initrd_time; | |
15 | usec_t userspace_time; | |
16 | usec_t finish_time; | |
7addfba9 | 17 | usec_t softreboot_start_time; |
113dd9cb LP |
18 | usec_t security_start_time; |
19 | usec_t security_finish_time; | |
20 | usec_t generators_start_time; | |
21 | usec_t generators_finish_time; | |
22 | usec_t unitsload_start_time; | |
23 | usec_t unitsload_finish_time; | |
24 | usec_t initrd_security_start_time; | |
25 | usec_t initrd_security_finish_time; | |
26 | usec_t initrd_generators_start_time; | |
27 | usec_t initrd_generators_finish_time; | |
28 | usec_t initrd_unitsload_start_time; | |
29 | usec_t initrd_unitsload_finish_time; | |
259046cf LB |
30 | /* Not strictly a timestamp, but we are going to show it next to the other timestamps */ |
31 | uint64_t soft_reboots_count; | |
113dd9cb LP |
32 | |
33 | /* | |
34 | * If we're analyzing the user instance, all timestamps will be offset by its own start-up timestamp, | |
35 | * which may be arbitrarily big. With "plot", this causes arbitrarily wide output SVG files which | |
36 | * almost completely consist of empty space. Thus we cancel out this offset. | |
37 | * | |
38 | * This offset is subtracted from times above by acquire_boot_times(), but it still needs to be | |
39 | * subtracted from unit-specific timestamps (so it is stored here for reference). | |
40 | */ | |
41 | usec_t reverse_offset; | |
42 | } BootTimes; | |
43 | ||
44 | typedef struct UnitTimes { | |
45 | bool has_data; | |
46 | char *name; | |
47 | usec_t activating; | |
48 | usec_t activated; | |
49 | usec_t deactivated; | |
50 | usec_t deactivating; | |
51 | usec_t time; | |
ebaf5549 | 52 | char **deps[_UNIT_DEPENDENCY_MAX]; |
113dd9cb LP |
53 | } UnitTimes; |
54 | ||
63d7632d | 55 | int acquire_boot_times(sd_bus *bus, bool require_finished, BootTimes **ret); |
ba474dad | 56 | int pretty_boot_time(sd_bus *bus, char **ret); |
113dd9cb | 57 | |
ebaf5549 | 58 | void unit_times_clear(UnitTimes *t); |
113dd9cb LP |
59 | UnitTimes* unit_times_free_array(UnitTimes *t); |
60 | DEFINE_TRIVIAL_CLEANUP_FUNC(UnitTimes*, unit_times_free_array); | |
61 | ||
63d7632d | 62 | int acquire_time_data(sd_bus *bus, bool require_finished, UnitTimes **out); |