Full Code of systemd/systemd-stable for AI

v255-stable 356c54394add cached
5709 files
67.8 MB
18.1M tokens
23971 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (72,343K chars total). Download the full file to get everything.
Repository: systemd/systemd-stable
Branch: v255-stable
Commit: 356c54394add
Files: 5709
Total size: 67.8 MB

Directory structure:
gitextract_x6b84s7z/

├── .clang-format
├── .clusterfuzzlite/
│   └── Dockerfile
├── .ctags
├── .dir-locals.el
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   ├── advanced-issue-labeler.yml
│   ├── codeql-config.yml
│   ├── codeql-custom.qls
│   ├── codeql-queries/
│   │   ├── PotentiallyDangerousFunction.ql
│   │   ├── UninitializedVariableWithCleanup.ql
│   │   └── qlpack.yml
│   ├── dependabot.yml
│   ├── development-freeze.yml
│   ├── labeler.yml
│   └── workflows/
│       ├── build_test.sh
│       ├── build_test.yml
│       ├── cflite_pr.yml
│       ├── cifuzz.yml
│       ├── codeql.yml
│       ├── coverity.yml
│       ├── development_freeze.yml
│       ├── differential-shellcheck.yml
│       ├── gather-pr-metadata.yml
│       ├── issue_labeler.yml
│       ├── labeler.yml
│       ├── linter.yml
│       ├── make_release.yml
│       ├── mkosi.yml
│       ├── requirements.txt
│       ├── scorecards.yml
│       ├── unit_tests.sh
│       └── unit_tests.yml
├── .gitignore
├── .mailmap
├── .packit.yml
├── .pylintrc
├── .semaphore/
│   ├── semaphore-runner.sh
│   └── semaphore.yml
├── .vimrc
├── .ycm_extra_conf.py
├── LICENSE.GPL2
├── LICENSE.LGPL2.1
├── LICENSES/
│   ├── BSD-2-Clause.txt
│   ├── BSD-3-Clause.txt
│   ├── CC0-1.0.txt
│   ├── LGPL-2.0-or-later.txt
│   ├── Linux-syscall-note.txt
│   ├── MIT-0.txt
│   ├── MIT.txt
│   ├── OFL-1.1.txt
│   ├── README.md
│   ├── lookup3-public-domain.txt
│   └── murmurhash2-public-domain.txt
├── Makefile
├── NEWS
├── README
├── README.md
├── TODO
├── catalog/
│   ├── meson.build
│   ├── systemd.be.catalog.in
│   ├── systemd.be@latin.catalog.in
│   ├── systemd.bg.catalog.in
│   ├── systemd.catalog.in
│   ├── systemd.da.catalog.in
│   ├── systemd.de.catalog.in
│   ├── systemd.fr.catalog.in
│   ├── systemd.hr.catalog.in
│   ├── systemd.hu.catalog.in
│   ├── systemd.it.catalog.in
│   ├── systemd.ko.catalog.in
│   ├── systemd.pl.catalog.in
│   ├── systemd.pt_BR.catalog.in
│   ├── systemd.ru.catalog.in
│   ├── systemd.sr.catalog.in
│   ├── systemd.zh_CN.catalog.in
│   └── systemd.zh_TW.catalog.in
├── coccinelle/
│   ├── bool-cast.cocci
│   ├── close-above-stdio.cocci
│   ├── cmp.cocci
│   ├── cond-omit-middle.cocci
│   ├── const-strlen.disabled
│   ├── debug-logging.cocci
│   ├── div-round-up.cocci
│   ├── dup-fcntl.cocci
│   ├── empty-or-dash.cocci
│   ├── empty-or-root.cocci
│   ├── empty-to-null.cocci
│   ├── empty-to-root.cocci
│   ├── enotsup.cocci
│   ├── equals-null.cocci
│   ├── errno-check.cocci
│   ├── errno-wrapper.cocci
│   ├── errno.cocci
│   ├── exit-0.cocci
│   ├── flags-set.cocci
│   ├── fopen-unlocked.cocci
│   ├── free_and_replace.cocci
│   ├── hashmap_free.cocci
│   ├── htonl.cocci
│   ├── in_set.cocci
│   ├── iovec-make.cocci
│   ├── isempty.cocci
│   ├── log-json.cocci
│   ├── macros.h
│   ├── malloc_multiply.cocci
│   ├── mempcpy.cocci
│   ├── memzero.cocci
│   ├── mfree.cocci
│   ├── mfree_return.cocci
│   ├── no-if-assignments.cocci
│   ├── not_in_set.cocci
│   ├── o-ndelay.cocci
│   ├── reallocarray.cocci
│   ├── redundant-if.cocci
│   ├── run-coccinelle.sh
│   ├── safe_close-no-if.cocci
│   ├── safe_close.cocci
│   ├── safe_closedir.cocci
│   ├── safe_fclose.cocci
│   ├── sd_event_source_disable_unref.cocci
│   ├── set_ensure_put.cocci
│   ├── strdupa.cocci
│   ├── strempty.cocci
│   ├── strjoin.cocci
│   ├── strjoina.cocci
│   ├── strv_free.cocci
│   ├── swap-two.cocci
│   ├── synthetic-errno.cocci
│   ├── take-fd.cocci
│   ├── take-ptr.cocci
│   ├── timestamp-is-set.cocci
│   ├── while-true.cocci
│   ├── xsprintf.cocci
│   └── zz-drop-braces.cocci
├── configure
├── docs/
│   ├── .gitattributes
│   ├── .gitignore
│   ├── API_FILE_SYSTEMS.md
│   ├── ARCHITECTURE.md
│   ├── AUTOMATIC_BOOT_ASSESSMENT.md
│   ├── AUTOPKGTEST.md
│   ├── BACKPORTS.md
│   ├── BLOCK_DEVICE_LOCKING.md
│   ├── BOOT.md
│   ├── BOOT_LOADER_INTERFACE.md
│   ├── BOOT_LOADER_SPECIFICATION.md
│   ├── BUILDING_IMAGES.md
│   ├── CATALOG.md
│   ├── CGROUP_DELEGATION.md
│   ├── CODE_OF_CONDUCT.md
│   ├── CODE_QUALITY.md
│   ├── CODING_STYLE.md
│   ├── CONTAINER_INTERFACE.md
│   ├── CONTRIBUTING.md
│   ├── CONTROL_GROUP_INTERFACE.md
│   ├── CONVERTING_TO_HOMED.md
│   ├── COREDUMP.md
│   ├── COREDUMP_PACKAGE_METADATA.md
│   ├── CREDENTIALS.md
│   ├── DAEMON_SOCKET_ACTIVATION.md
│   ├── DEBUGGING.md
│   ├── DESKTOP_ENVIRONMENTS.md
│   ├── DISCOVERABLE_PARTITIONS.md
│   ├── DISTRO_PORTING.md
│   ├── ELF_DLOPEN_METADATA.md
│   ├── ELF_PACKAGE_METADATA.md
│   ├── ENVIRONMENT.md
│   ├── FAQ.md
│   ├── FILE_DESCRIPTOR_STORE.md
│   ├── GROUP_RECORD.md
│   ├── HACKING.md
│   ├── HOME_DIRECTORY.md
│   ├── INCOMPATIBILITIES.md
│   ├── INHIBITOR_LOCKS.md
│   ├── INITRD_INTERFACE.md
│   ├── JOURNAL_EXPORT_FORMATS.md
│   ├── JOURNAL_FILE_FORMAT.md
│   ├── JOURNAL_NATIVE_PROTOCOL.md
│   ├── MEMORY_PRESSURE.md
│   ├── MINIMAL_BUILDS.md
│   ├── MOUNT_REQUIREMENTS.md
│   ├── MY_SERVICE_CANT_GET_REATLIME.md
│   ├── NETWORK_ONLINE.md
│   ├── OPTIMIZATIONS.md
│   ├── PASSWORD_AGENTS.md
│   ├── PAX_CONTROL_GROUPS.md
│   ├── PORTABILITY_AND_STABILITY.md
│   ├── PORTABLE_SERVICES.md
│   ├── PORTING_TO_NEW_ARCHITECTURES.md
│   ├── PREDICTABLE_INTERFACE_NAMES.md
│   ├── PRESET.md
│   ├── RANDOM_SEEDS.md
│   ├── RELEASE.md
│   ├── RESOLVED-VPNS.md
│   ├── ROOT_STORAGE_DAEMONS.md
│   ├── SECURITY.md
│   ├── SEPARATE_USR_IS_BROKEN.md
│   ├── SYSLOG.md
│   ├── SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md
│   ├── TEMPORARY_DIRECTORIES.md
│   ├── TESTING_WITH_SANITIZERS.md
│   ├── THE_CASE_FOR_THE_USR_MERGE.md
│   ├── TIPS_AND_TRICKS.md
│   ├── TPM2_PCR_MEASUREMENTS.md
│   ├── TRANSIENT-SETTINGS.md
│   ├── TRANSLATORS.md
│   ├── UIDS-GIDS.md
│   ├── USERDB_AND_DESKTOPS.md
│   ├── USER_GROUP_API.md
│   ├── USER_NAMES.md
│   ├── USER_RECORD.md
│   ├── VIRTUALIZED_TESTING.md
│   ├── WRITING_DESKTOP_ENVIRONMENTS.md
│   ├── WRITING_DISPLAY_MANAGERS.md
│   ├── WRITING_NETWORK_CONFIGURATION_MANAGERS.md
│   ├── WRITING_RESOLVER_CLIENTS.md
│   ├── WRITING_VM_AND_CONTAINER_MANAGERS.md
│   ├── _config.yml
│   ├── _data/
│   │   └── extra_pages.json
│   ├── _includes/
│   │   ├── footer.html
│   │   ├── head.html
│   │   └── header.html
│   ├── _layouts/
│   │   ├── default.html
│   │   └── forward.html
│   ├── index.md
│   ├── style.css
│   ├── sysvinit/
│   │   ├── README.in
│   │   └── meson.build
│   └── var-log/
│       ├── README.logs
│       └── meson.build
├── factory/
│   ├── etc/
│   │   ├── issue
│   │   ├── nsswitch.conf
│   │   └── pam.d/
│   │       ├── other
│   │       └── system-auth
│   └── templates/
│       ├── locale.conf.in
│       ├── meson.build
│       └── vconsole.conf.in
├── hwdb.d/
│   ├── .gitattributes
│   ├── .gitignore
│   ├── 20-OUI.hwdb
│   ├── 20-acpi-vendor.hwdb
│   ├── 20-acpi-vendor.hwdb.patch
│   ├── 20-bluetooth-vendor-product.hwdb
│   ├── 20-dmi-id.hwdb
│   ├── 20-net-ifname.hwdb
│   ├── 20-pci-classes.hwdb
│   ├── 20-pci-vendor-model.hwdb
│   ├── 20-sdio-classes.hwdb
│   ├── 20-sdio-vendor-model.hwdb
│   ├── 20-usb-classes.hwdb
│   ├── 20-usb-vendor-model.hwdb
│   ├── 20-vmbus-class.hwdb
│   ├── 60-autosuspend-fingerprint-reader.hwdb
│   ├── 60-autosuspend.hwdb
│   ├── 60-evdev.hwdb
│   ├── 60-input-id.hwdb
│   ├── 60-keyboard.hwdb
│   ├── 60-seat.hwdb
│   ├── 60-sensor.hwdb
│   ├── 70-analyzers.hwdb
│   ├── 70-av-production.hwdb
│   ├── 70-cameras.hwdb
│   ├── 70-hardware-wallets.hwdb
│   ├── 70-joystick.hwdb
│   ├── 70-lights.hwdb
│   ├── 70-maker-tools.hwdb
│   ├── 70-mouse.hwdb
│   ├── 70-pda.hwdb
│   ├── 70-pointingstick.hwdb
│   ├── 70-software-radio.hwdb
│   ├── 70-sound-card.hwdb
│   ├── 70-touchpad.hwdb
│   ├── 80-ieee1394-unit-function.hwdb
│   ├── 82-net-auto-link-local.hwdb
│   ├── README
│   ├── acpi-update.py
│   ├── acpi_id_registry.csv
│   ├── ids_parser.py
│   ├── ma-large.txt
│   ├── ma-medium.txt
│   ├── ma-small.txt
│   ├── meson.build
│   ├── parse_hwdb.py
│   ├── pci.ids
│   ├── pnp_id_registry.csv
│   ├── sdio.ids
│   └── usb.ids
├── man/
│   ├── .dir-locals.el
│   ├── 50-xdg-data-dirs.sh
│   ├── 90-rearrange-path.py
│   ├── binfmt.d.xml
│   ├── bootctl.xml
│   ├── bootup.xml
│   ├── busctl.xml
│   ├── cgroup-sandboxing.xml
│   ├── check-os-release-simple.py
│   ├── check-os-release.py
│   ├── check-os-release.sh
│   ├── common-variables.xml
│   ├── coredump.conf.xml
│   ├── coredumpctl.xml
│   ├── crypttab.xml
│   ├── custom-entities.ent.in
│   ├── custom-html.xsl
│   ├── custom-man.xsl
│   ├── daemon.xml
│   ├── directives-template.xml
│   ├── dnssec-trust-anchors.d.xml
│   ├── environment.d.xml
│   ├── event-quick-child.c
│   ├── fido2-crypttab.sh
│   ├── file-hierarchy.xml
│   ├── glib-event-glue.c
│   ├── homectl.xml
│   ├── homed.conf.xml
│   ├── hostname.xml
│   ├── hostnamectl.xml
│   ├── html.in
│   ├── hwdb-usb-device.c
│   ├── hwdb.xml
│   ├── id128-app-specific.c
│   ├── inotify-watch-tmp.c
│   ├── integritytab.xml
│   ├── iocost.conf.xml
│   ├── journal-enumerate-fields.c
│   ├── journal-iterate-foreach.c
│   ├── journal-iterate-poll.c
│   ├── journal-iterate-unique.c
│   ├── journal-iterate-wait.c
│   ├── journal-remote.conf.xml
│   ├── journal-stream-fd.c
│   ├── journal-upload.conf.xml
│   ├── journalctl.xml
│   ├── journald.conf.xml
│   ├── kernel-command-line.xml
│   ├── kernel-install.xml
│   ├── libsystemd-pkgconfig.xml
│   ├── libsystemd.xml
│   ├── libudev.xml
│   ├── loader.conf.xml
│   ├── locale.conf.xml
│   ├── localectl.xml
│   ├── localtime.xml
│   ├── logcontrol-example.c
│   ├── loginctl.xml
│   ├── logind.conf.xml
│   ├── machine-id.xml
│   ├── machine-info.xml
│   ├── machinectl.xml
│   ├── man.in
│   ├── meson.build
│   ├── modules-load.d.xml
│   ├── networkctl.xml
│   ├── networkd.conf.xml
│   ├── notify-selfcontained-example.c
│   ├── nss-myhostname.xml
│   ├── nss-mymachines.xml
│   ├── nss-resolve.xml
│   ├── nss-systemd.xml
│   ├── oomctl.xml
│   ├── oomd.conf.xml
│   ├── org.freedesktop.LogControl1.xml
│   ├── org.freedesktop.home1.xml
│   ├── org.freedesktop.hostname1.xml
│   ├── org.freedesktop.import1.xml
│   ├── org.freedesktop.locale1.xml
│   ├── org.freedesktop.login1.xml
│   ├── org.freedesktop.machine1.xml
│   ├── org.freedesktop.network1.xml
│   ├── org.freedesktop.oom1.xml
│   ├── org.freedesktop.portable1.xml
│   ├── org.freedesktop.resolve1.xml
│   ├── org.freedesktop.systemd1.xml
│   ├── org.freedesktop.timedate1.xml
│   ├── os-release.xml
│   ├── pam_systemd.xml
│   ├── pam_systemd_home.xml
│   ├── pam_systemd_loadkey.xml
│   ├── path-documents.c
│   ├── portablectl.xml
│   ├── poweroff.xml
│   ├── print-unit-path-call-method.c
│   ├── print-unit-path.c
│   ├── pstore.conf.xml
│   ├── repart.d.xml
│   ├── resolvectl.xml
│   ├── resolved.conf.xml
│   ├── rules/
│   │   └── meson.build
│   ├── runlevel.xml
│   ├── sd-bus-container-append.c
│   ├── sd-bus-container-read.c
│   ├── sd-bus-errors.xml
│   ├── sd-bus.xml
│   ├── sd-daemon.xml
│   ├── sd-device.xml
│   ├── sd-event.xml
│   ├── sd-hwdb.xml
│   ├── sd-id128.xml
│   ├── sd-journal.xml
│   ├── sd-login.xml
│   ├── sd_booted.xml
│   ├── sd_bus_add_match.xml
│   ├── sd_bus_add_node_enumerator.xml
│   ├── sd_bus_add_object.xml
│   ├── sd_bus_add_object_manager.xml
│   ├── sd_bus_attach_event.xml
│   ├── sd_bus_call.xml
│   ├── sd_bus_call_method.xml
│   ├── sd_bus_can_send.xml
│   ├── sd_bus_close.xml
│   ├── sd_bus_creds_get_pid.xml
│   ├── sd_bus_creds_new_from_pid.xml
│   ├── sd_bus_default.xml
│   ├── sd_bus_emit_signal.xml
│   ├── sd_bus_enqueue_for_read.xml
│   ├── sd_bus_error-example.c
│   ├── sd_bus_error.xml
│   ├── sd_bus_error_add_map.xml
│   ├── sd_bus_get_current_handler.xml
│   ├── sd_bus_get_fd.xml
│   ├── sd_bus_get_n_queued_read.xml
│   ├── sd_bus_get_name_creds.xml
│   ├── sd_bus_get_name_machine_id.xml
│   ├── sd_bus_interface_name_is_valid.xml
│   ├── sd_bus_is_open.xml
│   ├── sd_bus_list_names.xml
│   ├── sd_bus_message_append.xml
│   ├── sd_bus_message_append_array.xml
│   ├── sd_bus_message_append_basic.xml
│   ├── sd_bus_message_append_string_memfd.xml
│   ├── sd_bus_message_append_strv.xml
│   ├── sd_bus_message_at_end.xml
│   ├── sd_bus_message_copy.xml
│   ├── sd_bus_message_dump.xml
│   ├── sd_bus_message_get_cookie.xml
│   ├── sd_bus_message_get_monotonic_usec.xml
│   ├── sd_bus_message_get_signature.xml
│   ├── sd_bus_message_get_type.xml
│   ├── sd_bus_message_new.xml
│   ├── sd_bus_message_new_method_call.xml
│   ├── sd_bus_message_new_method_error.xml
│   ├── sd_bus_message_new_signal.xml
│   ├── sd_bus_message_open_container.xml
│   ├── sd_bus_message_read.xml
│   ├── sd_bus_message_read_array.xml
│   ├── sd_bus_message_read_basic.xml
│   ├── sd_bus_message_read_strv.xml
│   ├── sd_bus_message_rewind.xml
│   ├── sd_bus_message_seal.xml
│   ├── sd_bus_message_sensitive.xml
│   ├── sd_bus_message_set_destination.xml
│   ├── sd_bus_message_set_expect_reply.xml
│   ├── sd_bus_message_skip.xml
│   ├── sd_bus_message_verify_type.xml
│   ├── sd_bus_negotiate_fds.xml
│   ├── sd_bus_new.xml
│   ├── sd_bus_path_encode.xml
│   ├── sd_bus_process.xml
│   ├── sd_bus_query_sender_creds.xml
│   ├── sd_bus_reply_method_error.xml
│   ├── sd_bus_reply_method_return.xml
│   ├── sd_bus_request_name.xml
│   ├── sd_bus_send.xml
│   ├── sd_bus_service_reconnect.c
│   ├── sd_bus_set_address.xml
│   ├── sd_bus_set_close_on_exit.xml
│   ├── sd_bus_set_connected_signal.xml
│   ├── sd_bus_set_description.xml
│   ├── sd_bus_set_exit_on_disconnect.xml
│   ├── sd_bus_set_fd.xml
│   ├── sd_bus_set_method_call_timeout.xml
│   ├── sd_bus_set_property.xml
│   ├── sd_bus_set_sender.xml
│   ├── sd_bus_set_server.xml
│   ├── sd_bus_set_watch_bind.xml
│   ├── sd_bus_slot_get_bus.xml
│   ├── sd_bus_slot_ref.xml
│   ├── sd_bus_slot_set_description.xml
│   ├── sd_bus_slot_set_destroy_callback.xml
│   ├── sd_bus_slot_set_floating.xml
│   ├── sd_bus_slot_set_userdata.xml
│   ├── sd_bus_start.xml
│   ├── sd_bus_track_add_name.xml
│   ├── sd_bus_track_new.xml
│   ├── sd_bus_wait.xml
│   ├── sd_device_get_syspath.xml
│   ├── sd_device_ref.xml
│   ├── sd_event_add_child.xml
│   ├── sd_event_add_defer.xml
│   ├── sd_event_add_inotify.xml
│   ├── sd_event_add_io.xml
│   ├── sd_event_add_memory_pressure.xml
│   ├── sd_event_add_signal.xml
│   ├── sd_event_add_time.xml
│   ├── sd_event_exit.xml
│   ├── sd_event_get_fd.xml
│   ├── sd_event_new.xml
│   ├── sd_event_now.xml
│   ├── sd_event_run.xml
│   ├── sd_event_set_signal_exit.xml
│   ├── sd_event_set_watchdog.xml
│   ├── sd_event_source_get_event.xml
│   ├── sd_event_source_get_pending.xml
│   ├── sd_event_source_set_description.xml
│   ├── sd_event_source_set_destroy_callback.xml
│   ├── sd_event_source_set_enabled.xml
│   ├── sd_event_source_set_exit_on_failure.xml
│   ├── sd_event_source_set_floating.xml
│   ├── sd_event_source_set_prepare.xml
│   ├── sd_event_source_set_priority.xml
│   ├── sd_event_source_set_ratelimit.xml
│   ├── sd_event_source_set_userdata.xml
│   ├── sd_event_source_unref.xml
│   ├── sd_event_wait.xml
│   ├── sd_get_seats.xml
│   ├── sd_hwdb_get.xml
│   ├── sd_hwdb_new.xml
│   ├── sd_id128_get_machine.xml
│   ├── sd_id128_randomize.xml
│   ├── sd_id128_to_string.xml
│   ├── sd_is_fifo.xml
│   ├── sd_journal_add_match.xml
│   ├── sd_journal_enumerate_fields.xml
│   ├── sd_journal_get_catalog.xml
│   ├── sd_journal_get_cursor.xml
│   ├── sd_journal_get_cutoff_realtime_usec.xml
│   ├── sd_journal_get_data.xml
│   ├── sd_journal_get_fd.xml
│   ├── sd_journal_get_realtime_usec.xml
│   ├── sd_journal_get_seqnum.xml
│   ├── sd_journal_get_usage.xml
│   ├── sd_journal_has_runtime_files.xml
│   ├── sd_journal_next.xml
│   ├── sd_journal_open.xml
│   ├── sd_journal_print.xml
│   ├── sd_journal_query_unique.xml
│   ├── sd_journal_seek_head.xml
│   ├── sd_journal_stream_fd.xml
│   ├── sd_listen_fds.xml
│   ├── sd_login_monitor_new.xml
│   ├── sd_machine_get_class.xml
│   ├── sd_notify.xml
│   ├── sd_path_lookup.xml
│   ├── sd_pid_get_owner_uid.xml
│   ├── sd_seat_get_active.xml
│   ├── sd_session_is_active.xml
│   ├── sd_uid_get_state.xml
│   ├── sd_watchdog_enabled.xml
│   ├── send-unit-files-changed.c
│   ├── shutdown.xml
│   ├── smbios-type-11.xml
│   ├── standard-conf.xml
│   ├── standard-options.xml
│   ├── standard-specifiers.xml
│   ├── supported-controllers.xml
│   ├── sysctl.d.xml
│   ├── system-only.xml
│   ├── system-or-user-ns.xml
│   ├── systemctl.xml
│   ├── systemd-ac-power.xml
│   ├── systemd-analyze.xml
│   ├── systemd-ask-password-console.service.xml
│   ├── systemd-ask-password.xml
│   ├── systemd-backlight@.service.xml
│   ├── systemd-battery-check.service.xml
│   ├── systemd-binfmt.service.xml
│   ├── systemd-bless-boot-generator.xml
│   ├── systemd-bless-boot.service.xml
│   ├── systemd-boot-check-no-failures.service.xml
│   ├── systemd-boot-random-seed.service.xml
│   ├── systemd-boot.xml
│   ├── systemd-bsod.service.xml
│   ├── systemd-cat.xml
│   ├── systemd-cgls.xml
│   ├── systemd-cgtop.xml
│   ├── systemd-coredump.xml
│   ├── systemd-creds.xml
│   ├── systemd-cryptenroll.xml
│   ├── systemd-cryptsetup-generator.xml
│   ├── systemd-cryptsetup.xml
│   ├── systemd-debug-generator.xml
│   ├── systemd-delta.xml
│   ├── systemd-detect-virt.xml
│   ├── systemd-dissect.xml
│   ├── systemd-environment-d-generator.xml
│   ├── systemd-escape.xml
│   ├── systemd-firstboot.xml
│   ├── systemd-fsck@.service.xml
│   ├── systemd-fstab-generator.xml
│   ├── systemd-getty-generator.xml
│   ├── systemd-gpt-auto-generator.xml
│   ├── systemd-hibernate-resume-generator.xml
│   ├── systemd-hibernate-resume.service.xml
│   ├── systemd-homed.service.xml
│   ├── systemd-hostnamed.service.xml
│   ├── systemd-hwdb.xml
│   ├── systemd-id128.xml
│   ├── systemd-importd.service.xml
│   ├── systemd-inhibit.xml
│   ├── systemd-initctl.service.xml
│   ├── systemd-integritysetup-generator.xml
│   ├── systemd-integritysetup@.service.xml
│   ├── systemd-journal-gatewayd.service.xml
│   ├── systemd-journal-remote.service.xml
│   ├── systemd-journal-upload.service.xml
│   ├── systemd-journald.service.xml
│   ├── systemd-localed.service.xml
│   ├── systemd-logind.service.xml
│   ├── systemd-machine-id-commit.service.xml
│   ├── systemd-machine-id-setup.xml
│   ├── systemd-machined.service.xml
│   ├── systemd-makefs@.service.xml
│   ├── systemd-measure.xml
│   ├── systemd-modules-load.service.xml
│   ├── systemd-mount.xml
│   ├── systemd-network-generator.service.xml
│   ├── systemd-networkd-wait-online.service.xml
│   ├── systemd-networkd.service.xml
│   ├── systemd-notify.xml
│   ├── systemd-nspawn.xml
│   ├── systemd-oomd.service.xml
│   ├── systemd-path.xml
│   ├── systemd-pcrlock.xml
│   ├── systemd-pcrphase.service.xml
│   ├── systemd-portabled.service.xml
│   ├── systemd-poweroff.service.xml
│   ├── systemd-pstore.service.xml
│   ├── systemd-quotacheck.service.xml
│   ├── systemd-random-seed.service.xml
│   ├── systemd-rc-local-generator.xml
│   ├── systemd-remount-fs.service.xml
│   ├── systemd-repart.xml
│   ├── systemd-resolved.service.xml
│   ├── systemd-rfkill.service.xml
│   ├── systemd-run-generator.xml
│   ├── systemd-run.xml
│   ├── systemd-sleep.conf.xml
│   ├── systemd-socket-activate.xml
│   ├── systemd-socket-proxyd.xml
│   ├── systemd-soft-reboot.service.xml
│   ├── systemd-stdio-bridge.xml
│   ├── systemd-storagetm.service.xml
│   ├── systemd-stub.xml
│   ├── systemd-suspend.service.xml
│   ├── systemd-sysctl.service.xml
│   ├── systemd-sysext.xml
│   ├── systemd-system-update-generator.xml
│   ├── systemd-system.conf.xml
│   ├── systemd-sysupdate.xml
│   ├── systemd-sysusers.xml
│   ├── systemd-sysv-generator.xml
│   ├── systemd-time-wait-sync.service.xml
│   ├── systemd-timedated.service.xml
│   ├── systemd-timesyncd.service.xml
│   ├── systemd-tmpfiles.xml
│   ├── systemd-tpm2-setup.service.xml
│   ├── systemd-tty-ask-password-agent.xml
│   ├── systemd-udev-settle.service.xml
│   ├── systemd-udevd.service.xml
│   ├── systemd-update-done.service.xml
│   ├── systemd-update-utmp.service.xml
│   ├── systemd-user-sessions.service.xml
│   ├── systemd-userdbd.service.xml
│   ├── systemd-vconsole-setup.service.xml
│   ├── systemd-veritysetup-generator.xml
│   ├── systemd-veritysetup@.service.xml
│   ├── systemd-vmspawn.xml
│   ├── systemd-volatile-root.service.xml
│   ├── systemd-xdg-autostart-generator.xml
│   ├── systemd.automount.xml
│   ├── systemd.device.xml
│   ├── systemd.dnssd.xml
│   ├── systemd.environment-generator.xml
│   ├── systemd.exec.xml
│   ├── systemd.generator.xml
│   ├── systemd.image-policy.xml
│   ├── systemd.journal-fields.xml
│   ├── systemd.kill.xml
│   ├── systemd.link.xml
│   ├── systemd.mount.xml
│   ├── systemd.net-naming-scheme.xml
│   ├── systemd.netdev.xml
│   ├── systemd.network.xml
│   ├── systemd.nspawn.xml
│   ├── systemd.offline-updates.xml
│   ├── systemd.path.xml
│   ├── systemd.pcrlock.xml
│   ├── systemd.preset.xml
│   ├── systemd.resource-control.xml
│   ├── systemd.scope.xml
│   ├── systemd.service.xml
│   ├── systemd.slice.xml
│   ├── systemd.socket.xml
│   ├── systemd.special.xml
│   ├── systemd.swap.xml
│   ├── systemd.syntax.xml
│   ├── systemd.system-credentials.xml
│   ├── systemd.target.xml
│   ├── systemd.time.xml
│   ├── systemd.timer.xml
│   ├── systemd.unit.xml
│   ├── systemd.xml
│   ├── sysupdate.d.xml
│   ├── sysusers.d.xml
│   ├── tc.xml
│   ├── telinit.xml
│   ├── threads-aware.xml
│   ├── timedatectl.xml
│   ├── timesyncd.conf.xml
│   ├── tmpfiles.d.xml
│   ├── tpm2-crypttab.sh
│   ├── udev.conf.xml
│   ├── udev.xml
│   ├── udev_device_get_syspath.xml
│   ├── udev_device_has_tag.xml
│   ├── udev_device_new_from_syspath.xml
│   ├── udev_enumerate_add_match_subsystem.xml
│   ├── udev_enumerate_new.xml
│   ├── udev_enumerate_scan_devices.xml
│   ├── udev_list_entry.xml
│   ├── udev_monitor_filter_update.xml
│   ├── udev_monitor_new_from_netlink.xml
│   ├── udev_monitor_receive_device.xml
│   ├── udev_new.xml
│   ├── udevadm.xml
│   ├── uki.conf.example
│   ├── ukify.xml
│   ├── unit-states.xml
│   ├── user-system-options.xml
│   ├── user@.service.xml
│   ├── userdbctl.xml
│   ├── varlinkctl.xml
│   ├── vconsole.conf.xml
│   ├── veritytab.xml
│   ├── version-info.xml
│   ├── vtable-example.c
│   ├── vtable-example.xml
│   └── yubikey-crypttab.sh
├── meson.build
├── meson_options.txt
├── mkosi.conf
├── mkosi.conf.d/
│   ├── 05-qemu-mem.conf
│   ├── 10-centos.conf
│   ├── 10-debian.conf
│   ├── 10-extra-search-paths.conf
│   ├── 10-fedora.conf
│   ├── 10-opensuse.conf
│   ├── 10-tools.conf
│   └── 10-ubuntu.conf
├── mkosi.extra/
│   └── root/
│       └── .gdbinit
├── mkosi.images/
│   ├── base/
│   │   ├── mkosi.build.chroot
│   │   ├── mkosi.conf
│   │   ├── mkosi.conf.d/
│   │   │   ├── 10-arch.conf
│   │   │   ├── 10-centos-fedora.conf
│   │   │   ├── 10-debian-ubuntu.conf
│   │   │   ├── 10-debian.conf
│   │   │   ├── 10-fedora.conf
│   │   │   ├── 10-opensuse.conf
│   │   │   └── 10-ubuntu.conf
│   │   └── mkosi.extra/
│   │       └── usr/
│   │           └── lib/
│   │               ├── systemd/
│   │               │   └── system-preset/
│   │               │       ├── 00-mkosi.preset
│   │               │       └── 99-mkosi.preset
│   │               └── tmpfiles.d/
│   │                   └── locale.conf
│   ├── initrd/
│   │   ├── mkosi.conf
│   │   ├── mkosi.conf.d/
│   │   │   ├── 10-centos.conf
│   │   │   ├── 10-default.conf
│   │   │   └── 10-opensuse.conf
│   │   └── mkosi.postinst
│   └── system/
│       ├── mkosi.conf
│       ├── mkosi.conf.d/
│       │   ├── 05-initrd.conf
│       │   ├── 10-arch.conf
│       │   ├── 10-centos/
│       │   │   ├── mkosi.conf
│       │   │   ├── mkosi.extra/
│       │   │   │   └── usr/
│       │   │   │       └── lib/
│       │   │   │           └── repart.d/
│       │   │   │               └── 20-root.conf.d/
│       │   │   │                   └── xfs.conf
│       │   │   └── mkosi.repart/
│       │   │       └── 10-usr.conf.d/
│       │   │           └── squashfs.conf
│       │   ├── 10-centos-fedora.conf
│       │   ├── 10-debian-amd64.conf
│       │   ├── 10-debian-arm64.conf
│       │   ├── 10-debian-ubuntu.conf
│       │   ├── 10-fedora.conf
│       │   ├── 10-opensuse.conf
│       │   └── 10-ubuntu.conf
│       ├── mkosi.extra/
│       │   ├── etc/
│       │   │   └── issue
│       │   └── usr/
│       │       ├── lib/
│       │       │   ├── repart.d/
│       │       │   │   ├── 15-swap.conf
│       │       │   │   └── 20-root.conf
│       │       │   ├── systemd/
│       │       │   │   ├── journald.conf.d/
│       │       │   │   │   └── 50-persistent.conf
│       │       │   │   ├── mkosi-check-and-shutdown.sh
│       │       │   │   └── system/
│       │       │   │       └── mkosi-check-and-shutdown.service
│       │       │   └── tmpfiles.d/
│       │       │       └── 99-mkosi.conf
│       │       └── share/
│       │           └── factory/
│       │               └── mkosi/
│       │                   └── gdbinit.d/
│       │                       └── systemd.gdb
│       ├── mkosi.finalize
│       ├── mkosi.postinst.chroot
│       └── mkosi.repart/
│           ├── 00-esp.conf
│           ├── 10-usr.conf
│           ├── 11-usr-verity.conf
│           └── 12-usr-verity-sig.conf
├── mkosi.kernel.config
├── modprobe.d/
│   ├── README
│   ├── meson.build
│   └── systemd.conf
├── network/
│   ├── 80-6rd-tunnel.network
│   ├── 80-auto-link-local.network.example
│   ├── 80-container-host0.network
│   ├── 80-container-vb.network
│   ├── 80-container-ve.network
│   ├── 80-container-vz.network
│   ├── 80-vm-vt.network
│   ├── 80-wifi-adhoc.network
│   ├── 80-wifi-ap.network.example
│   ├── 80-wifi-station.network.example
│   ├── 89-ethernet.network.example
│   ├── 99-default.link
│   └── meson.build
├── po/
│   ├── .gitattributes
│   ├── LINGUAS
│   ├── POTFILES.in
│   ├── POTFILES.skip
│   ├── be.po
│   ├── be@latin.po
│   ├── bg.po
│   ├── ca.po
│   ├── cs.po
│   ├── da.po
│   ├── de.po
│   ├── el.po
│   ├── es.po
│   ├── et.po
│   ├── eu.po
│   ├── fi.po
│   ├── fr.po
│   ├── gl.po
│   ├── he.po
│   ├── hr.po
│   ├── hu.po
│   ├── id.po
│   ├── it.po
│   ├── its/
│   │   ├── polkit.its
│   │   └── polkit.loc
│   ├── ja.po
│   ├── ka.po
│   ├── kab.po
│   ├── ko.po
│   ├── lt.po
│   ├── meson.build
│   ├── nl.po
│   ├── pa.po
│   ├── pl.po
│   ├── pt.po
│   ├── pt_BR.po
│   ├── ro.po
│   ├── ru.po
│   ├── si.po
│   ├── sk.po
│   ├── sr.po
│   ├── sv.po
│   ├── systemd.pot
│   ├── tr.po
│   ├── uk.po
│   ├── zh_CN.po
│   └── zh_TW.po
├── presets/
│   ├── 90-systemd.preset
│   ├── meson.build
│   └── user/
│       └── 90-systemd.preset
├── rules.d/
│   ├── 50-udev-default.rules.in
│   ├── 60-autosuspend.rules
│   ├── 60-block.rules
│   ├── 60-cdrom_id.rules
│   ├── 60-dmi-id.rules
│   ├── 60-drm.rules
│   ├── 60-evdev.rules
│   ├── 60-fido-id.rules
│   ├── 60-infiniband.rules
│   ├── 60-input-id.rules
│   ├── 60-persistent-alsa.rules
│   ├── 60-persistent-input.rules
│   ├── 60-persistent-storage-mtd.rules
│   ├── 60-persistent-storage-tape.rules
│   ├── 60-persistent-storage.rules.in
│   ├── 60-persistent-v4l.rules
│   ├── 60-sensor.rules
│   ├── 60-serial.rules
│   ├── 64-btrfs.rules.in
│   ├── 70-camera.rules
│   ├── 70-joystick.rules
│   ├── 70-memory.rules
│   ├── 70-mouse.rules
│   ├── 70-power-switch.rules
│   ├── 70-touchpad.rules
│   ├── 70-uaccess.rules.in
│   ├── 71-seat.rules.in
│   ├── 73-seat-late.rules.in
│   ├── 75-net-description.rules
│   ├── 75-probe_mtd.rules
│   ├── 78-sound-card.rules
│   ├── 80-drivers.rules
│   ├── 80-net-setup-link.rules
│   ├── 81-net-dhcp.rules
│   ├── 82-net-auto-link-local.rules
│   ├── 90-iocost.rules
│   ├── 90-vconsole.rules.in
│   ├── 99-systemd.rules.in
│   ├── README
│   └── meson.build
├── shell-completion/
│   ├── bash/
│   │   ├── bootctl
│   │   ├── busctl
│   │   ├── coredumpctl
│   │   ├── homectl
│   │   ├── hostnamectl
│   │   ├── importctl
│   │   ├── journalctl
│   │   ├── kernel-install
│   │   ├── localectl
│   │   ├── loginctl
│   │   ├── machinectl
│   │   ├── meson.build
│   │   ├── networkctl
│   │   ├── oomctl
│   │   ├── portablectl
│   │   ├── resolvectl
│   │   ├── systemctl.in
│   │   ├── systemd-analyze
│   │   ├── systemd-cat
│   │   ├── systemd-cgls
│   │   ├── systemd-cgtop
│   │   ├── systemd-confext
│   │   ├── systemd-cryptenroll
│   │   ├── systemd-delta
│   │   ├── systemd-detect-virt
│   │   ├── systemd-dissect
│   │   ├── systemd-id128
│   │   ├── systemd-nspawn
│   │   ├── systemd-path
│   │   ├── systemd-resolve
│   │   ├── systemd-run
│   │   ├── systemd-sysext
│   │   ├── timedatectl
│   │   └── udevadm
│   └── zsh/
│       ├── _bootctl
│       ├── _busctl
│       ├── _coredumpctl
│       ├── _hostnamectl
│       ├── _journalctl
│       ├── _kernel-install
│       ├── _localectl
│       ├── _loginctl
│       ├── _machinectl
│       ├── _networkctl
│       ├── _oomctl
│       ├── _resolvectl
│       ├── _sd_hosts_or_user_at_host
│       ├── _sd_machines
│       ├── _sd_outputmodes
│       ├── _sd_unit_files
│       ├── _systemctl.in
│       ├── _systemd
│       ├── _systemd-analyze
│       ├── _systemd-delta
│       ├── _systemd-inhibit
│       ├── _systemd-nspawn
│       ├── _systemd-path
│       ├── _systemd-run
│       ├── _systemd-tmpfiles
│       ├── _timedatectl
│       ├── _udevadm
│       ├── _varlinkctl
│       └── meson.build
├── src/
│   ├── ac-power/
│   │   ├── ac-power.c
│   │   └── meson.build
│   ├── analyze/
│   │   ├── analyze-blame.c
│   │   ├── analyze-blame.h
│   │   ├── analyze-calendar.c
│   │   ├── analyze-calendar.h
│   │   ├── analyze-capability.c
│   │   ├── analyze-capability.h
│   │   ├── analyze-cat-config.c
│   │   ├── analyze-cat-config.h
│   │   ├── analyze-compare-versions.c
│   │   ├── analyze-compare-versions.h
│   │   ├── analyze-condition.c
│   │   ├── analyze-condition.h
│   │   ├── analyze-critical-chain.c
│   │   ├── analyze-critical-chain.h
│   │   ├── analyze-dot.c
│   │   ├── analyze-dot.h
│   │   ├── analyze-dump.c
│   │   ├── analyze-dump.h
│   │   ├── analyze-exit-status.c
│   │   ├── analyze-exit-status.h
│   │   ├── analyze-fdstore.c
│   │   ├── analyze-fdstore.h
│   │   ├── analyze-filesystems.c
│   │   ├── analyze-filesystems.h
│   │   ├── analyze-image-policy.c
│   │   ├── analyze-image-policy.h
│   │   ├── analyze-inspect-elf.c
│   │   ├── analyze-inspect-elf.h
│   │   ├── analyze-log-control.c
│   │   ├── analyze-log-control.h
│   │   ├── analyze-malloc.c
│   │   ├── analyze-malloc.h
│   │   ├── analyze-pcrs.c
│   │   ├── analyze-pcrs.h
│   │   ├── analyze-plot.c
│   │   ├── analyze-plot.h
│   │   ├── analyze-security.c
│   │   ├── analyze-security.h
│   │   ├── analyze-service-watchdogs.c
│   │   ├── analyze-service-watchdogs.h
│   │   ├── analyze-srk.c
│   │   ├── analyze-srk.h
│   │   ├── analyze-syscall-filter.c
│   │   ├── analyze-syscall-filter.h
│   │   ├── analyze-time-data.c
│   │   ├── analyze-time-data.h
│   │   ├── analyze-time.c
│   │   ├── analyze-time.h
│   │   ├── analyze-timespan.c
│   │   ├── analyze-timespan.h
│   │   ├── analyze-timestamp.c
│   │   ├── analyze-timestamp.h
│   │   ├── analyze-unit-files.c
│   │   ├── analyze-unit-files.h
│   │   ├── analyze-unit-paths.c
│   │   ├── analyze-unit-paths.h
│   │   ├── analyze-verify-util.c
│   │   ├── analyze-verify-util.h
│   │   ├── analyze-verify.c
│   │   ├── analyze-verify.h
│   │   ├── analyze.c
│   │   ├── analyze.h
│   │   ├── meson.build
│   │   └── test-verify.c
│   ├── ask-password/
│   │   ├── ask-password.c
│   │   └── meson.build
│   ├── backlight/
│   │   ├── backlight.c
│   │   └── meson.build
│   ├── basic/
│   │   ├── MurmurHash2.c
│   │   ├── MurmurHash2.h
│   │   ├── af-list.c
│   │   ├── af-list.h
│   │   ├── af-to-name.awk
│   │   ├── alloc-util.c
│   │   ├── alloc-util.h
│   │   ├── architecture.c
│   │   ├── architecture.h
│   │   ├── argv-util.c
│   │   ├── argv-util.h
│   │   ├── arphrd-to-name.awk
│   │   ├── arphrd-util.c
│   │   ├── arphrd-util.h
│   │   ├── audit-util.c
│   │   ├── audit-util.h
│   │   ├── bitfield.h
│   │   ├── btrfs.c
│   │   ├── btrfs.h
│   │   ├── build.c
│   │   ├── build.h
│   │   ├── bus-label.c
│   │   ├── bus-label.h
│   │   ├── cap-list.c
│   │   ├── cap-list.h
│   │   ├── cap-to-name.awk
│   │   ├── capability-util.c
│   │   ├── capability-util.h
│   │   ├── cgroup-util.c
│   │   ├── cgroup-util.h
│   │   ├── chase.c
│   │   ├── chase.h
│   │   ├── chattr-util.c
│   │   ├── chattr-util.h
│   │   ├── check-filesystems.sh
│   │   ├── compress.c
│   │   ├── compress.h
│   │   ├── conf-files.c
│   │   ├── conf-files.h
│   │   ├── confidential-virt.c
│   │   ├── confidential-virt.h
│   │   ├── constants.h
│   │   ├── coverage.h
│   │   ├── devnum-util.c
│   │   ├── devnum-util.h
│   │   ├── dirent-util.c
│   │   ├── dirent-util.h
│   │   ├── dns-def.h
│   │   ├── efivars.c
│   │   ├── efivars.h
│   │   ├── env-file.c
│   │   ├── env-file.h
│   │   ├── env-util.c
│   │   ├── env-util.h
│   │   ├── errno-list.c
│   │   ├── errno-list.h
│   │   ├── errno-to-name.awk
│   │   ├── errno-util.h
│   │   ├── escape.c
│   │   ├── escape.h
│   │   ├── ether-addr-util.c
│   │   ├── ether-addr-util.h
│   │   ├── extract-word.c
│   │   ├── extract-word.h
│   │   ├── fd-util.c
│   │   ├── fd-util.h
│   │   ├── fileio.c
│   │   ├── fileio.h
│   │   ├── filesystems-gperf.gperf
│   │   ├── filesystems.c
│   │   ├── filesystems.h
│   │   ├── format-util.c
│   │   ├── format-util.h
│   │   ├── fs-util.c
│   │   ├── fs-util.h
│   │   ├── gcrypt-util.c
│   │   ├── gcrypt-util.h
│   │   ├── generate-af-list.sh
│   │   ├── generate-arphrd-list.sh
│   │   ├── generate-cap-list.sh
│   │   ├── generate-errno-list.sh
│   │   ├── generate-filesystem-list.py
│   │   ├── generate-filesystem-switch-case.py
│   │   ├── getopt-defs.h
│   │   ├── glob-util.c
│   │   ├── glob-util.h
│   │   ├── glyph-util.c
│   │   ├── glyph-util.h
│   │   ├── gunicode.c
│   │   ├── gunicode.h
│   │   ├── hash-funcs.c
│   │   ├── hash-funcs.h
│   │   ├── hashmap.c
│   │   ├── hashmap.h
│   │   ├── hexdecoct.c
│   │   ├── hexdecoct.h
│   │   ├── hmac.c
│   │   ├── hmac.h
│   │   ├── hostname-util.c
│   │   ├── hostname-util.h
│   │   ├── in-addr-util.c
│   │   ├── in-addr-util.h
│   │   ├── initrd-util.c
│   │   ├── initrd-util.h
│   │   ├── inotify-util.c
│   │   ├── inotify-util.h
│   │   ├── io-util.c
│   │   ├── io-util.h
│   │   ├── ioprio-util.c
│   │   ├── ioprio-util.h
│   │   ├── iovec-util.c
│   │   ├── iovec-util.h
│   │   ├── iovec-wrapper.c
│   │   ├── iovec-wrapper.h
│   │   ├── label.c
│   │   ├── label.h
│   │   ├── limits-util.c
│   │   ├── limits-util.h
│   │   ├── linux/
│   │   │   ├── README
│   │   │   ├── batman_adv.h
│   │   │   ├── btrfs.h
│   │   │   ├── btrfs_tree.h
│   │   │   ├── can/
│   │   │   │   ├── netlink.h
│   │   │   │   └── vxcan.h
│   │   │   ├── cfm_bridge.h
│   │   │   ├── fib_rules.h
│   │   │   ├── fou.h
│   │   │   ├── genetlink.h
│   │   │   ├── hdlc/
│   │   │   │   └── ioctl.h
│   │   │   ├── if.h
│   │   │   ├── if_addr.h
│   │   │   ├── if_bonding.h
│   │   │   ├── if_bridge.h
│   │   │   ├── if_ether.h
│   │   │   ├── if_link.h
│   │   │   ├── if_macsec.h
│   │   │   ├── if_tun.h
│   │   │   ├── if_tunnel.h
│   │   │   ├── in.h
│   │   │   ├── in6.h
│   │   │   ├── input-event-codes.h
│   │   │   ├── input.h
│   │   │   ├── ipv6_route.h
│   │   │   ├── l2tp.h
│   │   │   ├── libc-compat.h
│   │   │   ├── mrp_bridge.h
│   │   │   ├── netdevice.h
│   │   │   ├── netfilter/
│   │   │   │   ├── nf_tables.h
│   │   │   │   └── nfnetlink.h
│   │   │   ├── netfilter.h
│   │   │   ├── netlink.h
│   │   │   ├── nexthop.h
│   │   │   ├── nl80211.h
│   │   │   ├── pkt_sched.h
│   │   │   ├── rtnetlink.h
│   │   │   ├── stddef.h
│   │   │   ├── update.sh
│   │   │   └── wireguard.h
│   │   ├── list.h
│   │   ├── locale-util.c
│   │   ├── locale-util.h
│   │   ├── lock-util.c
│   │   ├── lock-util.h
│   │   ├── log.c
│   │   ├── log.h
│   │   ├── login-util.c
│   │   ├── login-util.h
│   │   ├── macro.h
│   │   ├── mallinfo-util.h
│   │   ├── math-util.h
│   │   ├── memfd-util.c
│   │   ├── memfd-util.h
│   │   ├── memory-util.c
│   │   ├── memory-util.h
│   │   ├── mempool.c
│   │   ├── mempool.h
│   │   ├── memstream-util.c
│   │   ├── memstream-util.h
│   │   ├── meson.build
│   │   ├── missing_audit.h
│   │   ├── missing_capability.h
│   │   ├── missing_drm.h
│   │   ├── missing_fcntl.h
│   │   ├── missing_fs.h
│   │   ├── missing_input.h
│   │   ├── missing_ioprio.h
│   │   ├── missing_keyctl.h
│   │   ├── missing_loop.h
│   │   ├── missing_magic.h
│   │   ├── missing_mman.h
│   │   ├── missing_mount.h
│   │   ├── missing_network.h
│   │   ├── missing_prctl.h
│   │   ├── missing_random.h
│   │   ├── missing_resource.h
│   │   ├── missing_sched.h
│   │   ├── missing_securebits.h
│   │   ├── missing_socket.h
│   │   ├── missing_stat.h
│   │   ├── missing_stdlib.h
│   │   ├── missing_syscall.h
│   │   ├── missing_syscall_def.h
│   │   ├── missing_syscalls.py
│   │   ├── missing_threads.h
│   │   ├── missing_timerfd.h
│   │   ├── missing_type.h
│   │   ├── missing_xfs.h
│   │   ├── mkdir.c
│   │   ├── mkdir.h
│   │   ├── mountpoint-util.c
│   │   ├── mountpoint-util.h
│   │   ├── namespace-util.c
│   │   ├── namespace-util.h
│   │   ├── nss-util.h
│   │   ├── nulstr-util.c
│   │   ├── nulstr-util.h
│   │   ├── ordered-set.c
│   │   ├── ordered-set.h
│   │   ├── origin-id.h
│   │   ├── os-util.c
│   │   ├── os-util.h
│   │   ├── parse-util.c
│   │   ├── parse-util.h
│   │   ├── path-lookup.c
│   │   ├── path-lookup.h
│   │   ├── path-util.c
│   │   ├── path-util.h
│   │   ├── pcapng.h
│   │   ├── percent-util.c
│   │   ├── percent-util.h
│   │   ├── pidref.c
│   │   ├── pidref.h
│   │   ├── prioq.c
│   │   ├── prioq.h
│   │   ├── proc-cmdline.c
│   │   ├── proc-cmdline.h
│   │   ├── process-util.c
│   │   ├── process-util.h
│   │   ├── procfs-util.c
│   │   ├── procfs-util.h
│   │   ├── psi-util.c
│   │   ├── psi-util.h
│   │   ├── pthread-util.h
│   │   ├── random-util.c
│   │   ├── random-util.h
│   │   ├── ratelimit.c
│   │   ├── ratelimit.h
│   │   ├── raw-clone.h
│   │   ├── raw-reboot.h
│   │   ├── recurse-dir.c
│   │   ├── recurse-dir.h
│   │   ├── replace-var.c
│   │   ├── replace-var.h
│   │   ├── rlimit-util.c
│   │   ├── rlimit-util.h
│   │   ├── runtime-scope.c
│   │   ├── runtime-scope.h
│   │   ├── set.h
│   │   ├── sigbus.c
│   │   ├── sigbus.h
│   │   ├── signal-util.c
│   │   ├── signal-util.h
│   │   ├── siphash24.c
│   │   ├── siphash24.h
│   │   ├── socket-util.c
│   │   ├── socket-util.h
│   │   ├── sort-util.c
│   │   ├── sort-util.h
│   │   ├── sparse-endian.h
│   │   ├── special.h
│   │   ├── stat-util.c
│   │   ├── stat-util.h
│   │   ├── static-destruct.h
│   │   ├── stdio-util.h
│   │   ├── strbuf.c
│   │   ├── strbuf.h
│   │   ├── string-table.c
│   │   ├── string-table.h
│   │   ├── string-util.c
│   │   ├── string-util.h
│   │   ├── strv.c
│   │   ├── strv.h
│   │   ├── strxcpyx.c
│   │   ├── strxcpyx.h
│   │   ├── sync-util.c
│   │   ├── sync-util.h
│   │   ├── syscall-list.txt
│   │   ├── syscalls-alpha.txt
│   │   ├── syscalls-arc.txt
│   │   ├── syscalls-arm.txt
│   │   ├── syscalls-arm64.txt
│   │   ├── syscalls-i386.txt
│   │   ├── syscalls-ia64.txt
│   │   ├── syscalls-loongarch64.txt
│   │   ├── syscalls-m68k.txt
│   │   ├── syscalls-mips64.txt
│   │   ├── syscalls-mips64n32.txt
│   │   ├── syscalls-mipso32.txt
│   │   ├── syscalls-parisc.txt
│   │   ├── syscalls-powerpc.txt
│   │   ├── syscalls-powerpc64.txt
│   │   ├── syscalls-riscv32.txt
│   │   ├── syscalls-riscv64.txt
│   │   ├── syscalls-s390.txt
│   │   ├── syscalls-s390x.txt
│   │   ├── syscalls-sparc.txt
│   │   ├── syscalls-x86_64.txt
│   │   ├── sysctl-util.c
│   │   ├── sysctl-util.h
│   │   ├── syslog-util.c
│   │   ├── syslog-util.h
│   │   ├── terminal-util.c
│   │   ├── terminal-util.h
│   │   ├── time-util.c
│   │   ├── time-util.h
│   │   ├── tmpfile-util.c
│   │   ├── tmpfile-util.h
│   │   ├── uid-alloc-range.c
│   │   ├── uid-alloc-range.h
│   │   ├── uid-range.c
│   │   ├── uid-range.h
│   │   ├── umask-util.h
│   │   ├── unaligned.h
│   │   ├── unit-def.c
│   │   ├── unit-def.h
│   │   ├── unit-file.c
│   │   ├── unit-file.h
│   │   ├── unit-name.c
│   │   ├── unit-name.h
│   │   ├── user-util.c
│   │   ├── user-util.h
│   │   ├── utf8.c
│   │   ├── utf8.h
│   │   ├── virt.c
│   │   ├── virt.h
│   │   ├── xattr-util.c
│   │   └── xattr-util.h
│   ├── battery-check/
│   │   ├── battery-check.c
│   │   └── meson.build
│   ├── binfmt/
│   │   ├── binfmt.c
│   │   └── meson.build
│   ├── boot/
│   │   ├── bless-boot-generator.c
│   │   ├── bless-boot.c
│   │   ├── boot-check-no-failures.c
│   │   ├── bootctl-install.c
│   │   ├── bootctl-install.h
│   │   ├── bootctl-random-seed.c
│   │   ├── bootctl-random-seed.h
│   │   ├── bootctl-reboot-to-firmware.c
│   │   ├── bootctl-reboot-to-firmware.h
│   │   ├── bootctl-set-efivar.c
│   │   ├── bootctl-set-efivar.h
│   │   ├── bootctl-status.c
│   │   ├── bootctl-status.h
│   │   ├── bootctl-systemd-efi-options.c
│   │   ├── bootctl-systemd-efi-options.h
│   │   ├── bootctl-uki.c
│   │   ├── bootctl-uki.h
│   │   ├── bootctl-util.c
│   │   ├── bootctl-util.h
│   │   ├── bootctl.c
│   │   ├── bootctl.h
│   │   ├── efi/
│   │   │   ├── UEFI_SECURITY.md
│   │   │   ├── addon.c
│   │   │   ├── bcd.c
│   │   │   ├── bcd.h
│   │   │   ├── boot.c
│   │   │   ├── console.c
│   │   │   ├── console.h
│   │   │   ├── cpio.c
│   │   │   ├── cpio.h
│   │   │   ├── device-path-util.c
│   │   │   ├── device-path-util.h
│   │   │   ├── devicetree.c
│   │   │   ├── devicetree.h
│   │   │   ├── drivers.c
│   │   │   ├── drivers.h
│   │   │   ├── efi-string.c
│   │   │   ├── efi-string.h
│   │   │   ├── efi.h
│   │   │   ├── fuzz-bcd.c
│   │   │   ├── fuzz-efi-osrel.c
│   │   │   ├── fuzz-efi-printf.c
│   │   │   ├── fuzz-efi-string.c
│   │   │   ├── graphics.c
│   │   │   ├── graphics.h
│   │   │   ├── initrd.c
│   │   │   ├── initrd.h
│   │   │   ├── linux.c
│   │   │   ├── linux.h
│   │   │   ├── linux_x86.c
│   │   │   ├── log.c
│   │   │   ├── log.h
│   │   │   ├── measure.c
│   │   │   ├── measure.h
│   │   │   ├── meson.build
│   │   │   ├── part-discovery.c
│   │   │   ├── part-discovery.h
│   │   │   ├── pe.c
│   │   │   ├── pe.h
│   │   │   ├── proto/
│   │   │   │   ├── block-io.h
│   │   │   │   ├── console-control.h
│   │   │   │   ├── device-path.h
│   │   │   │   ├── dt-fixup.h
│   │   │   │   ├── file-io.h
│   │   │   │   ├── graphics-output.h
│   │   │   │   ├── load-file.h
│   │   │   │   ├── loaded-image.h
│   │   │   │   ├── rng.h
│   │   │   │   ├── security-arch.h
│   │   │   │   ├── shell-parameters.h
│   │   │   │   ├── simple-text-io.h
│   │   │   │   └── tcg.h
│   │   │   ├── random-seed.c
│   │   │   ├── random-seed.h
│   │   │   ├── secure-boot.c
│   │   │   ├── secure-boot.h
│   │   │   ├── shim.c
│   │   │   ├── shim.h
│   │   │   ├── splash.c
│   │   │   ├── splash.h
│   │   │   ├── stub.c
│   │   │   ├── test-bcd.c
│   │   │   ├── test-efi-string.c
│   │   │   ├── ticks.c
│   │   │   ├── ticks.h
│   │   │   ├── ubsan.c
│   │   │   ├── util.c
│   │   │   ├── util.h
│   │   │   ├── vmm.c
│   │   │   └── vmm.h
│   │   ├── measure.c
│   │   └── meson.build
│   ├── busctl/
│   │   ├── busctl-introspect.c
│   │   ├── busctl-introspect.h
│   │   ├── busctl.c
│   │   ├── meson.build
│   │   └── test-busctl-introspect.c
│   ├── cgls/
│   │   ├── cgls.c
│   │   └── meson.build
│   ├── cgroups-agent/
│   │   ├── cgroups-agent.c
│   │   └── meson.build
│   ├── cgtop/
│   │   ├── cgtop.c
│   │   └── meson.build
│   ├── core/
│   │   ├── all-units.h
│   │   ├── apparmor-setup.c
│   │   ├── apparmor-setup.h
│   │   ├── audit-fd.c
│   │   ├── audit-fd.h
│   │   ├── automount.c
│   │   ├── automount.h
│   │   ├── bpf/
│   │   │   ├── restrict_fs/
│   │   │   │   ├── meson.build
│   │   │   │   ├── restrict-fs-skel.h
│   │   │   │   └── restrict-fs.bpf.c
│   │   │   ├── restrict_ifaces/
│   │   │   │   ├── meson.build
│   │   │   │   ├── restrict-ifaces-skel.h
│   │   │   │   └── restrict-ifaces.bpf.c
│   │   │   └── socket_bind/
│   │   │       ├── meson.build
│   │   │       ├── socket-bind-api.bpf.h
│   │   │       ├── socket-bind-skel.h
│   │   │       └── socket-bind.bpf.c
│   │   ├── bpf-devices.c
│   │   ├── bpf-devices.h
│   │   ├── bpf-firewall.c
│   │   ├── bpf-firewall.h
│   │   ├── bpf-foreign.c
│   │   ├── bpf-foreign.h
│   │   ├── bpf-lsm.c
│   │   ├── bpf-lsm.h
│   │   ├── bpf-socket-bind.c
│   │   ├── bpf-socket-bind.h
│   │   ├── bpf-util.c
│   │   ├── bpf-util.h
│   │   ├── cgroup.c
│   │   ├── cgroup.h
│   │   ├── core-varlink.c
│   │   ├── core-varlink.h
│   │   ├── crash-handler.c
│   │   ├── crash-handler.h
│   │   ├── dbus-automount.c
│   │   ├── dbus-automount.h
│   │   ├── dbus-cgroup.c
│   │   ├── dbus-cgroup.h
│   │   ├── dbus-device.c
│   │   ├── dbus-device.h
│   │   ├── dbus-execute.c
│   │   ├── dbus-execute.h
│   │   ├── dbus-job.c
│   │   ├── dbus-job.h
│   │   ├── dbus-kill.c
│   │   ├── dbus-kill.h
│   │   ├── dbus-manager.c
│   │   ├── dbus-manager.h
│   │   ├── dbus-mount.c
│   │   ├── dbus-mount.h
│   │   ├── dbus-path.c
│   │   ├── dbus-path.h
│   │   ├── dbus-scope.c
│   │   ├── dbus-scope.h
│   │   ├── dbus-service.c
│   │   ├── dbus-service.h
│   │   ├── dbus-slice.c
│   │   ├── dbus-slice.h
│   │   ├── dbus-socket.c
│   │   ├── dbus-socket.h
│   │   ├── dbus-swap.c
│   │   ├── dbus-swap.h
│   │   ├── dbus-target.c
│   │   ├── dbus-target.h
│   │   ├── dbus-timer.c
│   │   ├── dbus-timer.h
│   │   ├── dbus-unit.c
│   │   ├── dbus-unit.h
│   │   ├── dbus-util.c
│   │   ├── dbus-util.h
│   │   ├── dbus.c
│   │   ├── dbus.h
│   │   ├── device.c
│   │   ├── device.h
│   │   ├── dynamic-user.c
│   │   ├── dynamic-user.h
│   │   ├── efi-random.c
│   │   ├── efi-random.h
│   │   ├── emergency-action.c
│   │   ├── emergency-action.h
│   │   ├── exec-credential.c
│   │   ├── exec-credential.h
│   │   ├── exec-invoke.c
│   │   ├── exec-invoke.h
│   │   ├── execute-serialize.c
│   │   ├── execute-serialize.h
│   │   ├── execute.c
│   │   ├── execute.h
│   │   ├── executor.c
│   │   ├── fuzz-execute-serialize.c
│   │   ├── fuzz-manager-serialize.c
│   │   ├── fuzz-manager-serialize.options
│   │   ├── fuzz-unit-file.c
│   │   ├── fuzz-unit-file.options
│   │   ├── generator-setup.c
│   │   ├── generator-setup.h
│   │   ├── ima-setup.c
│   │   ├── ima-setup.h
│   │   ├── import-creds.c
│   │   ├── import-creds.h
│   │   ├── job.c
│   │   ├── job.h
│   │   ├── kill.c
│   │   ├── kill.h
│   │   ├── kmod-setup.c
│   │   ├── kmod-setup.h
│   │   ├── load-dropin.c
│   │   ├── load-dropin.h
│   │   ├── load-fragment-gperf-nulstr.awk
│   │   ├── load-fragment-gperf.gperf.in
│   │   ├── load-fragment.c
│   │   ├── load-fragment.h
│   │   ├── main.c
│   │   ├── main.h
│   │   ├── manager-dump.c
│   │   ├── manager-dump.h
│   │   ├── manager-serialize.c
│   │   ├── manager-serialize.h
│   │   ├── manager.c
│   │   ├── manager.h
│   │   ├── meson.build
│   │   ├── mount.c
│   │   ├── mount.h
│   │   ├── namespace.c
│   │   ├── namespace.h
│   │   ├── org.freedesktop.systemd1.conf
│   │   ├── org.freedesktop.systemd1.policy.in
│   │   ├── org.freedesktop.systemd1.service
│   │   ├── path.c
│   │   ├── path.h
│   │   ├── restrict-ifaces.c
│   │   ├── restrict-ifaces.h
│   │   ├── scope.c
│   │   ├── scope.h
│   │   ├── selinux-access.c
│   │   ├── selinux-access.h
│   │   ├── selinux-setup.c
│   │   ├── selinux-setup.h
│   │   ├── service.c
│   │   ├── service.h
│   │   ├── show-status.c
│   │   ├── show-status.h
│   │   ├── slice.c
│   │   ├── slice.h
│   │   ├── smack-setup.c
│   │   ├── smack-setup.h
│   │   ├── socket.c
│   │   ├── socket.h
│   │   ├── swap.c
│   │   ├── swap.h
│   │   ├── system.conf.in
│   │   ├── systemd.pc.in
│   │   ├── target.c
│   │   ├── target.h
│   │   ├── timer.c
│   │   ├── timer.h
│   │   ├── transaction.c
│   │   ├── transaction.h
│   │   ├── unit-dependency-atom.c
│   │   ├── unit-dependency-atom.h
│   │   ├── unit-printf.c
│   │   ├── unit-printf.h
│   │   ├── unit-serialize.c
│   │   ├── unit-serialize.h
│   │   ├── unit.c
│   │   ├── unit.h
│   │   └── user.conf.in
│   ├── coredump/
│   │   ├── coredump-vacuum.c
│   │   ├── coredump-vacuum.h
│   │   ├── coredump.c
│   │   ├── coredump.conf
│   │   ├── coredumpctl.c
│   │   ├── meson.build
│   │   └── test-coredump-vacuum.c
│   ├── creds/
│   │   ├── creds.c
│   │   └── meson.build
│   ├── cryptenroll/
│   │   ├── cryptenroll-fido2.c
│   │   ├── cryptenroll-fido2.h
│   │   ├── cryptenroll-list.c
│   │   ├── cryptenroll-list.h
│   │   ├── cryptenroll-password.c
│   │   ├── cryptenroll-password.h
│   │   ├── cryptenroll-pkcs11.c
│   │   ├── cryptenroll-pkcs11.h
│   │   ├── cryptenroll-recovery.c
│   │   ├── cryptenroll-recovery.h
│   │   ├── cryptenroll-tpm2.c
│   │   ├── cryptenroll-tpm2.h
│   │   ├── cryptenroll-wipe.c
│   │   ├── cryptenroll-wipe.h
│   │   ├── cryptenroll.c
│   │   ├── cryptenroll.h
│   │   └── meson.build
│   ├── cryptsetup/
│   │   ├── cryptsetup-generator.c
│   │   ├── cryptsetup-keyfile.c
│   │   ├── cryptsetup-keyfile.h
│   │   ├── cryptsetup-pkcs11.c
│   │   ├── cryptsetup-pkcs11.h
│   │   ├── cryptsetup-tokens/
│   │   │   ├── cryptsetup-token-systemd-fido2.c
│   │   │   ├── cryptsetup-token-systemd-pkcs11.c
│   │   │   ├── cryptsetup-token-systemd-tpm2.c
│   │   │   ├── cryptsetup-token-util.c
│   │   │   ├── cryptsetup-token-util.h
│   │   │   ├── cryptsetup-token.h
│   │   │   ├── cryptsetup-token.sym
│   │   │   ├── luks2-fido2.c
│   │   │   ├── luks2-fido2.h
│   │   │   ├── luks2-pkcs11.c
│   │   │   ├── luks2-pkcs11.h
│   │   │   ├── luks2-tpm2.c
│   │   │   ├── luks2-tpm2.h
│   │   │   └── meson.build
│   │   ├── cryptsetup-tpm2.c
│   │   ├── cryptsetup-tpm2.h
│   │   ├── cryptsetup.c
│   │   └── meson.build
│   ├── debug-generator/
│   │   ├── debug-generator.c
│   │   └── meson.build
│   ├── delta/
│   │   ├── delta.c
│   │   └── meson.build
│   ├── detect-virt/
│   │   ├── detect-virt.c
│   │   └── meson.build
│   ├── dissect/
│   │   ├── dissect.c
│   │   └── meson.build
│   ├── environment-d-generator/
│   │   ├── environment-d-generator.c
│   │   └── meson.build
│   ├── escape/
│   │   ├── escape.c
│   │   └── meson.build
│   ├── firstboot/
│   │   ├── firstboot.c
│   │   └── meson.build
│   ├── fsck/
│   │   ├── fsck.c
│   │   └── meson.build
│   ├── fstab-generator/
│   │   ├── fstab-generator.c
│   │   └── meson.build
│   ├── fundamental/
│   │   ├── bootspec-fundamental.c
│   │   ├── bootspec-fundamental.h
│   │   ├── confidential-virt-fundamental.h
│   │   ├── efivars-fundamental.c
│   │   ├── efivars-fundamental.h
│   │   ├── logarithm.h
│   │   ├── macro-fundamental.h
│   │   ├── memory-util-fundamental.h
│   │   ├── meson.build
│   │   ├── sbat.h
│   │   ├── sha256.c
│   │   ├── sha256.h
│   │   ├── string-util-fundamental.c
│   │   ├── string-util-fundamental.h
│   │   ├── tpm2-pcr.h
│   │   ├── uki.c
│   │   ├── uki.h
│   │   └── unaligned-fundamental.h
│   ├── fuzz/
│   │   ├── fuzz-bootspec-gen.py
│   │   ├── fuzz-bootspec.c
│   │   ├── fuzz-bootspec.options
│   │   ├── fuzz-bus-label.c
│   │   ├── fuzz-calendarspec.c
│   │   ├── fuzz-catalog.c
│   │   ├── fuzz-compress.c
│   │   ├── fuzz-env-file.c
│   │   ├── fuzz-env-file.options
│   │   ├── fuzz-hostname-setup.c
│   │   ├── fuzz-json.c
│   │   ├── fuzz-main.c
│   │   ├── fuzz-time-util.c
│   │   ├── fuzz-udev-database.c
│   │   ├── fuzz-varlink-idl.c
│   │   ├── fuzz-varlink.c
│   │   ├── fuzz.h
│   │   └── meson.build
│   ├── getty-generator/
│   │   ├── getty-generator.c
│   │   └── meson.build
│   ├── gpt-auto-generator/
│   │   ├── gpt-auto-generator.c
│   │   └── meson.build
│   ├── hibernate-resume/
│   │   ├── hibernate-resume-config.c
│   │   ├── hibernate-resume-config.h
│   │   ├── hibernate-resume-generator.c
│   │   ├── hibernate-resume.c
│   │   └── meson.build
│   ├── home/
│   │   ├── home-util.c
│   │   ├── home-util.h
│   │   ├── homectl-fido2.c
│   │   ├── homectl-fido2.h
│   │   ├── homectl-pkcs11.c
│   │   ├── homectl-pkcs11.h
│   │   ├── homectl-recovery-key.c
│   │   ├── homectl-recovery-key.h
│   │   ├── homectl.c
│   │   ├── homed-bus.c
│   │   ├── homed-bus.h
│   │   ├── homed-conf.c
│   │   ├── homed-conf.h
│   │   ├── homed-gperf.gperf
│   │   ├── homed-home-bus.c
│   │   ├── homed-home-bus.h
│   │   ├── homed-home.c
│   │   ├── homed-home.h
│   │   ├── homed-manager-bus.c
│   │   ├── homed-manager-bus.h
│   │   ├── homed-manager.c
│   │   ├── homed-manager.h
│   │   ├── homed-operation.c
│   │   ├── homed-operation.h
│   │   ├── homed-varlink.c
│   │   ├── homed-varlink.h
│   │   ├── homed.c
│   │   ├── homed.conf
│   │   ├── homework-cifs.c
│   │   ├── homework-cifs.h
│   │   ├── homework-directory.c
│   │   ├── homework-directory.h
│   │   ├── homework-fido2.c
│   │   ├── homework-fido2.h
│   │   ├── homework-fscrypt.c
│   │   ├── homework-fscrypt.h
│   │   ├── homework-luks.c
│   │   ├── homework-luks.h
│   │   ├── homework-mount.c
│   │   ├── homework-mount.h
│   │   ├── homework-password-cache.c
│   │   ├── homework-password-cache.h
│   │   ├── homework-pkcs11.c
│   │   ├── homework-pkcs11.h
│   │   ├── homework-quota.c
│   │   ├── homework-quota.h
│   │   ├── homework.c
│   │   ├── homework.h
│   │   ├── meson.build
│   │   ├── org.freedesktop.home1.conf
│   │   ├── org.freedesktop.home1.policy
│   │   ├── org.freedesktop.home1.service
│   │   ├── pam_systemd_home.c
│   │   ├── pam_systemd_home.sym
│   │   ├── user-record-password-quality.c
│   │   ├── user-record-password-quality.h
│   │   ├── user-record-sign.c
│   │   ├── user-record-sign.h
│   │   ├── user-record-util.c
│   │   └── user-record-util.h
│   ├── hostname/
│   │   ├── hostnamectl.c
│   │   ├── hostnamed.c
│   │   ├── meson.build
│   │   ├── org.freedesktop.hostname1.conf
│   │   ├── org.freedesktop.hostname1.policy
│   │   └── org.freedesktop.hostname1.service
│   ├── hwdb/
│   │   ├── hwdb.c
│   │   └── meson.build
│   ├── id128/
│   │   ├── id128.c
│   │   └── meson.build
│   ├── import/
│   │   ├── curl-util.c
│   │   ├── curl-util.h
│   │   ├── export-raw.c
│   │   ├── export-raw.h
│   │   ├── export-tar.c
│   │   ├── export-tar.h
│   │   ├── export.c
│   │   ├── import-common.c
│   │   ├── import-common.h
│   │   ├── import-compress.c
│   │   ├── import-compress.h
│   │   ├── import-fs.c
│   │   ├── import-pubring.gpg
│   │   ├── import-raw.c
│   │   ├── import-raw.h
│   │   ├── import-tar.c
│   │   ├── import-tar.h
│   │   ├── import.c
│   │   ├── importd.c
│   │   ├── meson.build
│   │   ├── org.freedesktop.import1.conf
│   │   ├── org.freedesktop.import1.policy
│   │   ├── org.freedesktop.import1.service
│   │   ├── pull-common.c
│   │   ├── pull-common.h
│   │   ├── pull-job.c
│   │   ├── pull-job.h
│   │   ├── pull-raw.c
│   │   ├── pull-raw.h
│   │   ├── pull-tar.c
│   │   ├── pull-tar.h
│   │   ├── pull.c
│   │   ├── qcow2-util.c
│   │   ├── qcow2-util.h
│   │   └── test-qcow2.c
│   ├── initctl/
│   │   ├── initctl.c
│   │   └── meson.build
│   ├── integritysetup/
│   │   ├── integrity-util.c
│   │   ├── integrity-util.h
│   │   ├── integritysetup-generator.c
│   │   ├── integritysetup.c
│   │   └── meson.build
│   ├── journal/
│   │   ├── bsod.c
│   │   ├── cat.c
│   │   ├── fuzz-journald-audit.c
│   │   ├── fuzz-journald-kmsg.c
│   │   ├── fuzz-journald-native-fd.c
│   │   ├── fuzz-journald-native.c
│   │   ├── fuzz-journald-stream.c
│   │   ├── fuzz-journald-stream.options
│   │   ├── fuzz-journald-syslog.c
│   │   ├── fuzz-journald.c
│   │   ├── fuzz-journald.h
│   │   ├── journalctl.c
│   │   ├── journald-audit.c
│   │   ├── journald-audit.h
│   │   ├── journald-client.c
│   │   ├── journald-client.h
│   │   ├── journald-console.c
│   │   ├── journald-console.h
│   │   ├── journald-context.c
│   │   ├── journald-context.h
│   │   ├── journald-gperf.gperf
│   │   ├── journald-kmsg.c
│   │   ├── journald-kmsg.h
│   │   ├── journald-native.c
│   │   ├── journald-native.h
│   │   ├── journald-rate-limit.c
│   │   ├── journald-rate-limit.h
│   │   ├── journald-server.c
│   │   ├── journald-server.h
│   │   ├── journald-stream.c
│   │   ├── journald-stream.h
│   │   ├── journald-syslog.c
│   │   ├── journald-syslog.h
│   │   ├── journald-wall.c
│   │   ├── journald-wall.h
│   │   ├── journald.c
│   │   ├── journald.conf
│   │   ├── meson.build
│   │   ├── test-journald-config.c
│   │   ├── test-journald-syslog.c
│   │   └── test-journald-tables.c
│   ├── journal-remote/
│   │   ├── browse.html
│   │   ├── fuzz-journal-remote.c
│   │   ├── fuzz-journal-remote.options
│   │   ├── journal-gatewayd.c
│   │   ├── journal-remote-main.c
│   │   ├── journal-remote-parse.c
│   │   ├── journal-remote-parse.h
│   │   ├── journal-remote-write.c
│   │   ├── journal-remote-write.h
│   │   ├── journal-remote.c
│   │   ├── journal-remote.conf.in
│   │   ├── journal-remote.h
│   │   ├── journal-upload-journal.c
│   │   ├── journal-upload.c
│   │   ├── journal-upload.conf.in
│   │   ├── journal-upload.h
│   │   ├── log-generator.py
│   │   ├── meson.build
│   │   ├── microhttpd-util.c
│   │   └── microhttpd-util.h
│   ├── kernel-install/
│   │   ├── 50-depmod.install
│   │   ├── 60-ukify.install.in
│   │   ├── 90-loaderentry.install.in
│   │   ├── 90-uki-copy.install
│   │   ├── install.conf
│   │   ├── kernel-install.c
│   │   ├── meson.build
│   │   └── test-kernel-install.sh
│   ├── libsystemd/
│   │   ├── libsystemd.pc.in
│   │   ├── libsystemd.sym
│   │   ├── meson.build
│   │   ├── sd-bus/
│   │   │   ├── bus-common-errors.c
│   │   │   ├── bus-common-errors.h
│   │   │   ├── bus-container.c
│   │   │   ├── bus-container.h
│   │   │   ├── bus-control.c
│   │   │   ├── bus-control.h
│   │   │   ├── bus-convenience.c
│   │   │   ├── bus-creds.c
│   │   │   ├── bus-creds.h
│   │   │   ├── bus-dump.c
│   │   │   ├── bus-dump.h
│   │   │   ├── bus-error.c
│   │   │   ├── bus-error.h
│   │   │   ├── bus-internal.c
│   │   │   ├── bus-internal.h
│   │   │   ├── bus-introspect.c
│   │   │   ├── bus-introspect.h
│   │   │   ├── bus-kernel.c
│   │   │   ├── bus-kernel.h
│   │   │   ├── bus-match.c
│   │   │   ├── bus-match.h
│   │   │   ├── bus-message.c
│   │   │   ├── bus-message.h
│   │   │   ├── bus-objects.c
│   │   │   ├── bus-objects.h
│   │   │   ├── bus-protocol.h
│   │   │   ├── bus-signature.c
│   │   │   ├── bus-signature.h
│   │   │   ├── bus-slot.c
│   │   │   ├── bus-slot.h
│   │   │   ├── bus-socket.c
│   │   │   ├── bus-socket.h
│   │   │   ├── bus-track.c
│   │   │   ├── bus-track.h
│   │   │   ├── bus-type.c
│   │   │   ├── bus-type.h
│   │   │   ├── fuzz-bus-match.c
│   │   │   ├── fuzz-bus-match.options
│   │   │   ├── fuzz-bus-message.c
│   │   │   ├── sd-bus.c
│   │   │   ├── test-bus-address.c
│   │   │   ├── test-bus-benchmark.c
│   │   │   ├── test-bus-chat.c
│   │   │   ├── test-bus-cleanup.c
│   │   │   ├── test-bus-creds.c
│   │   │   ├── test-bus-error.c
│   │   │   ├── test-bus-introspect.c
│   │   │   ├── test-bus-marshal.c
│   │   │   ├── test-bus-match.c
│   │   │   ├── test-bus-objects.c
│   │   │   ├── test-bus-peersockaddr.c
│   │   │   ├── test-bus-queue-ref-cycle.c
│   │   │   ├── test-bus-server.c
│   │   │   ├── test-bus-signature.c
│   │   │   ├── test-bus-track.c
│   │   │   ├── test-bus-vtable.c
│   │   │   ├── test-bus-watch-bind.c
│   │   │   └── test-vtable-data.h
│   │   ├── sd-daemon/
│   │   │   └── sd-daemon.c
│   │   ├── sd-device/
│   │   │   ├── device-enumerator-private.h
│   │   │   ├── device-enumerator.c
│   │   │   ├── device-filter.c
│   │   │   ├── device-filter.h
│   │   │   ├── device-internal.h
│   │   │   ├── device-monitor-private.h
│   │   │   ├── device-monitor.c
│   │   │   ├── device-private.c
│   │   │   ├── device-private.h
│   │   │   ├── device-util.c
│   │   │   ├── device-util.h
│   │   │   ├── sd-device.c
│   │   │   ├── test-device-util.c
│   │   │   ├── test-sd-device-monitor.c
│   │   │   ├── test-sd-device-thread.c
│   │   │   └── test-sd-device.c
│   │   ├── sd-event/
│   │   │   ├── event-source.h
│   │   │   ├── event-util.c
│   │   │   ├── event-util.h
│   │   │   ├── sd-event.c
│   │   │   └── test-event.c
│   │   ├── sd-hwdb/
│   │   │   ├── hwdb-internal.h
│   │   │   └── sd-hwdb.c
│   │   ├── sd-id128/
│   │   │   ├── id128-util.c
│   │   │   ├── id128-util.h
│   │   │   └── sd-id128.c
│   │   ├── sd-journal/
│   │   │   ├── audit-type.c
│   │   │   ├── audit-type.h
│   │   │   ├── audit_type-to-name.awk
│   │   │   ├── catalog.c
│   │   │   ├── catalog.h
│   │   │   ├── fsprg.c
│   │   │   ├── fsprg.h
│   │   │   ├── generate-audit_type-list.sh
│   │   │   ├── journal-authenticate.c
│   │   │   ├── journal-authenticate.h
│   │   │   ├── journal-def.h
│   │   │   ├── journal-file.c
│   │   │   ├── journal-file.h
│   │   │   ├── journal-internal.h
│   │   │   ├── journal-send.c
│   │   │   ├── journal-send.h
│   │   │   ├── journal-vacuum.c
│   │   │   ├── journal-vacuum.h
│   │   │   ├── journal-verify.c
│   │   │   ├── journal-verify.h
│   │   │   ├── lookup3.c
│   │   │   ├── lookup3.h
│   │   │   ├── mmap-cache.c
│   │   │   ├── mmap-cache.h
│   │   │   ├── sd-journal.c
│   │   │   ├── test-audit-type.c
│   │   │   ├── test-catalog.c
│   │   │   ├── test-journal-append.c
│   │   │   ├── test-journal-enum.c
│   │   │   ├── test-journal-file.c
│   │   │   ├── test-journal-flush.c
│   │   │   ├── test-journal-init.c
│   │   │   ├── test-journal-interleaving.c
│   │   │   ├── test-journal-match.c
│   │   │   ├── test-journal-send.c
│   │   │   ├── test-journal-stream.c
│   │   │   ├── test-journal-verify.c
│   │   │   ├── test-journal.c
│   │   │   └── test-mmap-cache.c
│   │   ├── sd-login/
│   │   │   ├── sd-login.c
│   │   │   └── test-login.c
│   │   ├── sd-netlink/
│   │   │   ├── netlink-genl.c
│   │   │   ├── netlink-genl.h
│   │   │   ├── netlink-internal.h
│   │   │   ├── netlink-message-nfnl.c
│   │   │   ├── netlink-message-rtnl.c
│   │   │   ├── netlink-message.c
│   │   │   ├── netlink-slot.c
│   │   │   ├── netlink-slot.h
│   │   │   ├── netlink-socket.c
│   │   │   ├── netlink-types-genl.c
│   │   │   ├── netlink-types-internal.h
│   │   │   ├── netlink-types-nfnl.c
│   │   │   ├── netlink-types-rtnl.c
│   │   │   ├── netlink-types.c
│   │   │   ├── netlink-types.h
│   │   │   ├── netlink-util.c
│   │   │   ├── netlink-util.h
│   │   │   ├── sd-netlink.c
│   │   │   └── test-netlink.c
│   │   ├── sd-network/
│   │   │   ├── network-util.c
│   │   │   ├── network-util.h
│   │   │   └── sd-network.c
│   │   ├── sd-path/
│   │   │   └── sd-path.c
│   │   └── sd-resolve/
│   │       ├── resolve-private.h
│   │       ├── sd-resolve.c
│   │       └── test-resolve.c
│   ├── libsystemd-network/
│   │   ├── arp-util.c
│   │   ├── arp-util.h
│   │   ├── dhcp-client-internal.h
│   │   ├── dhcp-identifier.c
│   │   ├── dhcp-identifier.h
│   │   ├── dhcp-lease-internal.h
│   │   ├── dhcp-network.c
│   │   ├── dhcp-network.h
│   │   ├── dhcp-option.c
│   │   ├── dhcp-option.h
│   │   ├── dhcp-packet.c
│   │   ├── dhcp-packet.h
│   │   ├── dhcp-protocol.h
│   │   ├── dhcp-server-internal.h
│   │   ├── dhcp6-client-internal.h
│   │   ├── dhcp6-internal.h
│   │   ├── dhcp6-lease-internal.h
│   │   ├── dhcp6-network.c
│   │   ├── dhcp6-option.c
│   │   ├── dhcp6-option.h
│   │   ├── dhcp6-protocol.c
│   │   ├── dhcp6-protocol.h
│   │   ├── fuzz-dhcp-client.c
│   │   ├── fuzz-dhcp-server-relay.c
│   │   ├── fuzz-dhcp-server.c
│   │   ├── fuzz-dhcp6-client.c
│   │   ├── fuzz-dhcp6-client.options
│   │   ├── fuzz-lldp-rx.c
│   │   ├── fuzz-lldp-rx.options
│   │   ├── fuzz-ndisc-rs.c
│   │   ├── fuzz-ndisc-rs.options
│   │   ├── icmp6-util-unix.c
│   │   ├── icmp6-util-unix.h
│   │   ├── icmp6-util.c
│   │   ├── icmp6-util.h
│   │   ├── lldp-neighbor.c
│   │   ├── lldp-neighbor.h
│   │   ├── lldp-network.c
│   │   ├── lldp-network.h
│   │   ├── lldp-rx-internal.h
│   │   ├── meson.build
│   │   ├── ndisc-internal.h
│   │   ├── ndisc-protocol.c
│   │   ├── ndisc-protocol.h
│   │   ├── ndisc-router.c
│   │   ├── ndisc-router.h
│   │   ├── network-common.c
│   │   ├── network-common.h
│   │   ├── network-internal.c
│   │   ├── network-internal.h
│   │   ├── radv-internal.h
│   │   ├── sd-dhcp-client.c
│   │   ├── sd-dhcp-lease.c
│   │   ├── sd-dhcp-server.c
│   │   ├── sd-dhcp6-client.c
│   │   ├── sd-dhcp6-lease.c
│   │   ├── sd-ipv4acd.c
│   │   ├── sd-ipv4ll.c
│   │   ├── sd-lldp-rx.c
│   │   ├── sd-lldp-tx.c
│   │   ├── sd-ndisc.c
│   │   ├── sd-radv.c
│   │   ├── test-acd.c
│   │   ├── test-dhcp-client.c
│   │   ├── test-dhcp-option.c
│   │   ├── test-dhcp-server.c
│   │   ├── test-dhcp6-client.c
│   │   ├── test-ipv4ll-manual.c
│   │   ├── test-ipv4ll.c
│   │   ├── test-lldp-rx.c
│   │   ├── test-ndisc-ra.c
│   │   ├── test-ndisc-rs.c
│   │   └── test-sd-dhcp-lease.c
│   ├── libudev/
│   │   ├── libudev-device-internal.h
│   │   ├── libudev-device.c
│   │   ├── libudev-enumerate.c
│   │   ├── libudev-hwdb.c
│   │   ├── libudev-list-internal.h
│   │   ├── libudev-list.c
│   │   ├── libudev-monitor.c
│   │   ├── libudev-queue.c
│   │   ├── libudev-util.c
│   │   ├── libudev-util.h
│   │   ├── libudev.c
│   │   ├── libudev.h
│   │   ├── libudev.pc.in
│   │   ├── libudev.sym
│   │   ├── meson.build
│   │   ├── test-libudev.c
│   │   └── test-udev-device-thread.c
│   ├── locale/
│   │   ├── kbd-model-map
│   │   ├── language-fallback-map
│   │   ├── localectl.c
│   │   ├── localed-util.c
│   │   ├── localed-util.h
│   │   ├── localed.c
│   │   ├── meson.build
│   │   ├── org.freedesktop.locale1.conf
│   │   ├── org.freedesktop.locale1.policy
│   │   ├── org.freedesktop.locale1.service
│   │   ├── test-localed-util.c
│   │   ├── xkbcommon-util.c
│   │   └── xkbcommon-util.h
│   ├── login/
│   │   ├── inhibit.c
│   │   ├── loginctl.c
│   │   ├── logind-action.c
│   │   ├── logind-action.h
│   │   ├── logind-brightness.c
│   │   ├── logind-brightness.h
│   │   ├── logind-button.c
│   │   ├── logind-button.h
│   │   ├── logind-core.c
│   │   ├── logind-dbus.c
│   │   ├── logind-dbus.h
│   │   ├── logind-device.c
│   │   ├── logind-device.h
│   │   ├── logind-gperf.gperf
│   │   ├── logind-inhibit.c
│   │   ├── logind-inhibit.h
│   │   ├── logind-polkit.c
│   │   ├── logind-polkit.h
│   │   ├── logind-seat-dbus.c
│   │   ├── logind-seat-dbus.h
│   │   ├── logind-seat.c
│   │   ├── logind-seat.h
│   │   ├── logind-session-dbus.c
│   │   ├── logind-session-dbus.h
│   │   ├── logind-session-device.c
│   │   ├── logind-session-device.h
│   │   ├── logind-session.c
│   │   ├── logind-session.h
│   │   ├── logind-user-dbus.c
│   │   ├── logind-user-dbus.h
│   │   ├── logind-user.c
│   │   ├── logind-user.h
│   │   ├── logind-wall.c
│   │   ├── logind.c
│   │   ├── logind.conf.in
│   │   ├── logind.h
│   │   ├── meson.build
│   │   ├── org.freedesktop.login1.conf
│   │   ├── org.freedesktop.login1.policy
│   │   ├── org.freedesktop.login1.service
│   │   ├── pam_systemd.c
│   │   ├── pam_systemd.sym
│   │   ├── pam_systemd_loadkey.c
│   │   ├── pam_systemd_loadkey.sym
│   │   ├── sysfs-show.c
│   │   ├── sysfs-show.h
│   │   ├── systemd-user.in
│   │   ├── test-inhibit.c
│   │   ├── test-login-shared.c
│   │   ├── test-login-tables.c
│   │   ├── test-session-properties.c
│   │   └── user-runtime-dir.c
│   ├── machine/
│   │   ├── image-dbus.c
│   │   ├── image-dbus.h
│   │   ├── machine-dbus.c
│   │   ├── machine-dbus.h
│   │   ├── machine.c
│   │   ├── machine.h
│   │   ├── machinectl.c
│   │   ├── machined-core.c
│   │   ├── machined-dbus.c
│   │   ├── machined-varlink.c
│   │   ├── machined-varlink.h
│   │   ├── machined.c
│   │   ├── machined.h
│   │   ├── meson.build
│   │   ├── operation.c
│   │   ├── operation.h
│   │   ├── org.freedesktop.machine1.conf
│   │   ├── org.freedesktop.machine1.policy
│   │   ├── org.freedesktop.machine1.service
│   │   └── test-machine-tables.c
│   ├── machine-id-setup/
│   │   ├── machine-id-setup-main.c
│   │   └── meson.build
│   ├── modules-load/
│   │   ├── meson.build
│   │   └── modules-load.c
│   ├── mount/
│   │   ├── meson.build
│   │   └── mount-tool.c
│   ├── network/
│   │   ├── fuzz-netdev-parser.c
│   │   ├── fuzz-netdev-parser.options
│   │   ├── fuzz-network-parser.c
│   │   ├── fuzz-network-parser.options
│   │   ├── generator/
│   │   │   ├── main.c
│   │   │   ├── network-generator.c
│   │   │   ├── network-generator.h
│   │   │   └── test-network-generator.c
│   │   ├── meson.build
│   │   ├── netdev/
│   │   │   ├── bareudp.c
│   │   │   ├── bareudp.h
│   │   │   ├── batadv.c
│   │   │   ├── batadv.h
│   │   │   ├── bond.c
│   │   │   ├── bond.h
│   │   │   ├── bridge.c
│   │   │   ├── bridge.h
│   │   │   ├── dummy.c
│   │   │   ├── dummy.h
│   │   │   ├── fou-tunnel.c
│   │   │   ├── fou-tunnel.h
│   │   │   ├── geneve.c
│   │   │   ├── geneve.h
│   │   │   ├── ifb.c
│   │   │   ├── ifb.h
│   │   │   ├── ipoib.c
│   │   │   ├── ipoib.h
│   │   │   ├── ipvlan.c
│   │   │   ├── ipvlan.h
│   │   │   ├── l2tp-tunnel.c
│   │   │   ├── l2tp-tunnel.h
│   │   │   ├── macsec.c
│   │   │   ├── macsec.h
│   │   │   ├── macvlan.c
│   │   │   ├── macvlan.h
│   │   │   ├── netdev-gperf.gperf
│   │   │   ├── netdev-util.c
│   │   │   ├── netdev-util.h
│   │   │   ├── netdev.c
│   │   │   ├── netdev.h
│   │   │   ├── netdevsim.c
│   │   │   ├── netdevsim.h
│   │   │   ├── nlmon.c
│   │   │   ├── nlmon.h
│   │   │   ├── tunnel.c
│   │   │   ├── tunnel.h
│   │   │   ├── tuntap.c
│   │   │   ├── tuntap.h
│   │   │   ├── vcan.c
│   │   │   ├── vcan.h
│   │   │   ├── veth.c
│   │   │   ├── veth.h
│   │   │   ├── vlan.c
│   │   │   ├── vlan.h
│   │   │   ├── vrf.c
│   │   │   ├── vrf.h
│   │   │   ├── vxcan.c
│   │   │   ├── vxcan.h
│   │   │   ├── vxlan.c
│   │   │   ├── vxlan.h
│   │   │   ├── wireguard.c
│   │   │   ├── wireguard.h
│   │   │   ├── wlan.c
│   │   │   ├── wlan.h
│   │   │   ├── xfrm.c
│   │   │   └── xfrm.h
│   │   ├── networkctl.c
│   │   ├── networkd-address-generation.c
│   │   ├── networkd-address-generation.h
│   │   ├── networkd-address-label.c
│   │   ├── networkd-address-label.h
│   │   ├── networkd-address-pool.c
│   │   ├── networkd-address-pool.h
│   │   ├── networkd-address.c
│   │   ├── networkd-address.h
│   │   ├── networkd-bridge-fdb.c
│   │   ├── networkd-bridge-fdb.h
│   │   ├── networkd-bridge-mdb.c
│   │   ├── networkd-bridge-mdb.h
│   │   ├── networkd-bridge-vlan.c
│   │   ├── networkd-bridge-vlan.h
│   │   ├── networkd-can.c
│   │   ├── networkd-can.h
│   │   ├── networkd-conf.c
│   │   ├── networkd-conf.h
│   │   ├── networkd-dhcp-common.c
│   │   ├── networkd-dhcp-common.h
│   │   ├── networkd-dhcp-prefix-delegation.c
│   │   ├── networkd-dhcp-prefix-delegation.h
│   │   ├── networkd-dhcp-server-bus.c
│   │   ├── networkd-dhcp-server-bus.h
│   │   ├── networkd-dhcp-server-static-lease.c
│   │   ├── networkd-dhcp-server-static-lease.h
│   │   ├── networkd-dhcp-server.c
│   │   ├── networkd-dhcp-server.h
│   │   ├── networkd-dhcp4-bus.c
│   │   ├── networkd-dhcp4-bus.h
│   │   ├── networkd-dhcp4.c
│   │   ├── networkd-dhcp4.h
│   │   ├── networkd-dhcp6-bus.c
│   │   ├── networkd-dhcp6-bus.h
│   │   ├── networkd-dhcp6.c
│   │   ├── networkd-dhcp6.h
│   │   ├── networkd-gperf.gperf
│   │   ├── networkd-ipv4acd.c
│   │   ├── networkd-ipv4acd.h
│   │   ├── networkd-ipv4ll.c
│   │   ├── networkd-ipv4ll.h
│   │   ├── networkd-ipv6-proxy-ndp.c
│   │   ├── networkd-ipv6-proxy-ndp.h
│   │   ├── networkd-ipv6ll.c
│   │   ├── networkd-ipv6ll.h
│   │   ├── networkd-json.c
│   │   ├── networkd-json.h
│   │   ├── networkd-link-bus.c
│   │   ├── networkd-link-bus.h
│   │   ├── networkd-link.c
│   │   ├── networkd-link.h
│   │   ├── networkd-lldp-rx.c
│   │   ├── networkd-lldp-rx.h
│   │   ├── networkd-lldp-tx.c
│   │   ├── networkd-lldp-tx.h
│   │   ├── networkd-manager-bus.c
│   │   ├── networkd-manager-bus.h
│   │   ├── networkd-manager.c
│   │   ├── networkd-manager.h
│   │   ├── networkd-ndisc.c
│   │   ├── networkd-ndisc.h
│   │   ├── networkd-neighbor.c
│   │   ├── networkd-neighbor.h
│   │   ├── networkd-netlabel.c
│   │   ├── networkd-netlabel.h
│   │   ├── networkd-network-bus.c
│   │   ├── networkd-network-bus.h
│   │   ├── networkd-network-gperf.gperf
│   │   ├── networkd-network.c
│   │   ├── networkd-network.h
│   │   ├── networkd-nexthop.c
│   │   ├── networkd-nexthop.h
│   │   ├── networkd-queue.c
│   │   ├── networkd-queue.h
│   │   ├── networkd-radv.c
│   │   ├── networkd-radv.h
│   │   ├── networkd-route-util.c
│   │   ├── networkd-route-util.h
│   │   ├── networkd-route.c
│   │   ├── networkd-route.h
│   │   ├── networkd-routing-policy-rule.c
│   │   ├── networkd-routing-policy-rule.h
│   │   ├── networkd-setlink.c
│   │   ├── networkd-setlink.h
│   │   ├── networkd-speed-meter.c
│   │   ├── networkd-speed-meter.h
│   │   ├── networkd-sriov.c
│   │   ├── networkd-sriov.h
│   │   ├── networkd-state-file.c
│   │   ├── networkd-state-file.h
│   │   ├── networkd-sysctl.c
│   │   ├── networkd-sysctl.h
│   │   ├── networkd-util.c
│   │   ├── networkd-util.h
│   │   ├── networkd-wifi.c
│   │   ├── networkd-wifi.h
│   │   ├── networkd-wiphy.c
│   │   ├── networkd-wiphy.h
│   │   ├── networkd.c
│   │   ├── networkd.conf
│   │   ├── org.freedesktop.network1.conf
│   │   ├── org.freedesktop.network1.policy
│   │   ├── org.freedesktop.network1.service
│   │   ├── systemd-networkd.pkla
│   │   ├── systemd-networkd.rules
│   │   ├── tc/
│   │   │   ├── cake.c
│   │   │   ├── cake.h
│   │   │   ├── codel.c
│   │   │   ├── codel.h
│   │   │   ├── drr.c
│   │   │   ├── drr.h
│   │   │   ├── ets.c
│   │   │   ├── ets.h
│   │   │   ├── fifo.c
│   │   │   ├── fifo.h
│   │   │   ├── fq-codel.c
│   │   │   ├── fq-codel.h
│   │   │   ├── fq-pie.c
│   │   │   ├── fq-pie.h
│   │   │   ├── fq.c
│   │   │   ├── fq.h
│   │   │   ├── gred.c
│   │   │   ├── gred.h
│   │   │   ├── hhf.c
│   │   │   ├── hhf.h
│   │   │   ├── htb.c
│   │   │   ├── htb.h
│   │   │   ├── netem.c
│   │   │   ├── netem.h
│   │   │   ├── pie.c
│   │   │   ├── pie.h
│   │   │   ├── qdisc.c
│   │   │   ├── qdisc.h
│   │   │   ├── qfq.c
│   │   │   ├── qfq.h
│   │   │   ├── sfb.c
│   │   │   ├── sfb.h
│   │   │   ├── sfq.c
│   │   │   ├── sfq.h
│   │   │   ├── tbf.c
│   │   │   ├── tbf.h
│   │   │   ├── tc-util.c
│   │   │   ├── tc-util.h
│   │   │   ├── tc.c
│   │   │   ├── tc.h
│   │   │   ├── tclass.c
│   │   │   ├── tclass.h
│   │   │   ├── teql.c
│   │   │   └── teql.h
│   │   ├── test-network-tables.c
│   │   ├── test-network.c
│   │   ├── test-networkd-address.c
│   │   ├── test-networkd-conf.c
│   │   ├── test-networkd-util.c
│   │   └── wait-online/
│   │       ├── link.c
│   │       ├── link.h
│   │       ├── manager.c
│   │       ├── manager.h
│   │       └── wait-online.c
│   ├── notify/
│   │   ├── meson.build
│   │   └── notify.c
│   ├── nspawn/
│   │   ├── fuzz-nspawn-oci.c
│   │   ├── fuzz-nspawn-oci.options
│   │   ├── fuzz-nspawn-settings.c
│   │   ├── fuzz-nspawn-settings.options
│   │   ├── meson.build
│   │   ├── nspawn-bind-user.c
│   │   ├── nspawn-bind-user.h
│   │   ├── nspawn-cgroup.c
│   │   ├── nspawn-cgroup.h
│   │   ├── nspawn-def.h
│   │   ├── nspawn-expose-ports.c
│   │   ├── nspawn-expose-ports.h
│   │   ├── nspawn-gperf.gperf
│   │   ├── nspawn-mount.c
│   │   ├── nspawn-mount.h
│   │   ├── nspawn-network.c
│   │   ├── nspawn-network.h
│   │   ├── nspawn-oci.c
│   │   ├── nspawn-oci.h
│   │   ├── nspawn-patch-uid.c
│   │   ├── nspawn-patch-uid.h
│   │   ├── nspawn-register.c
│   │   ├── nspawn-register.h
│   │   ├── nspawn-seccomp.c
│   │   ├── nspawn-seccomp.h
│   │   ├── nspawn-settings.c
│   │   ├── nspawn-settings.h
│   │   ├── nspawn-setuid.c
│   │   ├── nspawn-setuid.h
│   │   ├── nspawn-stub-pid1.c
│   │   ├── nspawn-stub-pid1.h
│   │   ├── nspawn-util.c
│   │   ├── nspawn-util.h
│   │   ├── nspawn.c
│   │   ├── nspawn.h
│   │   ├── test-nspawn-tables.c
│   │   ├── test-nspawn-util.c
│   │   └── test-patch-uid.c
│   ├── nss-myhostname/
│   │   ├── meson.build
│   │   ├── nss-myhostname.c
│   │   └── nss-myhostname.sym
│   ├── nss-mymachines/
│   │   ├── meson.build
│   │   ├── nss-mymachines.c
│   │   └── nss-mymachines.sym
│   ├── nss-resolve/
│   │   ├── meson.build
│   │   ├── nss-resolve.c
│   │   └── nss-resolve.sym
│   ├── nss-systemd/
│   │   ├── meson.build
│   │   ├── nss-systemd.c
│   │   ├── nss-systemd.h
│   │   ├── nss-systemd.sym
│   │   ├── userdb-glue.c
│   │   └── userdb-glue.h
│   ├── oom/
│   │   ├── meson.build
│   │   ├── oomctl.c
│   │   ├── oomd-manager-bus.c
│   │   ├── oomd-manager-bus.h
│   │   ├── oomd-manager.c
│   │   ├── oomd-manager.h
│   │   ├── oomd-util.c
│   │   ├── oomd-util.h
│   │   ├── oomd.c
│   │   ├── oomd.conf
│   │   ├── org.freedesktop.oom1.conf
│   │   ├── org.freedesktop.oom1.service
│   │   └── test-oomd-util.c
│   ├── partition/
│   │   ├── definitions/
│   │   │   ├── confext.repart.d/
│   │   │   │   ├── 10-root.conf
│   │   │   │   ├── 20-root-verity.conf
│   │   │   │   └── 30-root-verity-sig.conf
│   │   │   ├── portable.repart.d/
│   │   │   │   ├── 10-root.conf
│   │   │   │   ├── 20-root-verity.conf
│   │   │   │   └── 30-root-verity-sig.conf
│   │   │   └── sysext.repart.d/
│   │   │       ├── 10-root.conf
│   │   │       ├── 20-root-verity.conf
│   │   │       └── 30-root-verity-sig.conf
│   │   ├── growfs.c
│   │   ├── makefs.c
│   │   ├── meson.build
│   │   └── repart.c
│   ├── path/
│   │   ├── meson.build
│   │   └── path.c
│   ├── pcrextend/
│   │   ├── meson.build
│   │   └── pcrextend.c
│   ├── pcrlock/
│   │   ├── meson.build
│   │   ├── pcrlock-firmware.c
│   │   ├── pcrlock-firmware.h
│   │   ├── pcrlock.c
│   │   ├── pcrlock.d/
│   │   │   ├── 350-action-efi-application.pcrlock
│   │   │   ├── 400-secureboot-separator.pcrlock.d/
│   │   │   │   ├── 300-0x00000000.pcrlock
│   │   │   │   └── 600-0xffffffff.pcrlock
│   │   │   ├── 500-separator.pcrlock.d/
│   │   │   │   ├── 300-0x00000000.pcrlock
│   │   │   │   └── 600-0xffffffff.pcrlock
│   │   │   ├── 700-action-efi-exit-boot-services.pcrlock.d/
│   │   │   │   ├── 300-present.pcrlock
│   │   │   │   └── 600-absent.pcrlock
│   │   │   ├── 750-enter-initrd.pcrlock
│   │   │   ├── 800-leave-initrd.pcrlock
│   │   │   ├── 850-sysinit.pcrlock
│   │   │   ├── 900-ready.pcrlock
│   │   │   ├── 950-shutdown.pcrlock
│   │   │   └── 990-final.pcrlock
│   │   ├── pehash.c
│   │   └── pehash.h
│   ├── portable/
│   │   ├── meson.build
│   │   ├── org.freedesktop.portable1.conf
│   │   ├── org.freedesktop.portable1.policy
│   │   ├── org.freedesktop.portable1.service
│   │   ├── portable.c
│   │   ├── portable.h
│   │   ├── portablectl.c
│   │   ├── portabled-bus.c
│   │   ├── portabled-bus.h
│   │   ├── portabled-image-bus.c
│   │   ├── portabled-image-bus.h
│   │   ├── portabled-image.c
│   │   ├── portabled-image.h
│   │   ├── portabled-operation.c
│   │   ├── portabled-operation.h
│   │   ├── portabled.c
│   │   ├── portabled.h
│   │   └── profile/
│   │       ├── default/
│   │       │   └── service.conf
│   │       ├── nonetwork/
│   │       │   └── service.conf
│   │       ├── strict/
│   │       │   └── service.conf
│   │       └── trusted/
│   │           └── service.conf
│   ├── pstore/
│   │   ├── meson.build
│   │   ├── pstore.c
│   │   └── pstore.conf
│   ├── quotacheck/
│   │   ├── meson.build
│   │   └── quotacheck.c
│   ├── random-seed/
│   │   ├── meson.build
│   │   └── random-seed.c
│   ├── rc-local-generator/
│   │   ├── meson.build
│   │   └── rc-local-generator.c
│   ├── remount-fs/
│   │   ├── meson.build
│   │   └── remount-fs.c
│   ├── reply-password/
│   │   ├── meson.build
│   │   └── reply-password.c
│   ├── resolve/
│   │   ├── RFCs
│   │   ├── dns-type.c
│   │   ├── dns-type.h
│   │   ├── dns_type-to-name.awk
│   │   ├── fuzz-dns-packet.c
│   │   ├── fuzz-dns-packet.options
│   │   ├── fuzz-etc-hosts.c
│   │   ├── fuzz-resource-record.c
│   │   ├── generate-dns_type-gperf.py
│   │   ├── generate-dns_type-list.sed
│   │   ├── meson.build
│   │   ├── org.freedesktop.resolve1.conf
│   │   ├── org.freedesktop.resolve1.policy
│   │   ├── org.freedesktop.resolve1.service
│   │   ├── resolv.conf
│   │   ├── resolvconf-compat.c
│   │   ├── resolvconf-compat.h
│   │   ├── resolvectl.c
│   │   ├── resolvectl.h
│   │   ├── resolved-bus.c
│   │   ├── resolved-bus.h
│   │   ├── resolved-conf.c
│   │   ├── resolved-conf.h
│   │   ├── resolved-def.h
│   │   ├── resolved-dns-answer.c
│   │   ├── resolved-dns-answer.h
│   │   ├── resolved-dns-cache.c
│   │   ├── resolved-dns-cache.h
│   │   ├── resolved-dns-dnssec.c
│   │   ├── resolved-dns-dnssec.h
│   │   ├── resolved-dns-packet.c
│   │   ├── resolved-dns-packet.h
│   │   ├── resolved-dns-query.c
│   │   ├── resolved-dns-query.h
│   │   ├── resolved-dns-question.c
│   │   ├── resolved-dns-question.h
│   │   ├── resolved-dns-rr.c
│   │   ├── resolved-dns-rr.h
│   │   ├── resolved-dns-scope.c
│   │   ├── resolved-dns-scope.h
│   │   ├── resolved-dns-search-domain.c
│   │   ├── resolved-dns-search-domain.h
│   │   ├── resolved-dns-server.c
│   │   ├── resolved-dns-server.h
│   │   ├── resolved-dns-stream.c
│   │   ├── resolved-dns-stream.h
│   │   ├── resolved-dns-stub.c
│   │   ├── resolved-dns-stub.h
│   │   ├── resolved-dns-synthesize.c
│   │   ├── resolved-dns-synthesize.h
│   │   ├── resolved-dns-transaction.c
│   │   ├── resolved-dns-transaction.h
│   │   ├── resolved-dns-trust-anchor.c
│   │   ├── resolved-dns-trust-anchor.h
│   │   ├── resolved-dns-zone.c
│   │   ├── resolved-dns-zone.h
│   │   ├── resolved-dnssd-bus.c
│   │   ├── resolved-dnssd-bus.h
│   │   ├── resolved-dnssd-gperf.gperf
│   │   ├── resolved-dnssd.c
│   │   ├── resolved-dnssd.h
│   │   ├── resolved-dnstls-gnutls.c
│   │   ├── resolved-dnstls-gnutls.h
│   │   ├── resolved-dnstls-openssl.c
│   │   ├── resolved-dnstls-openssl.h
│   │   ├── resolved-dnstls.h
│   │   ├── resolved-etc-hosts.c
│   │   ├── resolved-etc-hosts.h
│   │   ├── resolved-gperf.gperf
│   │   ├── resolved-link-bus.c
│   │   ├── resolved-link-bus.h
│   │   ├── resolved-link.c
│   │   ├── resolved-link.h
│   │   ├── resolved-llmnr.c
│   │   ├── resolved-llmnr.h
│   │   ├── resolved-manager.c
│   │   ├── resolved-manager.h
│   │   ├── resolved-mdns.c
│   │   ├── resolved-mdns.h
│   │   ├── resolved-resolv-conf.c
│   │   ├── resolved-resolv-conf.h
│   │   ├── resolved-socket-graveyard.c
│   │   ├── resolved-socket-graveyard.h
│   │   ├── resolved-timeouts.h
│   │   ├── resolved-util.c
│   │   ├── resolved-util.h
│   │   ├── resolved-varlink.c
│   │   ├── resolved-varlink.h
│   │   ├── resolved.c
│   │   ├── resolved.conf.in
│   │   ├── test-dns-packet.c
│   │   ├── test-dnssec-complex.c
│   │   ├── test-dnssec.c
│   │   ├── test-resolve-tables.c
│   │   ├── test-resolved-etc-hosts.c
│   │   ├── test-resolved-packet.c
│   │   └── test-resolved-stream.c
│   ├── rfkill/
│   │   ├── meson.build
│   │   └── rfkill.c
│   ├── rpm/
│   │   ├── macros.systemd.in
│   │   ├── meson.build
│   │   ├── systemd-update-helper.in
│   │   ├── triggers.systemd.in
│   │   └── triggers.systemd.sh.in
│   ├── run/
│   │   ├── meson.build
│   │   └── run.c
│   ├── run-generator/
│   │   ├── meson.build
│   │   └── run-generator.c
│   ├── shared/
│   │   ├── acl-util.c
│   │   ├── acl-util.h
│   │   ├── acpi-fpdt.c
│   │   ├── acpi-fpdt.h
│   │   ├── apparmor-util.c
│   │   ├── apparmor-util.h
│   │   ├── ask-password-api.c
│   │   ├── ask-password-api.h
│   │   ├── async.c
│   │   ├── async.h
│   │   ├── barrier.c
│   │   ├── barrier.h
│   │   ├── base-filesystem.c
│   │   ├── base-filesystem.h
│   │   ├── battery-util.c
│   │   ├── battery-util.h
│   │   ├── binfmt-util.c
│   │   ├── binfmt-util.h
│   │   ├── bitmap.c
│   │   ├── bitmap.h
│   │   ├── blkid-util.h
│   │   ├── blockdev-util.c
│   │   ├── blockdev-util.h
│   │   ├── bond-util.c
│   │   ├── bond-util.h
│   │   ├── boot-entry.c
│   │   ├── boot-entry.h
│   │   ├── boot-timestamps.c
│   │   ├── boot-timestamps.h
│   │   ├── bootspec.c
│   │   ├── bootspec.h
│   │   ├── bpf-compat.h
│   │   ├── bpf-dlopen.c
│   │   ├── bpf-dlopen.h
│   │   ├── bpf-link.c
│   │   ├── bpf-link.h
│   │   ├── bpf-program.c
│   │   ├── bpf-program.h
│   │   ├── bridge-util.c
│   │   ├── bridge-util.h
│   │   ├── btrfs-util.c
│   │   ├── btrfs-util.h
│   │   ├── bus-get-properties.c
│   │   ├── bus-get-properties.h
│   │   ├── bus-locator.c
│   │   ├── bus-locator.h
│   │   ├── bus-log-control-api.c
│   │   ├── bus-log-control-api.h
│   │   ├── bus-map-properties.c
│   │   ├── bus-map-properties.h
│   │   ├── bus-message-util.c
│   │   ├── bus-message-util.h
│   │   ├── bus-object.c
│   │   ├── bus-object.h
│   │   ├── bus-polkit.c
│   │   ├── bus-polkit.h
│   │   ├── bus-print-properties.c
│   │   ├── bus-print-properties.h
│   │   ├── bus-unit-procs.c
│   │   ├── bus-unit-procs.h
│   │   ├── bus-unit-util.c
│   │   ├── bus-unit-util.h
│   │   ├── bus-util.c
│   │   ├── bus-util.h
│   │   ├── bus-wait-for-jobs.c
│   │   ├── bus-wait-for-jobs.h
│   │   ├── bus-wait-for-units.c
│   │   ├── bus-wait-for-units.h
│   │   ├── calendarspec.c
│   │   ├── calendarspec.h
│   │   ├── cgroup-setup.c
│   │   ├── cgroup-setup.h
│   │   ├── cgroup-show.c
│   │   ├── cgroup-show.h
│   │   ├── chown-recursive.c
│   │   ├── chown-recursive.h
│   │   ├── clean-ipc.c
│   │   ├── clean-ipc.h
│   │   ├── clock-util.c
│   │   ├── clock-util.h
│   │   ├── common-signal.c
│   │   ├── common-signal.h
│   │   ├── compare-operator.c
│   │   ├── compare-operator.h
│   │   ├── condition.c
│   │   ├── condition.h
│   │   ├── conf-parser.c
│   │   ├── conf-parser.h
│   │   ├── copy.c
│   │   ├── copy.h
│   │   ├── coredump-util.c
│   │   ├── coredump-util.h
│   │   ├── cpu-set-util.c
│   │   ├── cpu-set-util.h
│   │   ├── creds-util.c
│   │   ├── creds-util.h
│   │   ├── cryptsetup-fido2.c
│   │   ├── cryptsetup-fido2.h
│   │   ├── cryptsetup-util.c
│   │   ├── cryptsetup-util.h
│   │   ├── daemon-util.c
│   │   ├── daemon-util.h
│   │   ├── data-fd-util.c
│   │   ├── data-fd-util.h
│   │   ├── dev-setup.c
│   │   ├── dev-setup.h
│   │   ├── device-nodes.c
│   │   ├── device-nodes.h
│   │   ├── devnode-acl.c
│   │   ├── devnode-acl.h
│   │   ├── discover-image.c
│   │   ├── discover-image.h
│   │   ├── dissect-image.c
│   │   ├── dissect-image.h
│   │   ├── dlfcn-util.c
│   │   ├── dlfcn-util.h
│   │   ├── dm-util.c
│   │   ├── dm-util.h
│   │   ├── dns-domain.c
│   │   ├── dns-domain.h
│   │   ├── dropin.c
│   │   ├── dropin.h
│   │   ├── edit-util.c
│   │   ├── edit-util.h
│   │   ├── efi-api.c
│   │   ├── efi-api.h
│   │   ├── efi-loader.c
│   │   ├── efi-loader.h
│   │   ├── elf-util.c
│   │   ├── elf-util.h
│   │   ├── enable-mempool.c
│   │   ├── env-file-label.c
│   │   ├── env-file-label.h
│   │   ├── ethtool-link-mode.py
│   │   ├── ethtool-util.c
│   │   ├── ethtool-util.h
│   │   ├── exec-util.c
│   │   ├── exec-util.h
│   │   ├── exit-status.c
│   │   ├── exit-status.h
│   │   ├── extension-util.c
│   │   ├── extension-util.h
│   │   ├── fdisk-util.c
│   │   ├── fdisk-util.h
│   │   ├── fdset.c
│   │   ├── fdset.h
│   │   ├── fileio-label.c
│   │   ├── fileio-label.h
│   │   ├── find-esp.c
│   │   ├── find-esp.h
│   │   ├── firewall-util-iptables.c
│   │   ├── firewall-util-nft.c
│   │   ├── firewall-util-private.h
│   │   ├── firewall-util.c
│   │   ├── firewall-util.h
│   │   ├── format-table.c
│   │   ├── format-table.h
│   │   ├── fsck-util.h
│   │   ├── fstab-util.c
│   │   ├── fstab-util.h
│   │   ├── generate-ip-protocol-list.sh
│   │   ├── generate-syscall-list.py
│   │   ├── generator.c
│   │   ├── generator.h
│   │   ├── geneve-util.c
│   │   ├── geneve-util.h
│   │   ├── gpt.c
│   │   ├── gpt.h
│   │   ├── group-record.c
│   │   ├── group-record.h
│   │   ├── hibernate-util.c
│   │   ├── hibernate-util.h
│   │   ├── hostname-setup.c
│   │   ├── hostname-setup.h
│   │   ├── hwdb-util.c
│   │   ├── hwdb-util.h
│   │   ├── id128-print.c
│   │   ├── id128-print.h
│   │   ├── idn-util.c
│   │   ├── idn-util.h
│   │   ├── ima-util.c
│   │   ├── ima-util.h
│   │   ├── image-policy.c
│   │   ├── image-policy.h
│   │   ├── import-util.c
│   │   ├── import-util.h
│   │   ├── in-addr-prefix-util.c
│   │   ├── in-addr-prefix-util.h
│   │   ├── initreq.h
│   │   ├── install-file.c
│   │   ├── install-file.h
│   │   ├── install-printf.c
│   │   ├── install-printf.h
│   │   ├── install.c
│   │   ├── install.h
│   │   ├── ip-protocol-list.c
│   │   ├── ip-protocol-list.h
│   │   ├── ip-protocol-to-name.awk
│   │   ├── ipvlan-util.c
│   │   ├── ipvlan-util.h
│   │   ├── journal-file-util.c
│   │   ├── journal-file-util.h
│   │   ├── journal-importer.c
│   │   ├── journal-importer.h
│   │   ├── journal-util.c
│   │   ├── journal-util.h
│   │   ├── json-internal.h
│   │   ├── json.c
│   │   ├── json.h
│   │   ├── kbd-util.c
│   │   ├── kbd-util.h
│   │   ├── kernel-image.c
│   │   ├── kernel-image.h
│   │   ├── keyring-util.c
│   │   ├── keyring-util.h
│   │   ├── killall.c
│   │   ├── killall.h
│   │   ├── label-util.c
│   │   ├── label-util.h
│   │   ├── libcrypt-util.c
│   │   ├── libcrypt-util.h
│   │   ├── libfido2-util.c
│   │   ├── libfido2-util.h
│   │   ├── libmount-util.c
│   │   ├── libmount-util.h
│   │   ├── libshared.sym
│   │   ├── linux/
│   │   │   ├── README
│   │   │   ├── auto_dev-ioctl.h
│   │   │   ├── bpf.h
│   │   │   ├── bpf_common.h
│   │   │   ├── bpf_insn.h
│   │   │   ├── dm-ioctl.h
│   │   │   └── ethtool.h
│   │   ├── local-addresses.c
│   │   ├── local-addresses.h
│   │   ├── locale-setup.c
│   │   ├── locale-setup.h
│   │   ├── log-link.h
│   │   ├── logs-show.c
│   │   ├── logs-show.h
│   │   ├── loop-util.c
│   │   ├── loop-util.h
│   │   ├── loopback-setup.c
│   │   ├── loopback-setup.h
│   │   ├── lsm-util.c
│   │   ├── lsm-util.h
│   │   ├── machine-credential.c
│   │   ├── machine-credential.h
│   │   ├── machine-id-setup.c
│   │   ├── machine-id-setup.h
│   │   ├── machine-pool.c
│   │   ├── machine-pool.h
│   │   ├── macvlan-util.c
│   │   ├── macvlan-util.h
│   │   ├── main-func.h
│   │   ├── meson.build
│   │   ├── mkdir-label.c
│   │   ├── mkdir-label.h
│   │   ├── mkfs-util.c
│   │   ├── mkfs-util.h
│   │   ├── module-util.c
│   │   ├── module-util.h
│   │   ├── mount-setup.c
│   │   ├── mount-setup.h
│   │   ├── mount-util.c
│   │   ├── mount-util.h
│   │   ├── net-condition.c
│   │   ├── net-condition.h
│   │   ├── netif-naming-scheme.c
│   │   ├── netif-naming-scheme.h
│   │   ├── netif-sriov.c
│   │   ├── netif-sriov.h
│   │   ├── netif-util.c
│   │   ├── netif-util.h
│   │   ├── nscd-flush.c
│   │   ├── nscd-flush.h
│   │   ├── nsflags.c
│   │   ├── nsflags.h
│   │   ├── numa-util.c
│   │   ├── numa-util.h
│   │   ├── open-file.c
│   │   ├── open-file.h
│   │   ├── openssl-util.c
│   │   ├── openssl-util.h
│   │   ├── output-mode.c
│   │   ├── output-mode.h
│   │   ├── pager.c
│   │   ├── pager.h
│   │   ├── pam-util.c
│   │   ├── pam-util.h
│   │   ├── parse-argument.c
│   │   ├── parse-argument.h
│   │   ├── parse-helpers.c
│   │   ├── parse-helpers.h
│   │   ├── password-quality-util-passwdqc.c
│   │   ├── password-quality-util-passwdqc.h
│   │   ├── password-quality-util-pwquality.c
│   │   ├── password-quality-util-pwquality.h
│   │   ├── password-quality-util.h
│   │   ├── pcre2-util.c
│   │   ├── pcre2-util.h
│   │   ├── pcrextend-util.c
│   │   ├── pcrextend-util.h
│   │   ├── pe-binary.c
│   │   ├── pe-binary.h
│   │   ├── pkcs11-util.c
│   │   ├── pkcs11-util.h
│   │   ├── plymouth-util.c
│   │   ├── plymouth-util.h
│   │   ├── pretty-print.c
│   │   ├── pretty-print.h
│   │   ├── ptyfwd.c
│   │   ├── ptyfwd.h
│   │   ├── qrcode-util.c
│   │   ├── qrcode-util.h
│   │   ├── quota-util.c
│   │   ├── quota-util.h
│   │   ├── reboot-util.c
│   │   ├── reboot-util.h
│   │   ├── recovery-key.c
│   │   ├── recovery-key.h
│   │   ├── resize-fs.c
│   │   ├── resize-fs.h
│   │   ├── resolve-util.c
│   │   ├── resolve-util.h
│   │   ├── rm-rf.c
│   │   ├── rm-rf.h
│   │   ├── seccomp-util.c
│   │   ├── seccomp-util.h
│   │   ├── securebits-util.c
│   │   ├── securebits-util.h
│   │   ├── selinux-util.c
│   │   ├── selinux-util.h
│   │   ├── serialize.c
│   │   ├── serialize.h
│   │   ├── service-util.c
│   │   ├── service-util.h
│   │   ├── sleep-config.c
│   │   ├── sleep-config.h
│   │   ├── smack-util.c
│   │   ├── smack-util.h
│   │   ├── socket-label.c
│   │   ├── socket-netlink.c
│   │   ├── socket-netlink.h
│   │   ├── spawn-ask-password-agent.c
│   │   ├── spawn-ask-password-agent.h
│   │   ├── spawn-polkit-agent.c
│   │   ├── spawn-polkit-agent.h
│   │   ├── specifier.c
│   │   ├── specifier.h
│   │   ├── switch-root.c
│   │   ├── switch-root.h
│   │   ├── test-tables.h
│   │   ├── tests.c
│   │   ├── tests.h
│   │   ├── tmpfile-util-label.c
│   │   ├── tmpfile-util-label.h
│   │   ├── tomoyo-util.c
│   │   ├── tomoyo-util.h
│   │   ├── tpm2-event-log.c
│   │   ├── tpm2-event-log.h
│   │   ├── tpm2-util.c
│   │   ├── tpm2-util.h
│   │   ├── udev-util.c
│   │   ├── udev-util.h
│   │   ├── user-record-nss.c
│   │   ├── user-record-nss.h
│   │   ├── user-record-show.c
│   │   ├── user-record-show.h
│   │   ├── user-record.c
│   │   ├── user-record.h
│   │   ├── userdb-dropin.c
│   │   ├── userdb-dropin.h
│   │   ├── userdb.c
│   │   ├── userdb.h
│   │   ├── utmp-wtmp.c
│   │   ├── utmp-wtmp.h
│   │   ├── varlink-idl.c
│   │   ├── varlink-idl.h
│   │   ├── varlink-internal.h
│   │   ├── varlink-io.systemd.Journal.c
│   │   ├── varlink-io.systemd.Journal.h
│   │   ├── varlink-io.systemd.ManagedOOM.c
│   │   ├── varlink-io.systemd.ManagedOOM.h
│   │   ├── varlink-io.systemd.PCRExtend.c
│   │   ├── varlink-io.systemd.PCRExtend.h
│   │   ├── varlink-io.systemd.Resolve.Monitor.c
│   │   ├── varlink-io.systemd.Resolve.Monitor.h
│   │   ├── varlink-io.systemd.Resolve.c
│   │   ├── varlink-io.systemd.Resolve.h
│   │   ├── varlink-io.systemd.UserDatabase.c
│   │   ├── varlink-io.systemd.UserDatabase.h
│   │   ├── varlink-io.systemd.c
│   │   ├── varlink-io.systemd.h
│   │   ├── varlink-io.systemd.oom.c
│   │   ├── varlink-io.systemd.oom.h
│   │   ├── varlink-io.systemd.service.c
│   │   ├── varlink-io.systemd.service.h
│   │   ├── varlink-io.systemd.sysext.c
│   │   ├── varlink-io.systemd.sysext.h
│   │   ├── varlink-org.varlink.service.c
│   │   ├── varlink-org.varlink.service.h
│   │   ├── varlink.c
│   │   ├── varlink.h
│   │   ├── verb-log-control.c
│   │   ├── verb-log-control.h
│   │   ├── verbs.c
│   │   ├── verbs.h
│   │   ├── vlan-util.c
│   │   ├── vlan-util.h
│   │   ├── volatile-util.c
│   │   ├── volatile-util.h
│   │   ├── wall.c
│   │   ├── wall.h
│   │   ├── watchdog.c
│   │   ├── watchdog.h
│   │   ├── web-util.c
│   │   ├── web-util.h
│   │   ├── wifi-util.c
│   │   ├── wifi-util.h
│   │   ├── xml.c
│   │   └── xml.h
│   ├── shutdown/
│   │   ├── detach-dm.c
│   │   ├── detach-dm.h
│   │   ├── detach-loopback.c
│   │   ├── detach-loopback.h
│   │   ├── detach-md.c
│   │   ├── detach-md.h
│   │   ├── detach-swap.c
│   │   ├── detach-swap.h
│   │   ├── meson.build
│   │   ├── shutdown.c
│   │   ├── shutdown.h
│   │   ├── test-umount.c
│   │   ├── umount.c
│   │   └── umount.h
│   ├── sleep/
│   │   ├── battery-capacity.c
│   │   ├── battery-capacity.h
│   │   ├── meson.build
│   │   ├── sleep.c
│   │   ├── sleep.conf
│   │   └── test-battery-capacity.c
│   ├── socket-activate/
│   │   ├── meson.build
│   │   └── socket-activate.c
│   ├── socket-proxy/
│   │   ├── meson.build
│   │   └── socket-proxyd.c
│   ├── stdio-bridge/
│   │   ├── meson.build
│   │   └── stdio-bridge.c
│   ├── storagetm/
│   │   ├── meson.build
│   │   └── storagetm.c
│   ├── sulogin-shell/
│   │   ├── meson.build
│   │   └── sulogin-shell.c
│   ├── sysctl/
│   │   ├── meson.build
│   │   └── sysctl.c
│   ├── sysext/
│   │   ├── meson.build
│   │   └── sysext.c
│   ├── system-update-generator/
│   │   ├── meson.build
│   │   └── system-update-generator.c
│   ├── systemctl/
│   │   ├── fuzz-systemctl-parse-argv.c
│   │   ├── meson.build
│   │   ├── systemctl-add-dependency.c
│   │   ├── systemctl-add-dependency.h
│   │   ├── systemctl-cancel-job.c
│   │   ├── systemctl-cancel-job.h
│   │   ├── systemctl-clean-or-freeze.c
│   │   ├── systemctl-clean-or-freeze.h
│   │   ├── systemctl-compat-halt.c
│   │   ├── systemctl-compat-halt.h
│   │   ├── systemctl-compat-runlevel.c
│   │   ├── systemctl-compat-runlevel.h
│   │   ├── systemctl-compat-shutdown.c
│   │   ├── systemctl-compat-shutdown.h
│   │   ├── systemctl-compat-telinit.c
│   │   ├── systemctl-compat-telinit.h
│   │   ├── systemctl-daemon-reload.c
│   │   ├── systemctl-daemon-reload.h
│   │   ├── systemctl-edit.c
│   │   ├── systemctl-edit.h
│   │   ├── systemctl-enable.c
│   │   ├── systemctl-enable.h
│   │   ├── systemctl-is-active.c
│   │   ├── systemctl-is-active.h
│   │   ├── systemctl-is-enabled.c
│   │   ├── systemctl-is-enabled.h
│   │   ├── systemctl-is-system-running.c
│   │   ├── systemctl-is-system-running.h
│   │   ├── systemctl-kill.c
│   │   ├── systemctl-kill.h
│   │   ├── systemctl-list-dependencies.c
│   │   ├── systemctl-list-dependencies.h
│   │   ├── systemctl-list-jobs.c
│   │   ├── systemctl-list-jobs.h
│   │   ├── systemctl-list-machines.c
│   │   ├── systemctl-list-machines.h
│   │   ├── systemctl-list-unit-files.c
│   │   ├── systemctl-list-unit-files.h
│   │   ├── systemctl-list-units.c
│   │   ├── systemctl-list-units.h
│   │   ├── systemctl-log-setting.c
│   │   ├── systemctl-log-setting.h
│   │   ├── systemctl-logind.c
│   │   ├── systemctl-logind.h
│   │   ├── systemctl-mount.c
│   │   ├── systemctl-mount.h
│   │   ├── systemctl-preset-all.c
│   │   ├── systemctl-preset-all.h
│   │   ├── systemctl-reset-failed.c
│   │   ├── systemctl-reset-failed.h
│   │   ├── systemctl-service-watchdogs.c
│   │   ├── systemctl-service-watchdogs.h
│   │   ├── systemctl-set-default.c
│   │   ├── systemctl-set-default.h
│   │   ├── systemctl-set-environment.c
│   │   ├── systemctl-set-environment.h
│   │   ├── systemctl-set-property.c
│   │   ├── systemctl-set-property.h
│   │   ├── systemctl-show.c
│   │   ├── systemctl-show.h
│   │   ├── systemctl-start-special.c
│   │   ├── systemctl-start-special.h
│   │   ├── systemctl-start-unit.c
│   │   ├── systemctl-start-unit.h
│   │   ├── systemctl-switch-root.c
│   │   ├── systemctl-switch-root.h
│   │   ├── systemctl-sysv-compat.c
│   │   ├── systemctl-sysv-compat.h
│   │   ├── systemctl-trivial-method.c
│   │   ├── systemctl-trivial-method.h
│   │   ├── systemctl-util.c
│   │   ├── systemctl-util.h
│   │   ├── systemctl-whoami.c
│   │   ├── systemctl-whoami.h
│   │   ├── systemctl.c
│   │   ├── systemctl.h
│   │   └── systemd-sysv-install.SKELETON
│   ├── systemd/
│   │   ├── _sd-common.h
│   │   ├── meson.build
│   │   ├── sd-bus-protocol.h
│   │   ├── sd-bus-vtable.h
│   │   ├── sd-bus.h
│   │   ├── sd-daemon.h
│   │   ├── sd-device.h
│   │   ├── sd-dhcp-client.h
│   │   ├── sd-dhcp-lease.h
│   │   ├── sd-dhcp-option.h
│   │   ├── sd-dhcp-protocol.h
│   │   ├── sd-dhcp-server.h
│   │   ├── sd-dhcp6-client.h
│   │   ├── sd-dhcp6-lease.h
│   │   ├── sd-dhcp6-option.h
│   │   ├── sd-dhcp6-protocol.h
│   │   ├── sd-event.h
│   │   ├── sd-gpt.h
│   │   ├── sd-hwdb.h
│   │   ├── sd-id128.h
│   │   ├── sd-ipv4acd.h
│   │   ├── sd-ipv4ll.h
│   │   ├── sd-journal.h
│   │   ├── sd-lldp-rx.h
│   │   ├── sd-lldp-tx.h
│   │   ├── sd-lldp.h
│   │   ├── sd-login.h
│   │   ├── sd-messages.h
│   │   ├── sd-ndisc.h
│   │   ├── sd-netlink.h
│   │   ├── sd-network.h
│   │   ├── sd-path.h
│   │   ├── sd-radv.h
│   │   ├── sd-resolve.h
│   │   └── sd-utf8.h
│   ├── sysupdate/
│   │   ├── meson.build
│   │   ├── sysupdate-cache.c
│   │   ├── sysupdate-cache.h
│   │   ├── sysupdate-instance.c
│   │   ├── sysupdate-instance.h
│   │   ├── sysupdate-partition.c
│   │   ├── sysupdate-partition.h
│   │   ├── sysupdate-pattern.c
│   │   ├── sysupdate-pattern.h
│   │   ├── sysupdate-resource.c
│   │   ├── sysupdate-resource.h
│   │   ├── sysupdate-transfer.c
│   │   ├── sysupdate-transfer.h
│   │   ├── sysupdate-update-set.c
│   │   ├── sysupdate-update-set.h
│   │   ├── sysupdate-util.c
│   │   ├── sysupdate.c
│   │   └── sysupdate.h
│   ├── sysusers/
│   │   ├── meson.build
│   │   └── sysusers.c
│   ├── sysv-generator/
│   │   ├── meson.build
│   │   └── sysv-generator.c
│   ├── test/
│   │   ├── generate-sym-test.py
│   │   ├── meson.build
│   │   ├── nss-test-util.c
│   │   ├── nss-test-util.h
│   │   ├── test-acl-util.c
│   │   ├── test-af-list.c
│   │   ├── test-alloc-util.c
│   │   ├── test-architecture.c
│   │   ├── test-argv-util.c
│   │   ├── test-arphrd-util.c
│   │   ├── test-ask-password-api.c
│   │   ├── test-async.c
│   │   ├── test-barrier.c
│   │   ├── test-bitfield.c
│   │   ├── test-bitmap.c
│   │   ├── test-blockdev-util.c
│   │   ├── test-boot-timestamps.c
│   │   ├── test-bootspec.c
│   │   ├── test-bpf-devices.c
│   │   ├── test-bpf-firewall.c
│   │   ├── test-bpf-foreign-programs.c
│   │   ├── test-bpf-lsm.c
│   │   ├── test-btrfs-physical-offset.c
│   │   ├── test-btrfs.c
│   │   ├── test-bus-util.c
│   │   ├── test-calendarspec.c
│   │   ├── test-cap-list.c
│   │   ├── test-capability.c
│   │   ├── test-cgroup-cpu.c
│   │   ├── test-cgroup-mask.c
│   │   ├── test-cgroup-setup.c
│   │   ├── test-cgroup-unit-default.c
│   │   ├── test-cgroup-util.c
│   │   ├── test-cgroup.c
│   │   ├── test-chase-manual.c
│   │   ├── test-chase.c
│   │   ├── test-chown-rec.c
│   │   ├── test-clock.c
│   │   ├── test-compare-operator.c
│   │   ├── test-compress-benchmark.c
│   │   ├── test-compress.c
│   │   ├── test-condition.c
│   │   ├── test-conf-files.c
│   │   ├── test-conf-parser.c
│   │   ├── test-copy.c
│   │   ├── test-core-unit.c
│   │   ├── test-coredump-util.c
│   │   ├── test-cpu-set-util.c
│   │   ├── test-creds.c
│   │   ├── test-cryptolib.c
│   │   ├── test-daemon.c
│   │   ├── test-data-fd-util.c
│   │   ├── test-date.c
│   │   ├── test-dev-setup.c
│   │   ├── test-device-nodes.c
│   │   ├── test-devnum-util.c
│   │   ├── test-dlopen-so.c
│   │   ├── test-dlopen.c
│   │   ├── test-dns-domain.c
│   │   ├── test-ellipsize.c
│   │   ├── test-emergency-action.c
│   │   ├── test-engine.c
│   │   ├── test-env-file.c
│   │   ├── test-env-util.c
│   │   ├── test-errno-list.c
│   │   ├── test-errno-util.c
│   │   ├── test-escape.c
│   │   ├── test-ether-addr-util.c
│   │   ├── test-exec-util.c
│   │   ├── test-execute.c
│   │   ├── test-execve.c
│   │   ├── test-exit-status.c
│   │   ├── test-extract-word.c
│   │   ├── test-fd-util.c
│   │   ├── test-fdset.c
│   │   ├── test-fiemap.c
│   │   ├── test-fileio.c
│   │   ├── test-firewall-util.c
│   │   ├── test-format-table.c
│   │   ├── test-format-util.c
│   │   ├── test-fs-util.c
│   │   ├── test-fstab-util.c
│   │   ├── test-glob-util.c
│   │   ├── test-gpt.c
│   │   ├── test-gunicode.c
│   │   ├── test-hash-funcs.c
│   │   ├── test-hashmap-ordered.awk
│   │   ├── test-hashmap-plain.c
│   │   ├── test-hashmap.c
│   │   ├── test-hexdecoct.c
│   │   ├── test-hmac.c
│   │   ├── test-hostname-setup.c
│   │   ├── test-hostname-util.c
│   │   ├── test-id128.c
│   │   ├── test-image-policy.c
│   │   ├── test-import-util.c
│   │   ├── test-in-addr-prefix-util.c
│   │   ├── test-in-addr-util.c
│   │   ├── test-install-file.c
│   │   ├── test-install-root.c
│   │   ├── test-install.c
│   │   ├── test-io-util.c
│   │   ├── test-ip-protocol-list.c
│   │   ├── test-ipcrm.c
│   │   ├── test-job-type.c
│   │   ├── test-journal-importer.c
│   │   ├── test-json.c
│   │   ├── test-kbd-util.c
│   │   ├── test-libcrypt-util.c
│   │   ├── test-libmount.c
│   │   ├── test-limits-util.c
│   │   ├── test-list.c
│   │   ├── test-load-fragment.c
│   │   ├── test-local-addresses.c
│   │   ├── test-locale-util.c
│   │   ├── test-lock-util.c
│   │   ├── test-log.c
│   │   ├── test-logarithm.c
│   │   ├── test-loop-block.c
│   │   ├── test-loopback.c
│   │   ├── test-macro.c
│   │   ├── test-manager.c
│   │   ├── test-math-util.c
│   │   ├── test-memfd-util.c
│   │   ├── test-memory-util.c
│   │   ├── test-mempool.c
│   │   ├── test-mempress.c
│   │   ├── test-memstream-util.c
│   │   ├── test-mkdir.c
│   │   ├── test-modhex.c
│   │   ├── test-mount-util.c
│   │   ├── test-mountpoint-util.c
│   │   ├── test-namespace.c
│   │   ├── test-net-naming-scheme.c
│   │   ├── test-netlink-manual.c
│   │   ├── test-nft-set.c
│   │   ├── test-ns.c
│   │   ├── test-nscd-flush.c
│   │   ├── test-nss-hosts.c
│   │   ├── test-nss-users.c
│   │   ├── test-nulstr-util.c
│   │   ├── test-open-file.c
│   │   ├── test-openssl.c
│   │   ├── test-ordered-set.c
│   │   ├── test-os-util.c
│   │   ├── test-parse-argument.c
│   │   ├── test-parse-helpers.c
│   │   ├── test-parse-util.c
│   │   ├── test-path-lookup.c
│   │   ├── test-path-util.c
│   │   ├── test-path.c
│   │   ├── test-percent-util.c
│   │   ├── test-pretty-print.c
│   │   ├── test-prioq.c
│   │   ├── test-proc-cmdline.c
│   │   ├── test-process-util.c
│   │   ├── test-procfs-util.c
│   │   ├── test-psi-util.c
│   │   ├── test-qrcode-util.c
│   │   ├── test-random-util.c
│   │   ├── test-ratelimit.c
│   │   ├── test-raw-clone.c
│   │   ├── test-recurse-dir.c
│   │   ├── test-replace-var.c
│   │   ├── test-rlimit-util.c
│   │   ├── test-rm-rf.c
│   │   ├── test-sbat.c
│   │   ├── test-sched-prio.c
│   │   ├── test-sd-hwdb.c
│   │   ├── test-sd-path.c
│   │   ├── test-seccomp.c
│   │   ├── test-secure-bits.c
│   │   ├── test-selinux.c
│   │   ├── test-serialize.c
│   │   ├── test-set-disable-mempool.c
│   │   ├── test-set.c
│   │   ├── test-sha256.c
│   │   ├── test-sigbus.c
│   │   ├── test-signal-util.c
│   │   ├── test-siphash24.c
│   │   ├── test-sizeof.c
│   │   ├── test-sleep-config.c
│   │   ├── test-socket-bind.c
│   │   ├── test-socket-netlink.c
│   │   ├── test-socket-util.c
│   │   ├── test-specifier.c
│   │   ├── test-stat-util.c
│   │   ├── test-static-destruct.c
│   │   ├── test-strbuf.c
│   │   ├── test-string-util.c
│   │   ├── test-strip-tab-ansi.c
│   │   ├── test-strv.c
│   │   ├── test-strxcpyx.c
│   │   ├── test-sysctl-util.c
│   │   ├── test-tables.c
│   │   ├── test-terminal-util.c
│   │   ├── test-time-util.c
│   │   ├── test-tmpfile-util.c
│   │   ├── test-tpm2.c
│   │   ├── test-udev-util.c
│   │   ├── test-uid-alloc-range.c
│   │   ├── test-uid-range.c
│   │   ├── test-umask-util.c
│   │   ├── test-unaligned.c
│   │   ├── test-unit-file.c
│   │   ├── test-unit-name.c
│   │   ├── test-unit-serialize.c
│   │   ├── test-user-util.c
│   │   ├── test-utf8.c
│   │   ├── test-utmp.c
│   │   ├── test-varlink-idl.c
│   │   ├── test-varlink.c
│   │   ├── test-verbs.c
│   │   ├── test-watch-pid.c
│   │   ├── test-watchdog.c
│   │   ├── test-web-util.c
│   │   ├── test-xattr-util.c
│   │   └── test-xml.c
│   ├── timedate/
│   │   ├── meson.build
│   │   ├── org.freedesktop.timedate1.conf
│   │   ├── org.freedesktop.timedate1.policy
│   │   ├── org.freedesktop.timedate1.service
│   │   ├── timedatectl.c
│   │   └── timedated.c
│   ├── timesync/
│   │   ├── 80-systemd-timesync.list
│   │   ├── meson.build
│   │   ├── org.freedesktop.timesync1.conf
│   │   ├── org.freedesktop.timesync1.policy
│   │   ├── org.freedesktop.timesync1.service
│   │   ├── test-timesync.c
│   │   ├── timesyncd-bus.c
│   │   ├── timesyncd-bus.h
│   │   ├── timesyncd-conf.c
│   │   ├── timesyncd-conf.h
│   │   ├── timesyncd-gperf.gperf
│   │   ├── timesyncd-manager.c
│   │   ├── timesyncd-manager.h
│   │   ├── timesyncd-ntp-message.h
│   │   ├── timesyncd-server.c
│   │   ├── timesyncd-server.h
│   │   ├── timesyncd.c
│   │   ├── timesyncd.conf.in
│   │   └── wait-sync.c
│   ├── tmpfiles/
│   │   ├── meson.build
│   │   ├── offline-passwd.c
│   │   ├── offline-passwd.h
│   │   ├── test-offline-passwd.c
│   │   └── tmpfiles.c
│   ├── tpm2-setup/
│   │   ├── meson.build
│   │   └── tpm2-setup.c
│   ├── tty-ask-password-agent/
│   │   ├── meson.build
│   │   └── tty-ask-password-agent.c
│   ├── udev/
│   │   ├── ata_id/
│   │   │   └── ata_id.c
│   │   ├── cdrom_id/
│   │   │   └── cdrom_id.c
│   │   ├── dmi_memory_id/
│   │   │   └── dmi_memory_id.c
│   │   ├── fido_id/
│   │   │   ├── fido_id.c
│   │   │   ├── fido_id_desc.c
│   │   │   ├── fido_id_desc.h
│   │   │   ├── fuzz-fido-id-desc.c
│   │   │   └── test-fido-id-desc.c
│   │   ├── fuzz-udev-rule-parse-value.c
│   │   ├── fuzz-udev-rules.c
│   │   ├── fuzz-udev-rules.options
│   │   ├── generate-keyboard-keys-gperf.sh
│   │   ├── generate-keyboard-keys-list.sh
│   │   ├── iocost/
│   │   │   ├── iocost.c
│   │   │   └── iocost.conf
│   │   ├── meson.build
│   │   ├── mtd_probe/
│   │   │   ├── mtd_probe.c
│   │   │   ├── mtd_probe.h
│   │   │   └── probe_smartmedia.c
│   │   ├── net/
│   │   │   ├── fuzz-link-parser.c
│   │   │   ├── fuzz-link-parser.options
│   │   │   ├── link-config-gperf.gperf
│   │   │   ├── link-config.c
│   │   │   ├── link-config.h
│   │   │   └── test-link-config-tables.c
│   │   ├── scsi_id/
│   │   │   ├── README
│   │   │   ├── scsi.h
│   │   │   ├── scsi_id.c
│   │   │   ├── scsi_id.h
│   │   │   └── scsi_serial.c
│   │   ├── test-udev-builtin.c
│   │   ├── test-udev-format.c
│   │   ├── test-udev-manager.c
│   │   ├── test-udev-node.c
│   │   ├── test-udev-rule-runner.c
│   │   ├── test-udev-rules.c
│   │   ├── test-udev-spawn.c
│   │   ├── udev-builtin-blkid.c
│   │   ├── udev-builtin-btrfs.c
│   │   ├── udev-builtin-hwdb.c
│   │   ├── udev-builtin-input_id.c
│   │   ├── udev-builtin-keyboard.c
│   │   ├── udev-builtin-kmod.c
│   │   ├── udev-builtin-net_driver.c
│   │   ├── udev-builtin-net_id.c
│   │   ├── udev-builtin-net_setup_link.c
│   │   ├── udev-builtin-path_id.c
│   │   ├── udev-builtin-uaccess.c
│   │   ├── udev-builtin-usb_id.c
│   │   ├── udev-builtin.c
│   │   ├── udev-builtin.h
│   │   ├── udev-ctrl.c
│   │   ├── udev-ctrl.h
│   │   ├── udev-event.c
│   │   ├── udev-event.h
│   │   ├── udev-format.c
│   │   ├── udev-format.h
│   │   ├── udev-manager.c
│   │   ├── udev-manager.h
│   │   ├── udev-node.c
│   │   ├── udev-node.h
│   │   ├── udev-rules.c
│   │   ├── udev-rules.h
│   │   ├── udev-spawn.c
│   │   ├── udev-spawn.h
│   │   ├── udev-trace.h
│   │   ├── udev-watch.c
│   │   ├── udev-watch.h
│   │   ├── udev-worker.c
│   │   ├── udev-worker.h
│   │   ├── udev.conf
│   │   ├── udev.pc.in
│   │   ├── udevadm-control.c
│   │   ├── udevadm-hwdb.c
│   │   ├── udevadm-info.c
│   │   ├── udevadm-lock.c
│   │   ├── udevadm-monitor.c
│   │   ├── udevadm-settle.c
│   │   ├── udevadm-test-builtin.c
│   │   ├── udevadm-test.c
│   │   ├── udevadm-trigger.c
│   │   ├── udevadm-util.c
│   │   ├── udevadm-util.h
│   │   ├── udevadm-verify.c
│   │   ├── udevadm-wait.c
│   │   ├── udevadm.c
│   │   ├── udevadm.h
│   │   ├── udevd.c
│   │   ├── udevd.h
│   │   └── v4l_id/
│   │       └── v4l_id.c
│   ├── ukify/
│   │   ├── test/
│   │   │   ├── example.signing.crt.base64
│   │   │   ├── example.signing.key.base64
│   │   │   ├── example.tpm2-pcr-private.pem.base64
│   │   │   ├── example.tpm2-pcr-private2.pem.base64
│   │   │   ├── example.tpm2-pcr-public.pem.base64
│   │   │   ├── example.tpm2-pcr-public2.pem.base64
│   │   │   ├── meson.build
│   │   │   ├── pytest.ini
│   │   │   └── test_ukify.py
│   │   └── ukify.py
│   ├── update-done/
│   │   ├── meson.build
│   │   └── update-done.c
│   ├── update-utmp/
│   │   ├── meson.build
│   │   └── update-utmp.c
│   ├── user-sessions/
│   │   ├── meson.build
│   │   └── user-sessions.c
│   ├── userdb/
│   │   ├── meson.build
│   │   ├── userdbctl.c
│   │   ├── userdbd-manager.c
│   │   ├── userdbd-manager.h
│   │   ├── userdbd.c
│   │   └── userwork.c
│   ├── varlinkctl/
│   │   ├── meson.build
│   │   └── varlinkctl.c
│   ├── vconsole/
│   │   ├── meson.build
│   │   └── vconsole-setup.c
│   ├── veritysetup/
│   │   ├── meson.build
│   │   ├── veritysetup-generator.c
│   │   └── veritysetup.c
│   ├── version/
│   │   └── version.h.in
│   ├── vmspawn/
│   │   ├── meson.build
│   │   ├── vmspawn-settings.c
│   │   ├── vmspawn-settings.h
│   │   ├── vmspawn-util.c
│   │   ├── vmspawn-util.h
│   │   └── vmspawn.c
│   ├── volatile-root/
│   │   ├── meson.build
│   │   └── volatile-root.c
│   └── xdg-autostart-generator/
│       ├── fuzz-xdg-desktop.c
│       ├── fuzz-xdg-desktop.options
│       ├── meson.build
│       ├── test-xdg-autostart.c
│       ├── xdg-autostart-condition.c
│       ├── xdg-autostart-generator.c
│       ├── xdg-autostart-service.c
│       └── xdg-autostart-service.h
├── sysctl.d/
│   ├── 50-coredump.conf.in
│   ├── 50-default.conf
│   ├── 50-pid-max.conf
│   ├── README
│   └── meson.build
├── sysusers.d/
│   ├── README
│   ├── basic.conf.in
│   ├── meson.build
│   ├── systemd-coredump.conf
│   ├── systemd-journal.conf.in
│   ├── systemd-network.conf.in
│   ├── systemd-oom.conf
│   ├── systemd-remote.conf
│   ├── systemd-resolve.conf.in
│   └── systemd-timesync.conf.in
├── test/
│   ├── .gitignore
│   ├── README.testsuite
│   ├── TEST-01-BASIC/
│   │   ├── Makefile
│   │   └── test.sh
│   ├── TEST-02-UNITTESTS/
│   │   └── test.sh
│   ├── TEST-03-JOBS/
│   │   └── test.sh
│   ├── TEST-04-JOURNAL/
│   │   └── test.sh
│   ├── TEST-05-RLIMITS/
│   │   └── test.sh
│   ├── TEST-06-SELINUX/
│   │   └── test.sh
│   ├── TEST-07-PID1/
│   │   └── test.sh
│   ├── TEST-08-INITRD/
│   │   └── test.sh
│   ├── TEST-09-REBOOT/
│   │   └── test.sh
│   ├── TEST-13-NSPAWN/
│   │   └── test.sh
│   ├── TEST-15-DROPIN/
│   │   └── test.sh
│   ├── TEST-16-EXTEND-TIMEOUT/
│   │   └── test.sh
│   ├── TEST-17-UDEV/
│   │   ├── deny-list-ubuntu-ci-ppc64el
│   │   └── test.sh
│   ├── TEST-18-FAILUREACTION/
│   │   └── test.sh
│   ├── TEST-19-CGROUP/
│   │   └── test.sh
│   ├── TEST-21-DFUZZER/
│   │   └── test.sh
│   ├── TEST-22-TMPFILES/
│   │   └── test.sh
│   ├── TEST-23-UNIT-FILE/
│   │   └── test.sh
│   ├── TEST-24-CRYPTSETUP/
│   │   └── test.sh
│   ├── TEST-25-IMPORT/
│   │   └── test.sh
│   ├── TEST-26-SYSTEMCTL/
│   │   └── test.sh
│   ├── TEST-29-PORTABLE/
│   │   └── test.sh
│   ├── TEST-30-ONCLOCKCHANGE/
│   │   └── test.sh
│   ├── TEST-31-DEVICE-ENUMERATION/
│   │   └── test.sh
│   ├── TEST-32-OOMPOLICY/
│   │   └── test.sh
│   ├── TEST-34-DYNAMICUSERMIGRATE/
│   │   └── test.sh
│   ├── TEST-35-LOGIN/
│   │   └── test.sh
│   ├── TEST-36-NUMAPOLICY/
│   │   └── test.sh
│   ├── TEST-38-FREEZER/
│   │   └── test.sh
│   ├── TEST-43-PRIVATEUSER-UNPRIV/
│   │   └── test.sh
│   ├── TEST-44-LOG-NAMESPACE/
│   │   └── test.sh
│   ├── TEST-45-TIMEDATE/
│   │   └── test.sh
│   ├── TEST-46-HOMED/
│   │   └── test.sh
│   ├── TEST-50-DISSECT/
│   │   └── test.sh
│   ├── TEST-52-HONORFIRSTSHUTDOWN/
│   │   └── test.sh
│   ├── TEST-53-ISSUE-16347/
│   │   └── test.sh
│   ├── TEST-54-CREDS/
│   │   └── test.sh
│   ├── TEST-55-OOMD/
│   │   └── test.sh
│   ├── TEST-58-REPART/
│   │   └── test.sh
│   ├── TEST-59-RELOADING-RESTART/
│   │   └── test.sh
│   ├── TEST-60-MOUNT-RATELIMIT/
│   │   └── test.sh
│   ├── TEST-62-RESTRICT-IFACES/
│   │   └── test.sh
│   ├── TEST-63-PATH/
│   │   └── test.sh
│   ├── TEST-64-UDEV-STORAGE/
│   │   ├── deny-list-ubuntu-ci
│   │   └── test.sh
│   ├── TEST-65-ANALYZE/
│   │   └── test.sh
│   ├── TEST-66-DEVICE-ISOLATION/
│   │   └── test.sh
│   ├── TEST-67-INTEGRITY/
│   │   └── test.sh
│   ├── TEST-68-PROPAGATE-EXIT-STATUS/
│   │   └── test.sh
│   ├── TEST-69-SHUTDOWN/
│   │   └── test.sh
│   ├── TEST-70-TPM2/
│   │   └── test.sh
│   ├── TEST-71-HOSTNAME/
│   │   └── test.sh
│   ├── TEST-72-SYSUPDATE/
│   │   └── test.sh
│   ├── TEST-73-LOCALE/
│   │   └── test.sh
│   ├── TEST-74-AUX-UTILS/
│   │   └── test.sh
│   ├── TEST-75-RESOLVED/
│   │   └── test.sh
│   ├── TEST-76-SYSCTL/
│   │   └── test.sh
│   ├── TEST-77-OPENFILE/
│   │   └── test.sh
│   ├── TEST-78-SIGQUEUE/
│   │   └── test.sh
│   ├── TEST-79-MEMPRESS/
│   │   └── test.sh
│   ├── TEST-80-NOTIFYACCESS/
│   │   └── test.sh
│   ├── TEST-81-GENERATORS/
│   │   └── test.sh
│   ├── TEST-82-SOFTREBOOT/
│   │   └── test.sh
│   ├── TEST-83-BTRFS/
│   │   └── test.sh
│   ├── TEST-84-STORAGETM/
│   │   └── test.sh
│   ├── auxv/
│   │   ├── .gitattributes
│   │   ├── bash.riscv64
│   │   ├── cat.s390x
│   │   ├── dbus-broker-launch.aarch64
│   │   ├── dbus-broker-launch.amd64
│   │   ├── polkitd.aarch64
│   │   ├── resolved.arm32
│   │   ├── sleep.i686
│   │   ├── sleep32.i686
│   │   ├── sleep64.amd64
│   │   ├── sudo.aarch64
│   │   └── sudo.amd64
│   ├── create-sys-script.py
│   ├── dmidecode-dumps/
│   │   ├── .gitattributes
│   │   ├── HP-Z600.bin.txt
│   │   ├── Lenovo-ThinkPad-X280.bin.txt
│   │   └── Lenovo-Thinkcentre-m720s.bin.txt
│   ├── fuzz/
│   │   ├── .gitattributes
│   │   ├── fuzz-bootspec/
│   │   │   ├── crash-autoentry
│   │   │   ├── crash-empty-value
│   │   │   ├── crash-json-dispatch
│   │   │   ├── oss-fuzz-53578
│   │   │   ├── sample1
│   │   │   └── sanitizer-overload
│   │   ├── fuzz-bus-match/
│   │   │   ├── bugzilla1935084.input
│   │   │   └── test.input
│   │   ├── fuzz-bus-message/
│   │   │   ├── crash-array
│   │   │   ├── crash-array-field-skip
│   │   │   ├── crash-array-offset
│   │   │   ├── crash-empty-string
│   │   │   ├── crash-empty-struct
│   │   │   ├── crash-mem-overread
│   │   │   ├── crash-nesting
│   │   │   ├── crash-offset-table
│   │   │   ├── crash-return-value
│   │   │   ├── crash-return-value-again
│   │   │   ├── crash-unsigned-wraparound
│   │   │   ├── issue-23486-case-1
│   │   │   ├── issue-23486-case-2
│   │   │   ├── issue-23486-case-3
│   │   │   ├── leak-container-exit
│   │   │   ├── message1
│   │   │   ├── oss-fuzz-14016
│   │   │   ├── oss-fuzz-19446
│   │   │   ├── timeout-empty-struct
│   │   │   └── zero-offset-to-null-pointer
│   │   ├── fuzz-calendarspec/
│   │   │   ├── cant-parse-printed
│   │   │   ├── corpus
│   │   │   ├── crash-parse-star-non-star
│   │   │   ├── input1
│   │   │   ├── oss-fuzz-14108
│   │   │   ├── oss-fuzz-22208
│   │   │   └── print-loses-spec
│   │   ├── fuzz-catalog/
│   │   │   ├── language-too-short
│   │   │   └── systemd.pl.catalog
│   │   ├── fuzz-compress/
│   │   │   └── issue-36472
│   │   ├── fuzz-dhcp-client/
│   │   │   ├── parse-memleak
│   │   │   └── timeout-lease_parse_routes
│   │   ├── fuzz-dhcp-server/
│   │   │   ├── buffer-overflow-1
│   │   │   ├── buffer-overflow-2
│   │   │   ├── discover-existing
│   │   │   ├── discover-new
│   │   │   ├── duplicate-input-data
│   │   │   ├── release
│   │   │   ├── request-existing
│   │   │   ├── request-new
│   │   │   ├── request-reboot
│   │   │   └── request-renew
│   │   ├── fuzz-dhcp-server-relay/
│   │   │   ├── sample1
│   │   │   ├── sample2
│   │   │   └── too-large-packet
│   │   ├── fuzz-dhcp6-client/
│   │   │   ├── crash-13578
│   │   │   ├── crash-13591
│   │   │   ├── crash-buf-size
│   │   │   ├── crash-domainname
│   │   │   ├── crash-initial1
│   │   │   ├── crash-initial2
│   │   │   ├── crash-initial3
│   │   │   ├── oss-fuzz-10746
│   │   │   └── oss-fuzz-11019
│   │   ├── fuzz-dns-packet/
│   │   │   ├── crash-null
│   │   │   ├── issue-7888
│   │   │   ├── oss-fuzz-13422
│   │   │   ├── oss-fuzz-19227
│   │   │   └── oss-fuzz-5465
│   │   ├── fuzz-env-file/
│   │   │   └── simple-env-file
│   │   ├── fuzz-etc-hosts/
│   │   │   ├── oss-fuzz-47708
│   │   │   └── timeout-strv
│   │   ├── fuzz-execute-serialize/
│   │   │   ├── crash-395e
│   │   │   ├── crash-622a
│   │   │   ├── initial
│   │   │   ├── mount-images
│   │   │   └── state
│   │   ├── fuzz-fido-id-desc/
│   │   │   ├── crash0
│   │   │   ├── crash1
│   │   │   ├── report0
│   │   │   └── report1
│   │   ├── fuzz-journal-remote/
│   │   │   ├── crash-nul-in-field-name
│   │   │   ├── crash-source-realtime-ts
│   │   │   ├── invalid-ts.txt
│   │   │   ├── oss-fuzz-21122
│   │   │   ├── oss-fuzz-25353
│   │   │   ├── oss-fuzz-28817
│   │   │   ├── oss-fuzz-8658
│   │   │   ├── oss-fuzz-8659
│   │   │   ├── oss-fuzz-8686
│   │   │   ├── oss-fuzz-9341
│   │   │   └── sample.txt
│   │   ├── fuzz-journald-audit/
│   │   │   ├── basic
│   │   │   └── crash
│   │   ├── fuzz-journald-kmsg/
│   │   │   ├── basic
│   │   │   ├── crash-ident-with-spaces
│   │   │   ├── dev-null
│   │   │   ├── leak-missing-cleanup
│   │   │   ├── loopback
│   │   │   ├── oss-fuzz-33881
│   │   │   └── subsystem-loopback
│   │   ├── fuzz-journald-native-fd/
│   │   │   └── basic
│   │   ├── fuzz-journald-stream/
│   │   │   └── basic
│   │   ├── fuzz-journald-syslog/
│   │   │   ├── github-9795
│   │   │   ├── github-9820
│   │   │   ├── github-9827
│   │   │   └── github-9829
│   │   ├── fuzz-json/
│   │   │   ├── crash-5639441482252288
│   │   │   ├── github-15907
│   │   │   ├── leak-normalize-fail
│   │   │   ├── leak-normalize-object
│   │   │   ├── leak-sort
│   │   │   └── oss-fuzz-10908
│   │   ├── fuzz-link-parser/
│   │   │   ├── 99-default.link
│   │   │   ├── advertise-segv.link
│   │   │   ├── condition-memleak.link
│   │   │   ├── oss-fuzz-13878
│   │   │   └── oss-fuzz-13882
│   │   ├── fuzz-lldp-rx/
│   │   │   ├── basic
│   │   │   ├── incomplete
│   │   │   └── oui
│   │   ├── fuzz-manager-serialize/
│   │   │   ├── activation-details
│   │   │   ├── bogus-unit-type
│   │   │   ├── empty-attachment-path
│   │   │   ├── invalid-varlink-sock
│   │   │   ├── netns-invalid-socket
│   │   │   ├── service-accept-socket
│   │   │   ├── socket-int-max
│   │   │   └── state
│   │   ├── fuzz-ndisc-rs/
│   │   │   ├── infinite-loop-recv
│   │   │   └── infinite-loop-timeout
│   │   ├── fuzz-netdev-parser/
│   │   │   ├── 6rd-tunnel.netdev
│   │   │   ├── batadv.netdev
│   │   │   ├── bond-backup.netdev
│   │   │   ├── bond.netdev
│   │   │   ├── bridge-2.netdev
│   │   │   ├── bridge.netdev
│   │   │   ├── crash-null-address
│   │   │   ├── dummy-2.netdev
│   │   │   ├── dummy.netdev
│   │   │   ├── erspan-tunnel.netdev
│   │   │   ├── geneve.netdev
│   │   │   ├── github-10615
│   │   │   ├── github-10629
│   │   │   ├── github-15968
│   │   │   ├── gre-tunnel.netdev
│   │   │   ├── gretap-tunnel.netdev
│   │   │   ├── ip6gre-tunnel.netdev
│   │   │   ├── ip6tnl-tunnel.netdev
│   │   │   ├── ipip-tunnel.netdev
│   │   │   ├── ipip-tunnel2.netdev
│   │   │   ├── ipvlan.netdev
│   │   │   ├── macvlan.netdev
│   │   │   ├── macvtap.netdev
│   │   │   ├── oss-fuzz-11279
│   │   │   ├── oss-fuzz-11280
│   │   │   ├── oss-fuzz-11286
│   │   │   ├── oss-fuzz-11287
│   │   │   ├── oss-fuzz-11296
│   │   │   ├── oss-fuzz-11297
│   │   │   ├── oss-fuzz-11299
│   │   │   ├── oss-fuzz-11324
│   │   │   ├── oss-fuzz-11344
│   │   │   ├── oss-fuzz-13719
│   │   │   ├── oss-fuzz-13884
│   │   │   ├── oss-fuzz-13886
│   │   │   ├── oss-fuzz-14157
│   │   │   ├── oss-fuzz-14158
│   │   │   ├── oss-fuzz-22547
│   │   │   ├── oss-fuzz-62556
│   │   │   ├── sit-tunnel.netdev
│   │   │   ├── tap.netdev
│   │   │   ├── tun.netdev
│   │   │   ├── vcan.netdev
│   │   │   ├── veth.netdev
│   │   │   ├── vlan.netdev
│   │   │   ├── vrf.netdev
│   │   │   ├── vti-tunnel.netdev
│   │   │   ├── vti6-tunnel.netdev
│   │   │   ├── vxlan.netdev
│   │   │   ├── wg-dup-endpoint
│   │   │   ├── wireguard.netdev
│   │   │   └── xfrm.netdev
│   │   ├── fuzz-network-parser/
│   │   │   ├── active-slave
│   │   │   ├── address-link-section
│   │   │   ├── address-section
│   │   │   ├── address-section-misc
│   │   │   ├── bond199
│   │   │   ├── bridge-slave-interface-1
│   │   │   ├── bridge-slave-interface-2
│   │   │   ├── bridge99
│   │   │   ├── configure-no-carrier
│   │   │   ├── dhcp-client
│   │   │   ├── dhcp-client-anonymize
│   │   │   ├── dhcp-client-ipv4-no-ipv6
│   │   │   ├── dhcp-client-ipv4-only
│   │   │   ├── dhcp-client-ipv6-only
│   │   │   ├── dhcp-client-listen-port
│   │   │   ├── dhcp-client-route-metric
│   │   │   ├── dhcp-client-route-table
│   │   │   ├── dhcp-client-tz-router
│   │   │   ├── dhcp-critical-connection
│   │   │   ├── dhcp-option
│   │   │   ├── dhcp-server
│   │   │   ├── dhcp-server-static-lease
│   │   │   ├── dhcp-server-tz-router
│   │   │   ├── dhcp-server-veth-peer
│   │   │   ├── dhcp-v4-server-veth-peer
│   │   │   ├── dhcpv4-client-settings
│   │   │   ├── dhcpv6-rapid-commit
│   │   │   ├── dns-trust-dup-anchor
│   │   │   ├── emit-lldp
│   │   │   ├── fibrule-port-range
│   │   │   ├── github-10639
│   │   │   ├── github-13938
│   │   │   ├── github-15885
│   │   │   ├── github-15951
│   │   │   ├── gretap
│   │   │   ├── gretun
│   │   │   ├── ip6gretap
│   │   │   ├── ip6tnl
│   │   │   ├── ipip
│   │   │   ├── ipv6-address-label
│   │   │   ├── ipv6-prefix
│   │   │   ├── ipv6-prefix-veth
│   │   │   ├── ipvlan
│   │   │   ├── link-section-unmanaged
│   │   │   ├── lldp
│   │   │   ├── macvlan
│   │   │   ├── macvtap
│   │   │   ├── neighbor-section
│   │   │   ├── oss-fuzz-11285
│   │   │   ├── oss-fuzz-11302
│   │   │   ├── oss-fuzz-11314
│   │   │   ├── oss-fuzz-11345
│   │   │   ├── oss-fuzz-13059
│   │   │   ├── oss-fuzz-13354
│   │   │   ├── oss-fuzz-13433
│   │   │   ├── oss-fuzz-13888
│   │   │   ├── oss-fuzz-15678
│   │   │   ├── oss-fuzz-20548
│   │   │   ├── oss-fuzz-23895
│   │   │   ├── oss-fuzz-23950
│   │   │   ├── primary-slave
│   │   │   ├── route-section
│   │   │   ├── route-type
│   │   │   ├── routing-policy-rule
│   │   │   ├── search-domain
│   │   │   ├── sit
│   │   │   ├── sysctl
│   │   │   ├── tcp-window-settings
│   │   │   ├── test-static
│   │   │   ├── test1-bond199
│   │   │   ├── vlan
│   │   │   ├── vti
│   │   │   ├── vti6
│   │   │   ├── vxlan
│   │   │   └── xfrm
│   │   ├── fuzz-nspawn-oci/
│   │   │   ├── basic.json
│   │   │   ├── double-free
│   │   │   ├── invalid-read-magic-string
│   │   │   ├── invalid-read-magic-string2
│   │   │   └── no-mount-source
│   │   ├── fuzz-nspawn-settings/
│   │   │   ├── basic-config
│   │   │   ├── leak-bind-mount
│   │   │   └── oss-fuzz-13691
│   │   ├── fuzz-resource-record/
│   │   │   ├── just-slash
│   │   │   ├── oss-fuzz-54059
│   │   │   ├── oss-fuzz-54065
│   │   │   ├── oss-fuzz-54080
│   │   │   ├── oss-fuzz-54090
│   │   │   └── ub-zero-length-rdata
│   │   ├── fuzz-systemctl-parse-argv/
│   │   │   ├── help.input
│   │   │   ├── missing-strv-free
│   │   │   ├── oss-fuzz-31055
│   │   │   ├── oss-fuzz-31714
│   │   │   └── oss-fuzz-56915
│   │   ├── fuzz-udev-database/
│   │   │   └── sample.txt
│   │   ├── fuzz-udev-rules/
│   │   │   ├── block.rules
│   │   │   ├── btrfs.rules
│   │   │   ├── cdrom_id.rules
│   │   │   ├── drivers.rules
│   │   │   ├── drm.rules
│   │   │   ├── evdev.rules
│   │   │   ├── input-id.rules
│   │   │   ├── joystick.rules
│   │   │   ├── line-too-long
│   │   │   ├── mouse.rules
│   │   │   ├── net-description.rules
│   │   │   ├── net-setup-link.rules
│   │   │   ├── oss-fuzz-12980
│   │   │   ├── persistent-alsa.rules
│   │   │   ├── persistent-input.rules
│   │   │   ├── persistent-storage.rules
│   │   │   ├── persistent-v4l.rules
│   │   │   ├── probe_mtd.rules
│   │   │   ├── sensor.rules
│   │   │   ├── serial.rules
│   │   │   ├── sound-card.rules
│   │   │   ├── storage-tape.rules
│   │   │   ├── systemd.rules
│   │   │   ├── touchpad.rules
│   │   │   └── udev-default.rules
│   │   ├── fuzz-unit-file/
│   │   │   ├── ask-password-console.path
│   │   │   ├── binfmt_misc.automount
│   │   │   ├── directives-all.service
│   │   │   ├── dm-back\x2dslash.swap
│   │   │   ├── empty.scope
│   │   │   ├── github-19178
│   │   │   ├── machine.slice
│   │   │   ├── oss-fuzz-10007
│   │   │   ├── oss-fuzz-11569
│   │   │   ├── oss-fuzz-13125
│   │   │   ├── oss-fuzz-32991
│   │   │   ├── oss-fuzz-33270
│   │   │   ├── oss-fuzz-33876
│   │   │   ├── oss-fuzz-6884
│   │   │   ├── oss-fuzz-6885
│   │   │   ├── oss-fuzz-6886
│   │   │   ├── oss-fuzz-6892
│   │   │   ├── oss-fuzz-6897
│   │   │   ├── oss-fuzz-6897-evverx
│   │   │   ├── oss-fuzz-6908
│   │   │   ├── oss-fuzz-6917
│   │   │   ├── oss-fuzz-6977
│   │   │   ├── oss-fuzz-6977-unminimized
│   │   │   ├── oss-fuzz-7004
│   │   │   ├── oss-fuzz-8064
│   │   │   ├── oss-fuzz-8827
│   │   │   ├── syslog.socket
│   │   │   ├── systemd-machined.service
│   │   │   ├── systemd-resolved.service
│   │   │   ├── timers.target
│   │   │   ├── tmpfiles-clean.timer
│   │   │   └── var-lib-machines.mount
│   │   ├── fuzz-varlink/
│   │   │   ├── array
│   │   │   ├── do-something
│   │   │   ├── huge-method
│   │   │   ├── method-call
│   │   │   ├── method-error
│   │   │   ├── method-reply
│   │   │   ├── oss-fuzz-14688
│   │   │   ├── oss-fuzz-14708
│   │   │   └── timeout
│   │   ├── fuzz-varlink-idl/
│   │   │   ├── crash-d1860f2b
│   │   │   └── interface1
│   │   ├── fuzz-xdg-desktop/
│   │   │   ├── SettingsDaemon.desktop
│   │   │   ├── full.desktop
│   │   │   ├── oss-fuzz-22812
│   │   │   └── valid.desktop
│   │   ├── generate-directives.py
│   │   └── meson.build
│   ├── hwdb-test.sh
│   ├── hwdb.d/
│   │   └── 10-bad.hwdb
│   ├── journal-data/
│   │   ├── .gitattributes
│   │   ├── journal-1.txt
│   │   └── journal-2.txt
│   ├── knot-data/
│   │   ├── knot.conf
│   │   └── zones/
│   │       ├── onlinesign.test.zone
│   │       ├── root.zone
│   │       ├── signed.test.zone
│   │       ├── test.zone
│   │       ├── unsigned.test.zone
│   │       └── untrusted.test.zone
│   ├── meson.build
│   ├── networkd-test.py
│   ├── rule-syntax-check.py
│   ├── run-integration-tests.sh
│   ├── run-unit-tests.py
│   ├── sd-script.py
│   ├── sys-script.py
│   ├── sysv-generator-test.py
│   ├── test-bcd/
│   │   ├── .gitattributes
│   │   ├── corrupt.bcd.zst
│   │   ├── description-bad-type.bcd.zst
│   │   ├── description-empty.bcd.zst
│   │   ├── description-missing.bcd.zst
│   │   ├── description-too-small.bcd.zst
│   │   ├── displayorder-bad-name.bcd.zst
│   │   ├── displayorder-bad-size.bcd.zst
│   │   ├── displayorder-bad-type.bcd.zst
│   │   ├── empty.bcd.zst
│   │   └── win10.bcd.zst
│   ├── test-bootctl-json.sh
│   ├── test-compare-versions.sh
│   ├── test-exec-deserialization.py
│   ├── test-execute/
│   │   ├── exec-ambientcapabilities-dynuser.service
│   │   ├── exec-ambientcapabilities-merge-nfsnobody.service
│   │   ├── exec-ambientcapabilities-merge-nobody.service
│   │   ├── exec-ambientcapabilities-merge.service
│   │   ├── exec-ambientcapabilities-nfsnobody.service
│   │   ├── exec-ambientcapabilities-nobody.service
│   │   ├── exec-ambientcapabilities.service
│   │   ├── exec-basic.service
│   │   ├── exec-bindpaths.service
│   │   ├── exec-capabilityboundingset-invert.service
│   │   ├── exec-capabilityboundingset-merge.service
│   │   ├── exec-capabilityboundingset-reset.service
│   │   ├── exec-capabilityboundingset-simple.service
│   │   ├── exec-condition-failed.service
│   │   ├── exec-condition-skip.service
│   │   ├── exec-cpuaffinity1.service
│   │   ├── exec-cpuaffinity2.service
│   │   ├── exec-cpuaffinity3.service
│   │   ├── exec-credentials-dir-specifier.service
│   │   ├── exec-dynamicuser-fixeduser-adm.service
│   │   ├── exec-dynamicuser-fixeduser-games.service
│   │   ├── exec-dynamicuser-fixeduser-one-supplementarygroup.service
│   │   ├── exec-dynamicuser-fixeduser.service
│   │   ├── exec-dynamicuser-runtimedirectory1.service
│   │   ├── exec-dynamicuser-runtimedirectory2.service
│   │   ├── exec-dynamicuser-runtimedirectory3.service
│   │   ├── exec-dynamicuser-statedir-migrate-step1.service
│   │   ├── exec-dynamicuser-statedir-migrate-step2.service
│   │   ├── exec-dynamicuser-statedir.service
│   │   ├── exec-dynamicuser-supplementarygroups.service
│   │   ├── exec-environment-empty.service
│   │   ├── exec-environment-multiple.service
│   │   ├── exec-environment-no-substitute.service
│   │   ├── exec-environment.service
│   │   ├── exec-environmentfile.service
│   │   ├── exec-execsearchpath-environment-path-set.service
│   │   ├── exec-execsearchpath-environment.service
│   │   ├── exec-execsearchpath-environmentfile-set.service
│   │   ├── exec-execsearchpath-environmentfile.service
│   │   ├── exec-execsearchpath-passenvironment-set.service
│   │   ├── exec-execsearchpath-passenvironment.service
│   │   ├── exec-execsearchpath-unit-specifier.service
│   │   ├── exec-execsearchpath.service
│   │   ├── exec-group-nfsnobody.service
│   │   ├── exec-group-nobody.service
│   │   ├── exec-group-nogroup.service
│   │   ├── exec-group.service
│   │   ├── exec-ignoresigpipe-no.service
│   │   ├── exec-ignoresigpipe-yes.service
│   │   ├── exec-inaccessiblepaths-mount-propagation.service
│   │   ├── exec-inaccessiblepaths-sys.service
│   │   ├── exec-ioschedulingclass-best-effort.service
│   │   ├── exec-ioschedulingclass-idle.service
│   │   ├── exec-ioschedulingclass-none.service
│   │   ├── exec-ioschedulingclass-realtime.service
│   │   ├── exec-load-credential.service
│   │   ├── exec-mount-apivfs-no.service
│   │   ├── exec-networknamespacepath-privatemounts-no.service
│   │   ├── exec-networknamespacepath-privatemounts-yes.service
│   │   ├── exec-noexecpaths-simple.service
│   │   ├── exec-oomscoreadjust-negative.service
│   │   ├── exec-oomscoreadjust-positive.service
│   │   ├── exec-passenvironment-absent.service
│   │   ├── exec-passenvironment-empty.service
│   │   ├── exec-passenvironment-repeated.service
│   │   ├── exec-passenvironment.service
│   │   ├── exec-personality-aarch64.service
│   │   ├── exec-personality-loongarch64.service
│   │   ├── exec-personality-ppc64.service
│   │   ├── exec-personality-ppc64le.service
│   │   ├── exec-personality-s390.service
│   │   ├── exec-personality-x86-64.service
│   │   ├── exec-personality-x86.service
│   │   ├── exec-privatedevices-bind.service
│   │   ├── exec-privatedevices-disabled-by-prefix.service
│   │   ├── exec-privatedevices-no-capability-mknod.service
│   │   ├── exec-privatedevices-no-capability-sys-rawio.service
│   │   ├── exec-privatedevices-no.service
│   │   ├── exec-privatedevices-yes-capability-mknod.service
│   │   ├── exec-privatedevices-yes-capability-sys-rawio.service
│   │   ├── exec-privatedevices-yes-with-group.service
│   │   ├── exec-privatedevices-yes.service
│   │   ├── exec-privatenetwork-yes-privatemounts-no.service
│   │   ├── exec-privatenetwork-yes-privatemounts-yes.service
│   │   ├── exec-privatetmp-disabled-by-prefix.service
│   │   ├── exec-privatetmp-no.service
│   │   ├── exec-privatetmp-yes.service
│   │   ├── exec-protecthome-tmpfs-vs-protectsystem-strict.service
│   │   ├── exec-protectkernellogs-no-capabilities.service
│   │   ├── exec-protectkernellogs-yes-capabilities.service
│   │   ├── exec-protectkernelmodules-no-capabilities.service
│   │   ├── exec-protectkernelmodules-yes-capabilities.service
│   │   ├── exec-protectkernelmodules-yes-mount-propagation.service
│   │   ├── exec-readonlypaths-mount-propagation.service
│   │   ├── exec-readonlypaths-simple.service
│   │   ├── exec-readonlypaths-with-bindpaths.service
│   │   ├── exec-readonlypaths.service
│   │   ├── exec-readwritepaths-mount-propagation.service
│   │   ├── exec-restrictnamespaces-merge-all.service
│   │   ├── exec-restrictnamespaces-merge-and.service
│   │   ├── exec-restrictnamespaces-merge-or.service
│   │   ├── exec-restrictnamespaces-mnt-deny-list.service
│   │   ├── exec-restrictnamespaces-mnt.service
│   │   ├── exec-restrictnamespaces-no.service
│   │   ├── exec-restrictnamespaces-yes.service
│   │   ├── exec-runtimedirectory-mode.service
│   │   ├── exec-runtimedirectory-owner-nfsnobody.service
│   │   ├── exec-runtimedirectory-owner-nobody.service
│   │   ├── exec-runtimedirectory-owner-nogroup.service
│   │   ├── exec-runtimedirectory-owner.service
│   │   ├── exec-runtimedirectory.service
│   │   ├── exec-set-credential.service
│   │   ├── exec-specifier-interpolation.service
│   │   ├── exec-specifier-system.service
│   │   ├── exec-specifier-user.service
│   │   ├── exec-specifier.service
│   │   ├── exec-specifier@.service
│   │   ├── exec-standardinput-data.service
│   │   ├── exec-standardinput-file-cat.service
│   │   ├── exec-standardinput-file.service
│   │   ├── exec-standardoutput-append.service
│   │   ├── exec-standardoutput-file.service
│   │   ├── exec-standardoutput-truncate.service
│   │   ├── exec-supplementarygroups-multiple-groups-default-group-user.service
│   │   ├── exec-supplementarygroups-multiple-groups-withgid.service
│   │   ├── exec-supplementarygroups-multiple-groups-withuid.service
│   │   ├── exec-supplementarygroups-single-group-user.service
│   │   ├── exec-supplementarygroups-single-group.service
│   │   ├── exec-supplementarygroups.service
│   │   ├── exec-systemcallerrornumber-name.service
│   │   ├── exec-systemcallerrornumber-number.service
│   │   ├── exec-systemcallfilter-failing.service
│   │   ├── exec-systemcallfilter-failing2.service
│   │   ├── exec-systemcallfilter-failing3.service
│   │   ├── exec-systemcallfilter-nonewprivileges-bounding1.service
│   │   ├── exec-systemcallfilter-nonewprivileges-bounding2.service
│   │   ├── exec-systemcallfilter-nonewprivileges-protectclock.service
│   │   ├── exec-systemcallfilter-nonewprivileges.service
│   │   ├── exec-systemcallfilter-not-failing.service
│   │   ├── exec-systemcallfilter-not-failing2.service
│   │   ├── exec-systemcallfilter-not-failing3.service
│   │   ├── exec-systemcallfilter-override-error-action.service
│   │   ├── exec-systemcallfilter-override-error-action2.service
│   │   ├── exec-systemcallfilter-system-user-nfsnobody.service
│   │   ├── exec-systemcallfilter-system-user-nobody.service
│   │   ├── exec-systemcallfilter-system-user.service
│   │   ├── exec-systemcallfilter-with-errno-in-allow-list.service
│   │   ├── exec-systemcallfilter-with-errno-multi.service
│   │   ├── exec-systemcallfilter-with-errno-name.service
│   │   ├── exec-systemcallfilter-with-errno-number.service
│   │   ├── exec-temporaryfilesystem-options.service
│   │   ├── exec-temporaryfilesystem-ro.service
│   │   ├── exec-temporaryfilesystem-rw.service
│   │   ├── exec-temporaryfilesystem-usr.service
│   │   ├── exec-umask-0177.service
│   │   ├── exec-umask-default.service
│   │   ├── exec-umask-namespace.service
│   │   ├── exec-unsetenvironment.service
│   │   ├── exec-user-nfsnobody.service
│   │   ├── exec-user-nobody.service
│   │   ├── exec-user.service
│   │   ├── exec-workingdirectory-trailing-dot.service
│   │   └── exec-workingdirectory.service
│   ├── test-fstab-generator/
│   │   ├── .gitattributes
│   │   ├── test-01-dev-nfs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-01-dev-nfs.input
│   │   ├── test-02-dhcp.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-02-dhcp.input
│   │   ├── test-03-dhcp6.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-03-dhcp6.input
│   │   ├── test-04-nfs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-04-nfs.input
│   │   ├── test-05-nfs4.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-05-nfs4.input
│   │   ├── test-06-ipv4.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-06-ipv4.input
│   │   ├── test-07-ipv6.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-07-ipv6.input
│   │   ├── test-08-implicit-nfs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-08-implicit-nfs.input
│   │   ├── test-09-cifs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-09-cifs.input
│   │   ├── test-10-iscsi.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-10-iscsi.input
│   │   ├── test-11-live.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-11-live.input
│   │   ├── test-12-dev-sdx.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-12-dev-sdx.input
│   │   ├── test-13-label.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-13-label.input
│   │   ├── test-14-uuid.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-14-uuid.input
│   │   ├── test-15-partuuid.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-15-partuuid.input
│   │   ├── test-16-tmpfs.expected/
│   │   │   └── sysroot.mount
│   │   ├── test-16-tmpfs.input
│   │   ├── test-17-initrd-sysroot.fstab.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot-usr.mount
│   │   │   ├── sysroot.mount
│   │   │   ├── systemd-fsck-root.service
│   │   │   └── sysusr-usr.mount
│   │   ├── test-17-initrd-sysroot.fstab.expected.sysroot/
│   │   │   ├── local-fs.target.wants/
│   │   │   │   └── systemd-remount-fs.service
│   │   │   ├── sysroot-usr.mount
│   │   │   └── sysroot.mount
│   │   ├── test-17-initrd-sysroot.fstab.input
│   │   ├── test-18-options.fstab.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── local-fs.target.d/
│   │   │   │   └── 50-order-systemd-growfs@mnt-growfs.service.conf
│   │   │   ├── mnt-after.mount
│   │   │   ├── mnt-automount1.automount
│   │   │   ├── mnt-automount1.mount
│   │   │   ├── mnt-automount2.automount
│   │   │   ├── mnt-automount2.mount
│   │   │   ├── mnt-before.mount
│   │   │   ├── mnt-growfs.mount
│   │   │   ├── mnt-growfs.mount.wants/
│   │   │   │   └── systemd-growfs@mnt-growfs.service
│   │   │   ├── mnt-mkfs.mount
│   │   │   ├── mnt-noauto.mount
│   │   │   ├── mnt-nofail.mount
│   │   │   ├── mnt-pcrfs.mount
│   │   │   ├── mnt-reqmounts.mount
│   │   │   ├── mnt-requiredby.mount
│   │   │   ├── mnt-requires.mount
│   │   │   ├── mnt-rwonly.mount
│   │   │   ├── mnt-timeout.mount
│   │   │   ├── mnt-wantedby.mount
│   │   │   ├── sysroot.mount
│   │   │   ├── systemd-fsck-root.service
│   │   │   └── systemd-makefs@dev-sdx12.service
│   │   ├── test-18-options.fstab.expected.sysroot/
│   │   │   ├── local-fs.target.d/
│   │   │   │   └── 50-order-systemd-growfs@mnt-growfs.service.conf
│   │   │   ├── local-fs.target.wants/
│   │   │   │   └── systemd-remount-fs.service
│   │   │   ├── mnt-after.mount
│   │   │   ├── mnt-automount1.automount
│   │   │   ├── mnt-automount1.mount
│   │   │   ├── mnt-automount2.automount
│   │   │   ├── mnt-automount2.mount
│   │   │   ├── mnt-before.mount
│   │   │   ├── mnt-growfs.mount
│   │   │   ├── mnt-growfs.mount.wants/
│   │   │   │   └── systemd-growfs@mnt-growfs.service
│   │   │   ├── mnt-mkfs.mount
│   │   │   ├── mnt-noauto.mount
│   │   │   ├── mnt-nofail.mount
│   │   │   ├── mnt-pcrfs.mount
│   │   │   ├── mnt-reqmounts.mount
│   │   │   ├── mnt-requiredby.mount
│   │   │   ├── mnt-requires.mount
│   │   │   ├── mnt-rwonly.mount
│   │   │   ├── mnt-timeout.mount
│   │   │   ├── mnt-wantedby.mount
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-makefs@dev-sdx12.service
│   │   ├── test-18-options.fstab.input
│   │   ├── test-19-mounts-from-cmdline.expected/
│   │   │   ├── hoge-without_fstype.mount
│   │   │   ├── hoge-without_options.mount
│   │   │   ├── hoge-withx20space.mount
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot-foo-also_in_initrd.mount
│   │   │   ├── sysroot-usr.mount
│   │   │   ├── sysroot.mount
│   │   │   ├── systemd-fsck-root.service
│   │   │   ├── systemd-fsck-usr.service
│   │   │   └── sysusr-usr.mount
│   │   ├── test-19-mounts-from-cmdline.expected.sysroot/
│   │   │   ├── foo-also_in_initrd.mount
│   │   │   ├── foo-not_in_initrd.mount
│   │   │   └── usr.mount
│   │   ├── test-19-mounts-from-cmdline.input
│   │   ├── test-20-swap-from-cmdline.expected/
│   │   │   ├── dev-sdy1.swap
│   │   │   ├── dev-sdy2.swap
│   │   │   ├── dev-sdy3.swap
│   │   │   ├── dev-sdy4.swap
│   │   │   ├── dev-sdy5.swap
│   │   │   ├── initrd-usr-fs.target.requires/
│   │   │   │   └── sysroot.mount
│   │   │   ├── systemd-mkswap@dev-sdy2.service
│   │   │   └── systemd-mkswap@dev-sdy3.service
│   │   ├── test-20-swap-from-cmdline.expected.container/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-20-swap-from-cmdline.expected.sysroot/
│   │   │   ├── dev-sdy5.swap
│   │   │   └── dev-sdy6.swap
│   │   └── test-20-swap-from-cmdline.input
│   ├── test-fstab-generator.sh
│   ├── test-functions
│   ├── test-journals/
│   │   ├── afl-corrupted-journals.tar.zst
│   │   ├── corrupted/
│   │   │   ├── id:000000,sig:06,src:000711,time:110015157,execs:33104794,op:MOpt_havoc,rep:2.zst
│   │   │   └── id:000000,src:000031,time:210669947,execs:34191940,op:havoc,rep:32.zst
│   │   └── no-rtc/
│   │       ├── system.journal.zst
│   │       ├── system@0005ebbfd42fc981-39a8842ec948769a.journal~.zst
│   │       ├── system@0005ebbfd4346b9f-43185b46162d9fa5.journal~.zst
│   │       ├── system@0005ebbfd4385848-2e5dff5354ab9bcf.journal~.zst
│   │       ├── user-1000.journal.zst
│   │       ├── user-1000@0005ebbfd660bcbe-dbef2eee11f4b575.journal~.zst
│   │       └── user-1000@0005ebbfe89faec4-a5e890e7b00bedd1.journal~.zst
│   ├── test-network/
│   │   ├── .gitattributes
│   │   ├── conf/
│   │   │   ├── 00-debug-net.rules
│   │   │   ├── 10-dropin-test.netdev
│   │   │   ├── 10-dropin-test.netdev.d/
│   │   │   │   ├── mac.conf
│   │   │   │   └── name.conf
│   │   │   ├── 11-dummy-mtu.netdev
│   │   │   ├── 11-dummy.netdev
│   │   │   ├── 11-dummy.network
│   │   │   ├── 12-dummy-altname.link
│   │   │   ├── 12-dummy-mac.netdev
│   │   │   ├── 12-dummy-match-altname.network
│   │   │   ├── 12-dummy-match-mac-01.network
│   │   │   ├── 12-dummy-match-mac-02.network
│   │   │   ├── 12-dummy-match-renamed.network
│   │   │   ├── 12-dummy-mtu.link
│   │   │   ├── 12-dummy-mtu.netdev
│   │   │   ├── 12-dummy-no-address.network
│   │   │   ├── 12-dummy-rename-to-altname.link
│   │   │   ├── 12-dummy.link
│   │   │   ├── 12-dummy.netdev
│   │   │   ├── 12-dummy.network
│   │   │   ├── 12-dummy.network.d/
│   │   │   │   ├── ipv6-mtu-1400.conf
│   │   │   │   ├── ipv6-mtu-1550.conf
│   │   │   │   └── mtu.conf
│   │   │   ├── 13-dummy.netdev
│   │   │   ├── 13-not-match-udev-property.network
│   │   │   ├── 14-match-udev-property.network
│   │   │   ├── 15-name-conflict-test.netdev
│   │   │   ├── 21-bond-802.3ad.netdev
│   │   │   ├── 21-bond-802.3ad.network
│   │   │   ├── 21-dummy-bond-slave.network
│   │   │   ├── 21-macvlan.netdev
│   │   │   ├── 21-macvtap.netdev
│   │   │   ├── 21-vlan-on-bond.netdev
│   │   │   ├── 21-vlan-on-bond.network
│   │   │   ├── 21-vlan-test1.network
│   │   │   ├── 21-vlan-test1.network.d/
│   │   │   │   └── override.conf
│   │   │   ├── 21-vlan.netdev
│   │   │   ├── 21-vlan.netdev.d/
│   │   │   │   └── override.conf
│   │   │   ├── 21-vlan.network
│   │   │   ├── 23-active-slave.network
│   │   │   ├── 23-bond199.network
│   │   │   ├── 23-emit-lldp.network
│   │   │   ├── 23-keep-master.network
│   │   │   ├── 23-primary-slave.network
│   │   │   ├── 24-keep-configuration-static.network
│   │   │   ├── 24-lldp.network
│   │   │   ├── 24-search-domain.network
│   │   │   ├── 25-6rd-tunnel.netdev
│   │   │   ├── 25-6rd.network
│   │   │   ├── 25-activation-policy.network
│   │   │   ├── 25-activation-policy.network.d/
│   │   │   │   ├── always-down.conf
│   │   │   │   ├── always-up.conf
│   │   │   │   ├── bound.conf
│   │   │   │   ├── down.conf
│   │   │   │   ├── manual.conf
│   │   │   │   ├── required-no.conf
│   │   │   │   ├── required-yes.conf
│   │   │   │   └── up.conf
│   │   │   ├── 25-address-ipv4acd-veth99.network
│   │   │   ├── 25-address-ipv4acd-veth99.network.d/
│   │   │   │   └── conflict-address.conf
│   │   │   ├── 25-address-link-section.network
│   │   │   ├── 25-address-peer-ipv4.network
│   │   │   ├── 25-address-static.network
│   │   │   ├── 25-address-static.network.d/
│   │   │   │   ├── 10-many-address.conf
│   │   │   │   └── 10-override.conf
│   │   │   ├── 25-agent-client-peer.network
│   │   │   ├── 25-agent-client.network
│   │   │   ├── 25-agent-server-peer.network
│   │   │   ├── 25-agent-server.network
│   │   │   ├── 25-agent-veth-client.netdev
│   │   │   ├── 25-agent-veth-server.netdev
│   │   │   ├── 25-bareudp.netdev
│   │   │   ├── 25-batadv.netdev
│   │   │   ├── 25-bind-carrier.network
│   │   │   ├── 25-bond-active-backup-slave.netdev
│   │   │   ├── 25-bond-balanced-tlb.netdev
│   │   │   ├── 25-bond-slave.network
│   │   │   ├── 25-bond.netdev
│   │   │   ├── 25-bond99.network
│   │   │   ├── 25-bridge-configure-without-carrier.network
│   │   │   ├── 25-bridge.netdev
│   │   │   ├── 25-bridge.network
│   │   │   ├── 25-bridge99-ignore-carrier-loss.network
│   │   │   ├── 25-bridge99.network
│   │   │   ├── 25-dhcp-client-allow-list.network
│   │   │   ├── 25-dhcp-client-allow-list.network.d/
│   │   │   │   ├── 00-allow-list.conf
│   │   │   │   └── 10-deny-list.conf
│   │   │   ├── 25-dhcp-client-anonymize.network
│   │   │   ├── 25-dhcp-client-gateway-onlink-implicit.network
│   │   │   ├── 25-dhcp-client-ipv4-only.network
│   │   │   ├── 25-dhcp-client-ipv4-use-routes-use-gateway.network
│   │   │   ├── 25-dhcp-client-ipv4-use-routes-use-gateway.network.d/
│   │   │   │   ├── use-dns-and-ntp-routes-False.conf
│   │   │   │   ├── use-dns-and-ntp-routes-True.conf
│   │   │   │   ├── use-gateway-False.conf
│   │   │   │   ├── use-gateway-True.conf
│   │   │   │   ├── use-routes-False.conf
│   │   │   │   └── use-routes-True.conf
│   │   │   ├── 25-dhcp-client-ipv6-only-custom-client-identifier.network
│   │   │   ├── 25-dhcp-client-ipv6-only-mode.network
│   │   │   ├── 25-dhcp-client-ipv6-only.network
│   │   │   ├── 25-dhcp-client-keep-configuration-dhcp-on-stop.network
│   │   │   ├── 25-dhcp-client-keep-configuration-dhcp.network
│   │   │   ├── 25-dhcp-client-static-lease.network
│   │   │   ├── 25-dhcp-client-timezone-router.network
│   │   │   ├── 25-dhcp-client-use-dns-ipv4-and-ra.network
│   │   │   ├── 25-dhcp-client-use-dns-ipv4.network
│   │   │   ├── 25-dhcp-client-use-dns-no.network
│   │   │   ├── 25-dhcp-client-use-dns-yes.network
│   │   │   ├── 25-dhcp-client-vrf.network
│   │   │   ├── 25-dhcp-client-with-ipv4ll.network
│   │   │   ├── 25-dhcp-client.network
│   │   │   ├── 25-dhcp-pd-downstream-dummy97.network
│   │   │   ├── 25-dhcp-pd-downstream-dummy98.network
│   │   │   ├── 25-dhcp-pd-downstream-dummy99.network
│   │   │   ├── 25-dhcp-pd-downstream-test1.network
│   │   │   ├── 25-dhcp-pd-downstream-veth97-peer.network
│   │   │   ├── 25-dhcp-pd-downstream-veth97.network
│   │   │   ├── 25-dhcp-pd-downstream-veth98-peer.network
│   │   │   ├── 25-dhcp-pd-downstream-veth98.network
│   │   │   ├── 25-dhcp-server-downstream.network
│   │   │   ├── 25-dhcp-server-ipv6-only-mode.network
│   │   │   ├── 25-dhcp-server-null-server-address.network
│   │   │   ├── 25-dhcp-server-static-lease.network
│   │   │   ├── 25-dhcp-server-timezone-router.network
│   │   │   ├── 25-dhcp-server-uplink.network
│   │   │   ├── 25-dhcp-server-veth-peer.network
│   │   │   ├── 25-dhcp-server.network
│   │   │   ├── 25-dhcp4-6rd-server.network
│   │   │   ├── 25-dhcp4-6rd-upstream.network
│   │   │   ├── 25-dhcp6pd-server.network
│   │   │   ├── 25-dhcp6pd-upstream-no-address.network
│   │   │   ├── 25-dhcp6pd-upstream-no-assign.network
│   │   │   ├── 25-dhcp6pd-upstream.network
│   │   │   ├── 25-erspan.network
│   │   │   ├── 25-erspan0-tunnel-local-any.netdev
│   │   │   ├── 25-erspan0-tunnel.netdev
│   │   │   ├── 25-erspan1-tunnel-local-any.netdev
│   │   │   ├── 25-erspan1-tunnel.netdev
│   │   │   ├── 25-erspan2-tunnel-local-any.netdev
│   │   │   ├── 25-erspan2-tunnel.netdev
│   │   │   ├── 25-fibrule-invert.network
│   │   │   ├── 25-fibrule-port-range.network
│   │   │   ├── 25-fibrule-uidrange.network
│   │   │   ├── 25-fou-gre.netdev
│   │   │   ├── 25-fou-gretap.netdev
│   │   │   ├── 25-fou-ipip.netdev
│   │   │   ├── 25-fou-ipproto-gre.netdev
│   │   │   ├── 25-fou-ipproto-ipip.netdev
│   │   │   ├── 25-fou-sit.netdev
│   │   │   ├── 25-gateway-next-static.network
│   │   │   ├── 25-gateway-static.network
│   │   │   ├── 25-geneve.netdev
│   │   │   ├── 25-global-ipv6-privacy-extensions.conf
│   │   │   ├── 25-gre-tunnel-any-any.netdev
│   │   │   ├── 25-gre-tunnel-local-any.netdev
│   │   │   ├── 25-gre-tunnel-remote-any.netdev
│   │   │   ├── 25-gre-tunnel.netdev
│   │   │   ├── 25-gretap-tunnel-local-any.netdev
│   │   │   ├── 25-gretap-tunnel.netdev
│   │   │   ├── 25-gretap.network
│   │   │   ├── 25-gretun.network
│   │   │   ├── 25-ifb.netdev
│   │   │   ├── 25-ip6gre-tunnel-any-any.netdev
│   │   │   ├── 25-ip6gre-tunnel-local-any.netdev
│   │   │   ├── 25-ip6gre-tunnel-remote-any.netdev
│   │   │   ├── 25-ip6gre-tunnel.netdev
│   │   │   ├── 25-ip6gretap-tunnel-local-any.netdev
│   │   │   ├── 25-ip6gretap-tunnel.netdev
│   │   │   ├── 25-ip6gretap.network
│   │   │   ├── 25-ip6gretun.network
│   │   │   ├── 25-ip6tnl-slaac.network
│   │   │   ├── 25-ip6tnl-tunnel-external.netdev
│   │   │   ├── 25-ip6tnl-tunnel-local-any.netdev
│   │   │   ├── 25-ip6tnl-tunnel-local-slaac.netdev
│   │   │   ├── 25-ip6tnl-tunnel-local-slaac.network
│   │   │   ├── 25-ip6tnl-tunnel-remote-any.netdev
│   │   │   ├── 25-ip6tnl-tunnel.netdev
│   │   │   ├── 25-ip6tnl.network
│   │   │   ├── 25-ipip-tunnel-any-any.netdev
│   │   │   ├── 25-ipip-tunnel-independent-loopback.netdev
│   │   │   ├── 25-ipip-tunnel-independent.netdev
│   │   │   ├── 25-ipip-tunnel-local-any.netdev
│   │   │   ├── 25-ipip-tunnel-remote-any.netdev
│   │   │   ├── 25-ipip-tunnel.netdev
│   │   │   ├── 25-ipip.network
│   │   │   ├── 25-ipv6-address-label-section.network
│   │   │   ├── 25-ipv6-prefix-veth-token-prefixstable-without-address.network
│   │   │   ├── 25-ipv6-prefix-veth-token-prefixstable.network
│   │   │   ├── 25-ipv6-prefix-veth-token-static.network
│   │   │   ├── 25-ipv6-prefix-veth.network
│   │   │   ├── 25-ipv6-prefix.network
│   │   │   ├── 25-ipv6-proxy-ndp.network
│   │   │   ├── 25-ipv6ra-prefix-client-deny-list.network
│   │   │   ├── 25-ipv6ra-prefix-client.network
│   │   │   ├── 25-ipv6ra-prefix.network
│   │   │   ├── 25-ipv6ra-uplink.network
│   │   │   ├── 25-ipvlan.netdev
│   │   │   ├── 25-ipvlan.network
│   │   │   ├── 25-ipvtap.netdev
│   │   │   ├── 25-ipvtap.network
│   │   │   ├── 25-isatap-tunnel.netdev
│   │   │   ├── 25-isatap.network
│   │   │   ├── 25-l2tp-dummy.network
│   │   │   ├── 25-l2tp-ip.netdev
│   │   │   ├── 25-l2tp-udp.netdev
│   │   │   ├── 25-l2tp.network
│   │   │   ├── 25-link-local-addressing-no.network
│   │   │   ├── 25-link-local-addressing-yes.network
│   │   │   ├── 25-link-section-unmanaged.network
│   │   │   ├── 25-macsec.key
│   │   │   ├── 25-macsec.netdev
│   │   │   ├── 25-macsec.network
│   │   │   ├── 25-macvlan.network
│   │   │   ├── 25-macvtap.network
│   │   │   ├── 25-neighbor-ip-dummy.network
│   │   │   ├── 25-neighbor-ip.network
│   │   │   ├── 25-neighbor-ipv6.network
│   │   │   ├── 25-neighbor-next.network
│   │   │   ├── 25-neighbor-section.network
│   │   │   ├── 25-neighbor-section.network.d/
│   │   │   │   └── override.conf
│   │   │   ├── 25-netdevsim.link
│   │   │   ├── 25-nexthop-dummy.network
│   │   │   ├── 25-nexthop-nothing.network
│   │   │   ├── 25-nexthop.network
│   │   │   ├── 25-nlmon.netdev
│   │   │   ├── 25-prefix-route-with-vrf.network
│   │   │   ├── 25-prefix-route-without-vrf.network
│   │   │   ├── 25-qdisc-cake.network
│   │   │   ├── 25-qdisc-clsact.network
│   │   │   ├── 25-qdisc-codel.network
│   │   │   ├── 25-qdisc-drr.network
│   │   │   ├── 25-qdisc-ets.network
│   │   │   ├── 25-qdisc-fq.network
│   │   │   ├── 25-qdisc-fq_codel.network
│   │   │   ├── 25-qdisc-fq_pie.network
│   │   │   ├── 25-qdisc-gred.network
│   │   │   ├── 25-qdisc-hhf.network
│   │   │   ├── 25-qdisc-htb-fifo.network
│   │   │   ├── 25-qdisc-ingress.network
│   │   │   ├── 25-qdisc-netem-compat.network
│   │   │   ├── 25-qdisc-netem.network
│   │   │   ├── 25-qdisc-pie.network
│   │   │   ├── 25-qdisc-qfq.network
│   │   │   ├── 25-qdisc-sfb.network
│   │   │   ├── 25-qdisc-sfq.network
│   │   │   ├── 25-qdisc-tbf.network
│   │   │   ├── 25-qdisc-teql.network
│   │   │   ├── 25-route-congctl.network
│   │   │   ├── 25-route-ipv6-src.network
│   │   │   ├── 25-route-preferred-source.network
│   │   │   ├── 25-route-static-test1.network
│   │   │   ├── 25-route-static.network
│   │   │   ├── 25-route-via-ipv6.network
│   │   │   ├── 25-route-vrf.network
│   │   │   ├── 25-routing-policy-rule-dummy98.network
│   │   │   ├── 25-routing-policy-rule-manual.network
│   │   │   ├── 25-routing-policy-rule-reconfigure1.network
│   │   │   ├── 25-routing-policy-rule-reconfigure2.network
│   │   │   ├── 25-routing-policy-rule-test1.network
│   │   │   ├── 25-sit-tunnel-any-any.netdev
│   │   │   ├── 25-sit-tunnel-local-any.netdev
│   │   │   ├── 25-sit-tunnel-remote-any.netdev
│   │   │   ├── 25-sit-tunnel.netdev
│   │   │   ├── 25-sit.network
│   │   │   ├── 25-sriov-udev.network
│   │   │   ├── 25-sriov.link
│   │   │   ├── 25-sriov.network
│   │   │   ├── 25-state-file-tests.network
│   │   │   ├── 25-sysctl-disable-ipv6.network
│   │   │   ├── 25-sysctl.network
│   │   │   ├── 25-sysctl.network.d/
│   │   │   │   └── 25-ipv6-privacy-extensions.conf
│   │   │   ├── 25-tap.netdev
│   │   │   ├── 25-test1.network
│   │   │   ├── 25-test1.network.d/
│   │   │   │   ├── configure-without-carrier.conf
│   │   │   │   └── ignore-carrier-loss-no.conf
│   │   │   ├── 25-tun.netdev
│   │   │   ├── 25-tunnel-any-any.network
│   │   │   ├── 25-tunnel-local-any.network
│   │   │   ├── 25-tunnel-remote-any.network
│   │   │   ├── 25-tunnel.network
│   │   │   ├── 25-vcan.netdev
│   │   │   ├── 25-vcan98.netdev
│   │   │   ├── 25-vcan98.network
│   │   │   ├── 25-veth-bridge-captive.network
│   │   │   ├── 25-veth-bridge.network
│   │   │   ├── 25-veth-client-captive.network
│   │   │   ├── 25-veth-client.netdev
│   │   │   ├── 25-veth-client.network
│   │   │   ├── 25-veth-downstream-veth97.netdev
│   │   │   ├── 25-veth-downstream-veth98.netdev
│   │   │   ├── 25-veth-mtu.netdev
│   │   │   ├── 25-veth-peer.network
│   │   │   ├── 25-veth-router-captive.netdev
│   │   │   ├── 25-veth-router-captive.network
│   │   │   ├── 25-veth-router-high.netdev
│   │   │   ├── 25-veth-router-high.network
│   │   │   ├── 25-veth-router-low.netdev
│   │   │   ├── 25-veth-router-low.network
│   │   │   ├── 25-veth.netdev
│   │   │   ├── 25-vrf.netdev
│   │   │   ├── 25-vrf.network
│   │   │   ├── 25-vti-tunnel-any-any.netdev
│   │   │   ├── 25-vti-tunnel-local-any.netdev
│   │   │   ├── 25-vti-tunnel-remote-any.netdev
│   │   │   ├── 25-vti-tunnel.netdev
│   │   │   ├── 25-vti.network
│   │   │   ├── 25-vti6-tunnel-local-any.netdev
│   │   │   ├── 25-vti6-tunnel-remote-any.netdev
│   │   │   ├── 25-vti6-tunnel.netdev
│   │   │   ├── 25-vti6.network
│   │   │   ├── 25-vxcan.netdev
│   │   │   ├── 25-vxlan-independent.netdev
│   │   │   ├── 25-vxlan-ipv6.netdev
│   │   │   ├── 25-vxlan-ipv6.network
│   │   │   ├── 25-vxlan-local-slaac.netdev
│   │   │   ├── 25-vxlan-local-slaac.network
│   │   │   ├── 25-vxlan-test1.network
│   │   │   ├── 25-vxlan-veth99.network
│   │   │   ├── 25-vxlan.netdev
│   │   │   ├── 25-vxlan.network
│   │   │   ├── 25-wireguard-23-peers.netdev
│   │   │   ├── 25-wireguard-23-peers.network
│   │   │   ├── 25-wireguard-no-peer.netdev
│   │   │   ├── 25-wireguard-no-peer.network
│   │   │   ├── 25-wireguard-preshared-key.txt
│   │   │   ├── 25-wireguard-private-key.txt
│   │   │   ├── 25-wireguard.netdev
│   │   │   ├── 25-wireguard.netdev.d/
│   │   │   │   ├── peer.conf
│   │   │   │   ├── peer1.conf
│   │   │   │   ├── peer2.conf
│   │   │   │   └── private-key.conf
│   │   │   ├── 25-wireguard.network
│   │   │   ├── 25-xfrm-independent.netdev
│   │   │   ├── 25-xfrm.netdev
│   │   │   ├── 25-xfrm.network
│   │   │   ├── 26-bridge-configure-without-carrier.network
│   │   │   ├── 26-bridge-issue-20373.netdev
│   │   │   ├── 26-bridge-mdb-master.network
│   │   │   ├── 26-bridge-mdb-slave.network
│   │   │   ├── 26-bridge-slave-interface-1.network
│   │   │   ├── 26-bridge-slave-interface-2.network
│   │   │   ├── 26-bridge-vlan-master-issue-20373.network
│   │   │   ├── 26-bridge-vlan-master.network
│   │   │   ├── 26-bridge-vlan-slave-issue-20373.network
│   │   │   ├── 26-bridge-vlan-slave.network
│   │   │   ├── 26-bridge.netdev
│   │   │   ├── 26-link-local-addressing-ipv6.network
│   │   │   ├── 26-macsec.network
│   │   │   ├── 26-netdev-link-local-addressing-yes.network
│   │   │   ├── 80-6rd-tunnel.network
│   │   │   ├── isc-dhcpd-dhcp6pd-no-range.conf
│   │   │   ├── isc-dhcpd-dhcp6pd.conf
│   │   │   ├── networkd-manage-foreign-routes-no.conf
│   │   │   └── radvd/
│   │   │       └── captive-portal.conf
│   │   └── systemd-networkd-tests.py
│   ├── test-network-generator-conversion/
│   │   ├── .gitattributes
│   │   ├── test-01-dhcp.expected/
│   │   │   └── 71-default.network
│   │   ├── test-01-dhcp.input
│   │   ├── test-02-bridge.expected/
│   │   │   ├── 70-bridge99.netdev
│   │   │   ├── 70-bridge99.network
│   │   │   ├── 70-eth0.network
│   │   │   └── 70-eth1.network
│   │   ├── test-02-bridge.input
│   │   ├── test-03-issue-14319.expected/
│   │   │   └── 70-enp3s0.network
│   │   └── test-03-issue-14319.input
│   ├── test-network-generator-conversion.sh
│   ├── test-path/
│   │   ├── basic.target
│   │   ├── path-changed.path
│   │   ├── path-changed.service
│   │   ├── path-directorynotempty.path
│   │   ├── path-directorynotempty.service
│   │   ├── path-exists.path
│   │   ├── path-exists.service
│   │   ├── path-existsglob.path
│   │   ├── path-existsglob.service
│   │   ├── path-makedirectory.path
│   │   ├── path-makedirectory.service
│   │   ├── path-modified.path
│   │   ├── path-modified.service
│   │   ├── path-mycustomunit.service
│   │   ├── path-unit.path
│   │   ├── paths.target
│   │   └── sysinit.target
│   ├── test-path-util/
│   │   └── script.sh
│   ├── test-resolve/
│   │   ├── .gitattributes
│   │   ├── _443._tcp.fedoraproject.org.pkts
│   │   ├── _openpgpkey.fedoraproject.org.pkts
│   │   ├── com~20200417.pkts
│   │   ├── fake-caa.pkts
│   │   ├── fedoraproject.org.pkts
│   │   ├── gandi.net.pkts
│   │   ├── google.com~20160131.pkts
│   │   ├── google.com~20200417.pkts
│   │   ├── kyhwana.org.pkts
│   │   ├── michigan.gov~20200417.pkts
│   │   ├── org~20200417.pkts
│   │   ├── root.pkts
│   │   ├── selfsigned.cert
│   │   ├── selfsigned.key
│   │   ├── sw1a1aa-sw1a2aa-sw1a2ab-sw1a2ac.find.me.uk.pkts
│   │   ├── teamits.com.pkts
│   │   ├── vdwaa.nl~20200417.pkts
│   │   └── zbyszek@fedoraproject.org.pkts
│   ├── test-rpm-macros.sh
│   ├── test-shutdown.py
│   ├── test-systemctl-enable.sh
│   ├── test-systemd-tmpfiles.py
│   ├── test-sysusers/
│   │   ├── .gitattributes
│   │   ├── inline.expected-group
│   │   ├── inline.expected-passwd
│   │   ├── test-00-basic.expected-group
│   │   ├── test-00-basic.expected-passwd
│   │   ├── test-00-basic.input
│   │   ├── test-1.expected-group
│   │   ├── test-1.expected-passwd
│   │   ├── test-1.input
│   │   ├── test-10.expected-group
│   │   ├── test-10.expected-passwd
│   │   ├── test-10.input
│   │   ├── test-11.expected-group
│   │   ├── test-11.expected-passwd
│   │   ├── test-11.initial-group
│   │   ├── test-11.initial-passwd
│   │   ├── test-11.input
│   │   ├── test-12.expected-group
│   │   ├── test-12.expected-passwd
│   │   ├── test-12.initial-group
│   │   ├── test-12.initial-passwd
│   │   ├── test-12.input
│   │   ├── test-13.expected-group
│   │   ├── test-13.expected-passwd
│   │   ├── test-13.input
│   │   ├── test-14.expected-group
│   │   ├── test-14.expected-passwd
│   │   ├── test-14.initial-group
│   │   ├── test-14.input
│   │   ├── test-15.expected-group
│   │   ├── test-15.expected-passwd
│   │   ├── test-15.initial-passwd
│   │   ├── test-15.input
│   │   ├── test-16.expected-group
│   │   ├── test-16.expected-passwd
│   │   ├── test-16.input
│   │   ├── test-2.expected-group
│   │   ├── test-2.expected-passwd
│   │   ├── test-2.input
│   │   ├── test-3.expected-group
│   │   ├── test-3.expected-passwd
│   │   ├── test-3.input
│   │   ├── test-4.expected-group
│   │   ├── test-4.expected-passwd
│   │   ├── test-4.input
│   │   ├── test-5.expected-group
│   │   ├── test-5.expected-passwd
│   │   ├── test-5.input
│   │   ├── test-6.expected-group
│   │   ├── test-6.expected-passwd
│   │   ├── test-6.input
│   │   ├── test-7.expected-group
│   │   ├── test-7.expected-passwd
│   │   ├── test-7.input
│   │   ├── test-8.expected-group
│   │   ├── test-8.expected-passwd
│   │   ├── test-8.input
│   │   ├── test-9.expected-group
│   │   ├── test-9.expected-passwd
│   │   ├── test-9.input
│   │   ├── unhappy-1.expected-err
│   │   ├── unhappy-1.input
│   │   ├── unhappy-2.expected-err
│   │   ├── unhappy-2.input
│   │   ├── unhappy-3.expected-err
│   │   └── unhappy-3.input
│   ├── test-sysusers.sh.in
│   ├── test-udev.py
│   ├── test-umount/
│   │   ├── .gitattributes
│   │   ├── empty.mountinfo
│   │   ├── example.swaps
│   │   ├── garbled.mountinfo
│   │   └── rhbug-1554943.mountinfo
│   ├── testsuite-03.units/
│   │   ├── always-activating.service
│   │   ├── always-activating.socket
│   │   ├── fails-on-restart-restartdirect.service
│   │   ├── fails-on-restart-restartdirect.target
│   │   ├── fails-on-restart.service
│   │   ├── fails-on-restart.target
│   │   ├── hello-after-sleep.target
│   │   ├── hello.service
│   │   ├── propagatestopto-and-pullin.target
│   │   ├── propagatestopto-indirect.target
│   │   ├── propagatestopto-only.target
│   │   ├── sleep-infinity-simple.service
│   │   ├── sleep.service
│   │   ├── succeeds-on-restart-restartdirect.service
│   │   ├── succeeds-on-restart-restartdirect.target
│   │   ├── succeeds-on-restart.service
│   │   ├── succeeds-on-restart.sh
│   │   ├── succeeds-on-restart.target
│   │   └── unstoppable.service
│   ├── testsuite-04.units/
│   │   ├── delegated-cgroup-filtering.service
│   │   ├── forever-print-hola.service
│   │   ├── logs-filtering.service
│   │   └── silent-success.service
│   ├── testsuite-06.units/
│   │   └── hola.service
│   ├── testsuite-07.units/
│   │   ├── issue14566-repro.service
│   │   ├── issue14566-repro.sh
│   │   ├── issue16115-repro-1.service
│   │   ├── issue16115-repro-2.service
│   │   ├── issue16115-repro-3.service
│   │   ├── issue2467.service
│   │   ├── issue2467.socket
│   │   ├── issue27953.service
│   │   └── issue3166-fail-on-restart.service
│   ├── testsuite-16.units/
│   │   ├── extend-timeout.sh
│   │   ├── fail-runtime.service
│   │   ├── fail-start.service
│   │   ├── fail-stop.service
│   │   ├── success-all.service
│   │   ├── success-runtime.service
│   │   ├── success-start.service
│   │   └── success-stop.service
│   ├── testsuite-23.units/
│   │   ├── testsuite-23-binds-to.service
│   │   ├── testsuite-23-bound-by.service
│   │   ├── testsuite-23-fail.service
│   │   ├── testsuite-23-joins-namespace-of-1.service
│   │   ├── testsuite-23-joins-namespace-of-2.service
│   │   ├── testsuite-23-joins-namespace-of-3.service
│   │   ├── testsuite-23-joins-namespace-of-4.service
│   │   ├── testsuite-23-joins-namespace-of-5.service
│   │   ├── testsuite-23-joins-namespace-of-6.service
│   │   ├── testsuite-23-joins-namespace-of-7.service
│   │   ├── testsuite-23-joins-namespace-of-8.service
│   │   ├── testsuite-23-joins-namespace-of-9.service
│   │   ├── testsuite-23-namespaced.service
│   │   ├── testsuite-23-non-namespaced.service
│   │   ├── testsuite-23-prop-stop-one.service
│   │   ├── testsuite-23-prop-stop-two.service
│   │   ├── testsuite-23-retry-fail.service
│   │   ├── testsuite-23-retry-upheld.service
│   │   ├── testsuite-23-retry-uphold.service
│   │   ├── testsuite-23-short-lived.service
│   │   ├── testsuite-23-specifier-j-depends-wants.service
│   │   ├── testsuite-23-specifier-j-wants.service
│   │   ├── testsuite-23-success.service
│   │   ├── testsuite-23-upheldby-install.service
│   │   └── testsuite-23-uphold.service
│   ├── testsuite-30.units/
│   │   └── systemd-timedated.service.d/
│   │       └── watchdog.conf
│   ├── testsuite-52.units/
│   │   ├── test-honor-first-shutdown.service
│   │   └── test-honor-first-shutdown.sh
│   ├── testsuite-63.units/
│   │   ├── test63-glob.path
│   │   ├── test63-glob.service
│   │   ├── test63-issue-24577-dep.service
│   │   ├── test63-issue-24577.path
│   │   ├── test63-issue-24577.service
│   │   ├── test63-pr-30768.path
│   │   ├── test63-pr-30768.service
│   │   ├── test63.path
│   │   └── test63.service
│   ├── testsuite-80.units/
│   │   ├── fdstore-nopin.service
│   │   ├── fdstore-pin.service
│   │   ├── fdstore-pin.sh
│   │   ├── fdstore-pin.target
│   │   ├── notify.service
│   │   └── test.sh
│   ├── udev-dmi-memory-id-test.sh
│   └── units/
│       ├── a-conj.service
│       ├── a.service
│       ├── autorelabel.service
│       ├── b.service
│       ├── basic.target
│       ├── c.service
│       ├── d.service
│       ├── daughter.service
│       ├── delegated_cgroup_filtering_payload.sh
│       ├── delegated_cgroup_filtering_payload_child.sh
│       ├── dml-discard-empty.service
│       ├── dml-discard-set-ml.service
│       ├── dml-discard.slice
│       ├── dml-override-empty.service
│       ├── dml-override.slice
│       ├── dml-passthrough-empty.service
│       ├── dml-passthrough-set-dml.service
│       ├── dml-passthrough-set-ml.service
│       ├── dml-passthrough.slice
│       ├── dml.slice
│       ├── e.service
│       ├── end.service
│       ├── end.sh
│       ├── f.service
│       ├── g.service
│       ├── generator-utils.sh
│       ├── grandchild.service
│       ├── h.service
│       ├── i.service
│       ├── loopy.service
│       ├── loopy.service.d/
│       │   └── compat.conf
│       ├── loopy2.service
│       ├── loopy3.service
│       ├── loopy4.service
│       ├── nomem.slice
│       ├── nomemleaf.service
│       ├── parent-deep.slice
│       ├── parent.slice
│       ├── sched_idle_bad.service
│       ├── sched_idle_ok.service
│       ├── sched_rr_bad.service
│       ├── sched_rr_change.service
│       ├── sched_rr_ok.service
│       ├── shutdown.target
│       ├── sockets.target
│       ├── son.service
│       ├── success-failure-test-failure.service
│       ├── success-failure-test-success.service
│       ├── success-failure-test.service
│       ├── sysinit.target
│       ├── test-control.sh
│       ├── testsuite-01.service
│       ├── testsuite-01.sh
│       ├── testsuite-02.service
│       ├── testsuite-02.sh
│       ├── testsuite-03.service
│       ├── testsuite-03.sh
│       ├── testsuite-04.LogFilterPatterns.sh
│       ├── testsuite-04.SYSTEMD_JOURNAL_COMPRESS.sh
│       ├── testsuite-04.bsod.sh
│       ├── testsuite-04.corrupted-journals.sh
│       ├── testsuite-04.fss.sh
│       ├── testsuite-04.journal-append.sh
│       ├── testsuite-04.journal-corrupt.sh
│       ├── testsuite-04.journal-gatewayd.sh
│       ├── testsuite-04.journal-remote.sh
│       ├── testsuite-04.journal.sh
│       ├── testsuite-04.service
│       ├── testsuite-04.sh
│       ├── testsuite-05.service
│       ├── testsuite-05.sh
│       ├── testsuite-06.service
│       ├── testsuite-06.sh
│       ├── testsuite-07.exec-context.sh
│       ├── testsuite-07.issue-14566.sh
│       ├── testsuite-07.issue-16115.sh
│       ├── testsuite-07.issue-1981.sh
│       ├── testsuite-07.issue-2467.sh
│       ├── testsuite-07.issue-27953.sh
│       ├── testsuite-07.issue-30412.sh
│       ├── testsuite-07.issue-3166.sh
│       ├── testsuite-07.issue-3171.sh
│       ├── testsuite-07.issue-31752.sh
│       ├── testsuite-07.issue-33672.sh
│       ├── testsuite-07.main-PID-change.sh
│       ├── testsuite-07.mount-invalid-chars.sh
│       ├── testsuite-07.poll-limit.sh
│       ├── testsuite-07.private-network.sh
│       ├── testsuite-07.service
│       ├── testsuite-07.sh
│       ├── testsuite-08.service
│       ├── testsuite-08.sh
│       ├── testsuite-09.journal.sh
│       ├── testsuite-09.service
│       ├── testsuite-09.sh
│       ├── testsuite-13.machinectl.sh
│       ├── testsuite-13.nspawn-oci.sh
│       ├── testsuite-13.nspawn.sh
│       ├── testsuite-13.nss-mymachines.sh
│       ├── testsuite-13.service
│       ├── testsuite-13.sh
│       ├── testsuite-15.service
│       ├── testsuite-15.sh
│       ├── testsuite-16.service
│       ├── testsuite-16.sh
│       ├── testsuite-17.00.sh
│       ├── testsuite-17.01.sh
│       ├── testsuite-17.02.sh
│       ├── testsuite-17.03.sh
│       ├── testsuite-17.04.sh
│       ├── testsuite-17.05.sh
│       ├── testsuite-17.06.sh
│       ├── testsuite-17.07.sh
│       ├── testsuite-17.08.sh
│       ├── testsuite-17.09.sh
│       ├── testsuite-17.10.sh
│       ├── testsuite-17.11.sh
│       ├── testsuite-17.12.sh
│       ├── testsuite-17.13.sh
│       ├── testsuite-17.14.sh
│       ├── testsuite-17.service
│       ├── testsuite-17.sh
│       ├── testsuite-18.service
│       ├── testsuite-18.sh
│       ├── testsuite-19.ExitType-cgroup.sh
│       ├── testsuite-19.IPAddressAllow-Deny.sh
│       ├── testsuite-19.cleanup-slice.sh
│       ├── testsuite-19.delegate.sh
│       ├── testsuite-19.keyed-properties.sh
│       ├── testsuite-19.service
│       ├── testsuite-19.sh
│       ├── testsuite-21.service
│       ├── testsuite-21.sh
│       ├── testsuite-22.01.sh
│       ├── testsuite-22.02.sh
│       ├── testsuite-22.03.sh
│       ├── testsuite-22.04.sh
│       ├── testsuite-22.05.sh
│       ├── testsuite-22.06.sh
│       ├── testsuite-22.07.sh
│       ├── testsuite-22.08.sh
│       ├── testsuite-22.09.sh
│       ├── testsuite-22.10.sh
│       ├── testsuite-22.11.sh
│       ├── testsuite-22.12.sh
│       ├── testsuite-22.13.sh
│       ├── testsuite-22.14.sh
│       ├── testsuite-22.15.sh
│       ├── testsuite-22.16.sh
│       ├── testsuite-22.17.sh
│       ├── testsuite-22.service
│       ├── testsuite-22.sh
│       ├── testsuite-23-short-lived.sh
│       ├── testsuite-23.ExecReload.sh
│       ├── testsuite-23.ExecStopPost.sh
│       ├── testsuite-23.JoinsNamespaceOf.sh
│       ├── testsuite-23.RuntimeDirectoryPreserve.sh
│       ├── testsuite-23.StandardOutput.sh
│       ├── testsuite-23.Upholds.sh
│       ├── testsuite-23.clean-unit.sh
│       ├── testsuite-23.exec-command-ex.sh
│       ├── testsuite-23.oneshot-restart.sh
│       ├── testsuite-23.percentj-wantedby.sh
│       ├── testsuite-23.runtime-bind-paths.sh
│       ├── testsuite-23.service
│       ├── testsuite-23.sh
│       ├── testsuite-23.start-stop-no-reload.sh
│       ├── testsuite-23.statedir.sh
│       ├── testsuite-23.success-failure.sh
│       ├── testsuite-23.type-exec.sh
│       ├── testsuite-23.utmp.sh
│       ├── testsuite-23.whoami.sh
│       ├── testsuite-24.service
│       ├── testsuite-24.sh
│       ├── testsuite-25.service
│       ├── testsuite-25.sh
│       ├── testsuite-26.service
│       ├── testsuite-26.sh
│       ├── testsuite-29.service
│       ├── testsuite-29.sh
│       ├── testsuite-30.service
│       ├── testsuite-30.sh
│       ├── testsuite-31.service
│       ├── testsuite-31.sh
│       ├── testsuite-32.service
│       ├── testsuite-32.sh
│       ├── testsuite-34.service
│       ├── testsuite-34.sh
│       ├── testsuite-35.service
│       ├── testsuite-35.sh
│       ├── testsuite-36.service
│       ├── testsuite-36.sh
│       ├── testsuite-38-sleep.service
│       ├── testsuite-38.service
│       ├── testsuite-38.sh
│       ├── testsuite-43.service
│       ├── testsuite-43.sh
│       ├── testsuite-44.service
│       ├── testsuite-44.sh
│       ├── testsuite-45.service
│       ├── testsuite-45.sh
│       ├── testsuite-46.service
│       ├── testsuite-46.sh
│       ├── testsuite-50.service
│       ├── testsuite-50.sh
│       ├── testsuite-52.service
│       ├── testsuite-52.sh
│       ├── testsuite-53.service
│       ├── testsuite-53.sh
│       ├── testsuite-54.service
│       ├── testsuite-54.sh
│       ├── testsuite-55-testbloat.service
│       ├── testsuite-55-testchill.service
│       ├── testsuite-55-testmunch.service
│       ├── testsuite-55-workload.slice
│       ├── testsuite-55.service
│       ├── testsuite-55.sh
│       ├── testsuite-58.service
│       ├── testsuite-58.sh
│       ├── testsuite-59.service
│       ├── testsuite-59.sh
│       ├── testsuite-60.service
│       ├── testsuite-60.sh
│       ├── testsuite-62-1.service
│       ├── testsuite-62-2.service
│       ├── testsuite-62-3.service
│       ├── testsuite-62-4.service
│       ├── testsuite-62-5.service
│       ├── testsuite-62.service
│       ├── testsuite-62.sh
│       ├── testsuite-63.service
│       ├── testsuite-63.sh
│       ├── testsuite-64.service
│       ├── testsuite-64.sh
│       ├── testsuite-65.service
│       ├── testsuite-65.sh
│       ├── testsuite-66-deviceisolation.service
│       ├── testsuite-66.service
│       ├── testsuite-66.sh
│       ├── testsuite-67.service
│       ├── testsuite-67.sh
│       ├── testsuite-68.service
│       ├── testsuite-68.sh
│       ├── testsuite-69.service
│       ├── testsuite-70.creds.sh
│       ├── testsuite-70.cryptenroll.sh
│       ├── testsuite-70.cryptsetup.sh
│       ├── testsuite-70.measure.sh
│       ├── testsuite-70.pcrextend.sh
│       ├── testsuite-70.pcrlock.sh
│       ├── testsuite-70.service
│       ├── testsuite-70.sh
│       ├── testsuite-70.tpm2-setup.sh
│       ├── testsuite-71.service
│       ├── testsuite-71.sh
│       ├── testsuite-72.service
│       ├── testsuite-72.sh
│       ├── testsuite-73.service
│       ├── testsuite-73.sh
│       ├── testsuite-74.battery-check.sh
│       ├── testsuite-74.bootctl.sh
│       ├── testsuite-74.busctl.sh
│       ├── testsuite-74.cgls.sh
│       ├── testsuite-74.cgtop.sh
│       ├── testsuite-74.coredump.sh
│       ├── testsuite-74.delta.sh
│       ├── testsuite-74.escape.sh
│       ├── testsuite-74.firstboot.sh
│       ├── testsuite-74.id128.sh
│       ├── testsuite-74.machine-id-setup.sh
│       ├── testsuite-74.modules-load.sh
│       ├── testsuite-74.mount.sh
│       ├── testsuite-74.networkctl.sh
│       ├── testsuite-74.path.sh
│       ├── testsuite-74.pstore.sh
│       ├── testsuite-74.run.sh
│       ├── testsuite-74.service
│       ├── testsuite-74.sh
│       ├── testsuite-74.sysusers.sh
│       ├── testsuite-74.varlinkctl.sh
│       ├── testsuite-75.service
│       ├── testsuite-75.sh
│       ├── testsuite-76.service
│       ├── testsuite-76.sh
│       ├── testsuite-77-client.sh
│       ├── testsuite-77-run.sh
│       ├── testsuite-77-server.socket
│       ├── testsuite-77-server@.service
│       ├── testsuite-77.service
│       ├── testsuite-77.sh
│       ├── testsuite-78.service
│       ├── testsuite-78.sh
│       ├── testsuite-79.service
│       ├── testsuite-79.sh
│       ├── testsuite-80.service
│       ├── testsuite-80.sh
│       ├── testsuite-81.debug-generator.sh
│       ├── testsuite-81.environment-d-generator.sh
│       ├── testsuite-81.fstab-generator.sh
│       ├── testsuite-81.getty-generator.sh
│       ├── testsuite-81.run-generator.sh
│       ├── testsuite-81.service
│       ├── testsuite-81.sh
│       ├── testsuite-81.system-update-generator.sh
│       ├── testsuite-82.service
│       ├── testsuite-82.sh
│       ├── testsuite-83.service
│       ├── testsuite-83.sh
│       ├── testsuite-84.service
│       ├── testsuite-84.sh
│       ├── testsuite.target
│       ├── timers.target
│       ├── unit-.service.d/
│       │   └── 10-override.conf
│       ├── unit-with-.service.d/
│       │   └── 20-override.conf
│       ├── unit-with-multiple-.service.d/
│       │   ├── 20-override.conf
│       │   └── 30-override.conf
│       ├── unit-with-multiple-dashes.service
│       ├── unit-with-multiple-dashes.service.d/
│       │   └── 10-override.conf
│       └── util.sh
├── tmpfiles.d/
│   ├── README
│   ├── credstore.conf
│   ├── etc.conf.in
│   ├── home.conf
│   ├── journal-nocow.conf
│   ├── legacy.conf.in
│   ├── meson.build
│   ├── portables.conf
│   ├── provision.conf
│   ├── static-nodes-permissions.conf.in
│   ├── systemd-network.conf
│   ├── systemd-nologin.conf
│   ├── systemd-nspawn.conf
│   ├── systemd-pstore.conf
│   ├── systemd-resolve.conf
│   ├── systemd-tmp.conf
│   ├── systemd.conf.in
│   ├── tmp.conf
│   ├── var.conf.in
│   └── x11.conf
├── tools/
│   ├── add-git-hook.sh
│   ├── analyze-dump-sort.py
│   ├── catalog-report.py
│   ├── check-api-docs.sh
│   ├── check-efi-alignment.py
│   ├── check-help.sh
│   ├── check-includes.py
│   ├── check-version-history.py
│   ├── check-version.sh
│   ├── chromiumos/
│   │   └── gen_autosuspend_rules.py
│   ├── command_ignorelist
│   ├── coverity.sh
│   ├── dbus_exporter.py
│   ├── dbus_ignorelist
│   ├── debug-sd-boot.sh
│   ├── dump-auxv.py
│   ├── elf2efi.py
│   ├── find-build-dir.sh
│   ├── find-double-newline.sh
│   ├── find-tabs.sh
│   ├── function_ignorelist
│   ├── gdb-sd_dump_hashmaps.py
│   ├── generate-gperfs.py
│   ├── git-contrib.sh
│   ├── list-discoverable-partitions.py
│   ├── make-autosuspend-rules.py
│   ├── make-directive-index.py
│   ├── make-man-index.py
│   ├── meson-build.sh
│   ├── meson-render-jinja2.py
│   ├── meson-vcs-tag.sh
│   ├── oss-fuzz.sh
│   ├── sync-docs.py
│   ├── update-dbus-docs.py
│   ├── update-hwdb-autosuspend.sh
│   ├── update-hwdb.sh
│   ├── update-man-rules.py
│   ├── update-syscall-tables.sh
│   └── xml_helper.py
├── units/
│   ├── basic.target
│   ├── blockdev@.target
│   ├── bluetooth.target
│   ├── boot-complete.target
│   ├── console-getty.service.in
│   ├── container-getty@.service.in
│   ├── cryptsetup-pre.target
│   ├── cryptsetup.target
│   ├── debug-shell.service.in
│   ├── dev-hugepages.mount
│   ├── dev-mqueue.mount
│   ├── emergency.service.in
│   ├── emergency.target
│   ├── exit.target
│   ├── factory-reset.target
│   ├── final.target
│   ├── first-boot-complete.target
│   ├── getty-pre.target
│   ├── getty.target
│   ├── getty@.service.in
│   ├── graphical.target
│   ├── halt.target
│   ├── hibernate.target
│   ├── hybrid-sleep.target
│   ├── initrd-cleanup.service
│   ├── initrd-fs.target
│   ├── initrd-parse-etc.service.in
│   ├── initrd-root-device.target
│   ├── initrd-root-fs.target
│   ├── initrd-switch-root.service
│   ├── initrd-switch-root.target
│   ├── initrd-udevadm-cleanup-db.service
│   ├── initrd-usr-fs.target
│   ├── initrd.target
│   ├── integritysetup-pre.target
│   ├── integritysetup.target
│   ├── kexec.target
│   ├── kmod-static-nodes.service.in
│   ├── ldconfig.service
│   ├── local-fs-pre.target
│   ├── local-fs.target
│   ├── machine.slice
│   ├── machines.target
│   ├── meson.build
│   ├── modprobe@.service
│   ├── multi-user.target
│   ├── network-online.target
│   ├── network-pre.target
│   ├── network.target
│   ├── nss-lookup.target
│   ├── nss-user-lookup.target
│   ├── paths.target
│   ├── poweroff.target
│   ├── printer.target
│   ├── proc-sys-fs-binfmt_misc.automount
│   ├── proc-sys-fs-binfmt_misc.mount
│   ├── quotaon.service.in
│   ├── rc-local.service.in
│   ├── reboot.target
│   ├── remote-cryptsetup.target
│   ├── remote-fs-pre.target
│   ├── remote-fs.target
│   ├── remote-veritysetup.target
│   ├── rescue.service.in
│   ├── rescue.target
│   ├── rpcbind.target
│   ├── serial-getty@.service.in
│   ├── shutdown.target
│   ├── sigpwr.target
│   ├── sleep.target
│   ├── slices.target
│   ├── smartcard.target
│   ├── sockets.target
│   ├── soft-reboot.target
│   ├── sound.target
│   ├── storage-target-mode.target
│   ├── suspend-then-hibernate.target
│   ├── suspend.target
│   ├── swap.target
│   ├── sys-fs-fuse-connections.mount
│   ├── sys-kernel-config.mount
│   ├── sys-kernel-debug.mount
│   ├── sys-kernel-tracing.mount
│   ├── sysinit.target
│   ├── syslog.socket
│   ├── system-systemd\x2dcryptsetup.slice
│   ├── system-systemd\x2dveritysetup.slice
│   ├── system-update-cleanup.service
│   ├── system-update-pre.target
│   ├── system-update.target
│   ├── systemd-ask-password-console.path
│   ├── systemd-ask-password-console.service
│   ├── systemd-ask-password-wall.path
│   ├── systemd-ask-password-wall.service
│   ├── systemd-backlight@.service.in
│   ├── systemd-battery-check.service.in
│   ├── systemd-binfmt.service.in
│   ├── systemd-bless-boot.service.in
│   ├── systemd-boot-check-no-failures.service.in
│   ├── systemd-boot-random-seed.service
│   ├── systemd-boot-update.service
│   ├── systemd-bsod.service.in
│   ├── systemd-confext.service
│   ├── systemd-coredump.socket
│   ├── systemd-coredump@.service.in
│   ├── systemd-exit.service
│   ├── systemd-firstboot.service
│   ├── systemd-fsck-root.service.in
│   ├── systemd-fsck@.service.in
│   ├── systemd-growfs-root.service.in
│   ├── systemd-growfs@.service.in
│   ├── systemd-halt.service
│   ├── systemd-hibernate-resume.service.in
│   ├── systemd-hibernate.service.in
│   ├── systemd-homed-activate.service
│   ├── systemd-homed.service.in
│   ├── systemd-hostnamed.service.in
│   ├── systemd-hwdb-update.service.in
│   ├── systemd-hybrid-sleep.service.in
│   ├── systemd-importd.service.in
│   ├── systemd-initctl.service.in
│   ├── systemd-initctl.socket
│   ├── systemd-journal-catalog-update.service
│   ├── systemd-journal-flush.service
│   ├── systemd-journal-gatewayd.service.in
│   ├── systemd-journal-gatewayd.socket
│   ├── systemd-journal-remote.service.in
│   ├── systemd-journal-remote.socket
│   ├── systemd-journal-upload.service.in
│   ├── systemd-journald-audit.socket
│   ├── systemd-journald-dev-log.socket
│   ├── systemd-journald-varlink@.socket
│   ├── systemd-journald.service.in
│   ├── systemd-journald.socket
│   ├── systemd-journald@.service.in
│   ├── systemd-journald@.socket
│   ├── systemd-kexec.service
│   ├── systemd-localed.service.in
│   ├── systemd-logind.service.in
│   ├── systemd-machine-id-commit.service
│   ├── systemd-machined.service.in
│   ├── systemd-modules-load.service.in
│   ├── systemd-network-generator.service.in
│   ├── systemd-networkd-wait-online.service.in
│   ├── systemd-networkd-wait-online@.service.in
│   ├── systemd-networkd.service.in
│   ├── systemd-networkd.socket
│   ├── systemd-nspawn@.service.in
│   ├── systemd-oomd.service.in
│   ├── systemd-oomd.socket
│   ├── systemd-pcrextend.socket
│   ├── systemd-pcrextend@.service.in
│   ├── systemd-pcrfs-root.service.in
│   ├── systemd-pcrfs@.service.in
│   ├── systemd-pcrlock-file-system.service.in
│   ├── systemd-pcrlock-firmware-code.service.in
│   ├── systemd-pcrlock-firmware-config.service.in
│   ├── systemd-pcrlock-machine-id.service.in
│   ├── systemd-pcrlock-make-policy.service.in
│   ├── systemd-pcrlock-secureboot-authority.service.in
│   ├── systemd-pcrlock-secureboot-policy.service.in
│   ├── systemd-pcrmachine.service.in
│   ├── systemd-pcrphase-initrd.service.in
│   ├── systemd-pcrphase-sysinit.service.in
│   ├── systemd-pcrphase.service.in
│   ├── systemd-portabled.service.in
│   ├── systemd-poweroff.service
│   ├── systemd-pstore.service.in
│   ├── systemd-quotacheck.service.in
│   ├── systemd-random-seed.service.in
│   ├── systemd-reboot.service
│   ├── systemd-remount-fs.service.in
│   ├── systemd-repart.service.in
│   ├── systemd-resolved.service.in
│   ├── systemd-rfkill.service.in
│   ├── systemd-rfkill.socket
│   ├── systemd-soft-reboot.service
│   ├── systemd-storagetm.service.in
│   ├── systemd-suspend-then-hibernate.service.in
│   ├── systemd-suspend.service.in
│   ├── systemd-sysctl.service.in
│   ├── systemd-sysext.service
│   ├── systemd-sysext.socket
│   ├── systemd-sysext@.service
│   ├── systemd-sysupdate-reboot.service.in
│   ├── systemd-sysupdate-reboot.timer
│   ├── systemd-sysupdate.service.in
│   ├── systemd-sysupdate.timer
│   ├── systemd-sysusers.service
│   ├── systemd-time-wait-sync.service.in
│   ├── systemd-timedated.service.in
│   ├── systemd-timesyncd.service.in
│   ├── systemd-tmpfiles-clean.service
│   ├── systemd-tmpfiles-clean.timer
│   ├── systemd-tmpfiles-setup-dev-early.service
│   ├── systemd-tmpfiles-setup-dev.service
│   ├── systemd-tmpfiles-setup.service
│   ├── systemd-tpm2-setup-early.service.in
│   ├── systemd-tpm2-setup.service.in
│   ├── systemd-udev-settle.service
│   ├── systemd-udev-trigger.service
│   ├── systemd-udevd-control.socket
│   ├── systemd-udevd-kernel.socket
│   ├── systemd-udevd.service.in
│   ├── systemd-update-done.service.in
│   ├── systemd-update-utmp-runlevel.service.in
│   ├── systemd-update-utmp.service.in
│   ├── systemd-user-sessions.service.in
│   ├── systemd-userdbd.service.in
│   ├── systemd-userdbd.socket
│   ├── systemd-vconsole-setup.service.in
│   ├── systemd-volatile-root.service.in
│   ├── time-set.target
│   ├── time-sync.target
│   ├── timers.target
│   ├── tmp.mount
│   ├── umount.target
│   ├── usb-gadget.target
│   ├── user/
│   │   ├── app.slice
│   │   ├── background.slice
│   │   ├── basic.target
│   │   ├── bluetooth.target
│   │   ├── default.target
│   │   ├── exit.target
│   │   ├── graphical-session-pre.target
│   │   ├── graphical-session.target
│   │   ├── meson.build
│   │   ├── paths.target
│   │   ├── printer.target
│   │   ├── session.slice
│   │   ├── shutdown.target
│   │   ├── smartcard.target
│   │   ├── sockets.target
│   │   ├── sound.target
│   │   ├── systemd-exit.service
│   │   ├── systemd-tmpfiles-clean.service
│   │   ├── systemd-tmpfiles-clean.timer
│   │   ├── systemd-tmpfiles-setup.service
│   │   ├── timers.target
│   │   └── xdg-desktop-autostart.target
│   ├── user-.slice.d/
│   │   └── 10-defaults.conf
│   ├── user-runtime-dir@.service.in
│   ├── user.slice
│   ├── user@.service.d/
│   │   └── 10-login-barrier.conf
│   ├── user@.service.in
│   ├── user@0.service.d/
│   │   └── 10-login-barrier.conf
│   ├── var-lib-machines.mount
│   ├── veritysetup-pre.target
│   └── veritysetup.target
└── xorg/
    └── 50-systemd-user.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
# This configuration file can be used to auto-format the code base.
# Not all guidelines specified in CODING_STYLE are followed, so the
# result MUST NOT be committed indiscriminately, but each automated
# change should be reviewed and only the appropriate ones committed.
#
# The easiest way to apply the formatting to your changes ONLY,
# is to use the git-clang-format script (usually installed with clang-format).
#
# -  Fix up formatting before committing
# 1. Edit and stage your files.
# 2. Run `git clang-format`.
# 3. Verify + correct + (un)stage changes.
# 4. Commit.
#
# -  Fix up formatting after committing
# 1. Commit your changes.
# 2. Run `git clang-format HEAD~` - Refer the commit *before* your changes here.
# 3. Verify + correct changes, `git difftool -d` can help here.
# 4. Stage + commit, potentially with `--amend` (means to fixup the last commit).
#
# To run clang-format on all sourcefiles, use the following line:
# $ git ls-files 'src/*.[ch]' 'src/*.cc' | xargs clang-format -i -style=file
#
# You can find more information on the different config parameters in this file here:
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
---
AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignEscapedNewlines: Left
AlignOperands: false
AllowShortFunctionsOnASingleLine: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
  AfterEnum: false
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: false
BreakInheritanceList: BeforeComma
BreakStringLiterals: false
ColumnLimit: 109
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 8
ContinuationIndentWidth: 16
Cpp11BracedListStyle: false
ForEachMacros:
  - BITMAP_FOREACH
  - CMSG_FOREACH
  - _DNS_ANSWER_FOREACH
  - DNS_ANSWER_FOREACH
  - _DNS_ANSWER_FOREACH_FLAGS
  - DNS_ANSWER_FOREACH_FLAGS
  - _DNS_ANSWER_FOREACH_FULL
  - DNS_ANSWER_FOREACH_FULL
  - _DNS_ANSWER_FOREACH_IFINDEX
  - DNS_ANSWER_FOREACH_IFINDEX
  - _DNS_QUESTION_FOREACH
  - DNS_QUESTION_FOREACH
  - FDSET_FOREACH
  - FOREACH_BTRFS_IOCTL_SEARCH_HEADER
  - FOREACH_DEVICE
  - FOREACH_DEVICE_AND_SUBSYSTEM
  - FOREACH_DEVICE_DEVLINK
  - FOREACH_DEVICE_PROPERTY
  - FOREACH_DEVICE_SYSATTR
  - FOREACH_DEVICE_TAG
  - FOREACH_DIRENT
  - FOREACH_DIRENT_ALL
  - FOREACH_INOTIFY_EVENT
  - FOREACH_STRING
  - FOREACH_SUBSYSTEM
  - HASHMAP_FOREACH
  - HASHMAP_FOREACH_IDX
  - HASHMAP_FOREACH_KEY
  - JOURNAL_FOREACH_DATA_RETVAL
  - JSON_VARIANT_ARRAY_FOREACH
  - JSON_VARIANT_OBJECT_FOREACH
  - LIST_FOREACH
  - LIST_FOREACH_AFTER
  - LIST_FOREACH_BEFORE
  - LIST_FOREACH_OTHERS
  - LIST_FOREACH_SAFE
  - MESSAGE_FOREACH_PART
  - NULSTR_FOREACH
  - NULSTR_FOREACH_PAIR
  - OBJECT_PATH_FOREACH_PREFIX
  - ORDERED_HASHMAP_FOREACH
  - ORDERED_HASHMAP_FOREACH_KEY
  - ORDERED_SET_FOREACH
  - PATH_FOREACH_PREFIX
  - PATH_FOREACH_PREFIX_MORE
  - SD_HWDB_FOREACH_PROPERTY
  - SD_JOURNAL_FOREACH
  - SD_JOURNAL_FOREACH_BACKWARDS
  - SD_JOURNAL_FOREACH_DATA
  - SD_JOURNAL_FOREACH_FIELD
  - SD_JOURNAL_FOREACH_UNIQUE
  - SECCOMP_FOREACH_LOCAL_ARCH
  - SET_FOREACH
  - SET_FOREACH_MOVE
  - STRV_FOREACH
  - STRV_FOREACH_BACKWARDS
  - STRV_FOREACH_PAIR
IndentPPDirectives: AfterHash
IndentWidth: 8
IndentWrappedFunctionNames: true
MaxEmptyLinesToKeep: 2
PenaltyBreakAssignment: 65
PenaltyBreakBeforeFirstCallParameter: 16
PenaltyBreakComment: 320
PenaltyBreakFirstLessLess: 50
PenaltyBreakString: 0
PenaltyExcessCharacter: 10
PenaltyReturnTypeOnItsOwnLine: 100
PointerAlignment: Right
SpaceAfterCStyleCast: true
SpaceAroundPointerQualifiers: Both
SpaceBeforeParens: ControlStatementsExceptForEachMacros
SpacesInAngles: true
TabWidth: 8
UseCRLF: false


================================================
FILE: .clusterfuzzlite/Dockerfile
================================================
FROM gcr.io/oss-fuzz-base/base-builder:v1
ENV MERGE_WITH_OSS_FUZZ_CORPORA=yes
COPY . $SRC/systemd
WORKDIR $SRC/systemd
COPY tools/oss-fuzz.sh $SRC/build.sh


================================================
FILE: .ctags
================================================
--links=no


================================================
FILE: .dir-locals.el
================================================
; Sets emacs variables based on mode.
; A list of (major-mode . ((var1 . value1) (var2 . value2)))
; Mode can be nil, which gives default values.

; Note that we set a line width of 109 for .c and XML files, but for everything
; else (such as journal catalog files, unit files, README files) we stick to a
; more conservative 79 characters.

; NOTE: If you update this file make sure to update .vimrc and .editorconfig,
; too.

((c-mode . ((fill-column . 109)
            (c-basic-offset . 8)
            (eval . (c-set-offset 'substatement-open 0))
            (eval . (c-set-offset 'statement-case-open 0))
            (eval . (c-set-offset 'case-label 0))
            (eval . (c-set-offset 'arglist-intro '++))
            (eval . (c-set-offset 'arglist-close 0))
            (eval . (c-set-offset 'arglist-cont-nonempty '(c-lineup-gcc-asm-reg c-lineup-arglist)))))
 (nxml-mode . ((nxml-child-indent . 2)
               (fill-column . 109)))
 (meson-mode . ((meson-indent-basic . 8)))
 (sh-mode . ((sh-basic-offset . 4)
             (sh-indentation . 4)))
 (awk-mode . ((c-basic-offset . 8)))
 (nil . ((indent-tabs-mode . nil)
         (tab-width . 8)
         (fill-column . 79))) )


================================================
FILE: .editorconfig
================================================
# EditorConfig configuration for systemd
# http://EditorConfig.org

# NOTE: If you update this file make sure to update .dir-locals.el and .vimrc,
# too.

# Top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file, utf-8 charset
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8

[NEWS]
indent_style = space
indent_size = 4

# Match config files, set indent to spaces with width of eight
[*.{c,h}]
indent_style = space
indent_size = 8
max_line_length = 109

[*.sh,mkosi.build,mkosi.prepare,mkosi.postinst]
indent_style = space
indent_size = 4

[meson.build]
indent_style = space
indent_size = 8

[man/*.xml]
indent_size = 2
indent_style = space
max_line_length = 109

[docs/**/*.css]
indent_style = space
indent_size = 2

[docs/**/*.html]
indent_style = space
indent_size = 2


================================================
FILE: .gitattributes
================================================
*.[ch] whitespace=tab-in-indent,trailing-space
*.gpg  binary generated
*.bmp  binary
*.base64 generated

# Mark files as "generated", i.e. no license applies to them.
# This includes output from programs, directive lists generated by grepping
# for all possibilities, samples from fuzzers, files from /proc, packet samples,
# and anything else where no copyright can be asserted.
#
# Use 'git check-attr generated -- <path>' to query the attribute.
[attr]generated


================================================
FILE: .github/FUNDING.yml
================================================
custom: ['https://spi-inc.org/projects/systemd/']


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug Report
description: A report of an error in a recent systemd version
labels: ["bug 🐛"]

body:
  - type: markdown
    attributes:
      value: Thanks for taking the time to fill out this bug report!

  - type: input
    id: version
    attributes:
      label: systemd version the issue has been seen with
      description: |
        Do not submit bug reports about anything but the two most recently released *major* systemd versions upstream!
        If there have been multiple stable releases for that major version, please consider updating to a recent one before reporting an issue.
        When using a distro package, please make sure that the version reported is meaningful for upstream.
        If a distro build is used, please just paste the package version, e.g. `systemd-253-6.fc38.x86_64`.
        See https://github.com/systemd/systemd-stable/tags for the list of most recent releases.
        For older version please use distribution trackers (see https://systemd.io/CONTRIBUTING#filing-issues).
      placeholder: '253'
    validations:
      required: true

  - type: input
    id: distro
    attributes:
      label: Used distribution
      description: Used distribution and its version
      placeholder: Fedora 38
    validations:
      required: false

  - type: input
    id: kernel
    attributes:
      label: Linux kernel version used
      description: |
        Please use `uname -r` to get linux kernel version.
      placeholder: kernel-6.2.5-300.fc38.x86_64
    validations:
      required: false

  - type: dropdown
    id: architecture
    attributes:
      label: CPU architectures issue was seen on
      options:
        - aarch64
        - alpha
        - arm
        - i686
        - ia64
        - loongarch
        - mips
        - parisc
        - ppc (big endian)
        - ppc64 (big endian)
        - ppc64le
        - riscv64
        - s390x
        - sparc
        - sparc64
        - x86_64
        - other
    validations:
      required: false

  - type: dropdown
    id: component
    attributes:
      label: Component
      description: Please chose components related to this issue.
      multiple: true
      # When updating list of components please also update labeling policy
      # policy: `.github/advanced-issue-labeler.yml`
      options:
        - 'bootctl'
        - 'coredumpctl'
        - 'homectl'
        - 'hostnamectl'
        - 'hardware database files'
        - 'journalctl'
        - 'kernel-install'
        - 'loginctl'
        - 'machinectl'
        - 'networkctl'
        - 'nss-resolve'
        - 'oomctl'
        - 'pam_systemd'
        - 'pam_systemd_home'
        - 'portablectl'
        - 'resolvectl'
        - 'rpm scriptlets'
        - 'systemctl'
        - 'systemd'
        - 'systemd-analyze'
        - 'systemd-ask-password'
        - 'systemd-binfmt'
        - 'systemd-boot'
        - 'systemd-cgtop'
        - 'systemd-coredump'
        - 'systemd-cryptsetup'
        - 'systemd-delta'
        - 'systemd-dissect'
        - 'systemd-env-generator'
        - 'systemd-fsck'
        - 'systemd-gpt-auto-generator'
        - 'systemd-growfs'
        - 'systemd-homed'
        - 'systemd-hostnamed'
        - 'systemd-hwdb'
        - 'systemd-import'
        - 'systemd-journal-gatewayd'
        - 'systemd-journal-remote'
        - 'systemd-journal-upload'
        - 'systemd-journald'
        - 'systemd-logind'
        - 'systemd-machined'
        - 'systemd-modules-load'
        - 'systemd-network-generator'
        - 'systemd-networkd'
        - 'systemd-networkd-wait-online'
        - 'systemd-nspawn'
        - 'systemd-oomd'
        - 'systemd-portabled'
        - 'systemd-pstore'
        - 'systemd-repart'
        - 'systemd-resolved'
        - 'systemd-rfkill'
        - 'systemd-run'
        - 'systemd-stub'
        - 'systemd-sysctl'
        - 'systemd-sysext'
        - 'systemd-sysusers'
        - 'systemd-sysv-generator'
        - 'systemd-timedate'
        - 'systemd-timesync'
        - 'systemd-tmpfiles'
        - 'systemd-udevd'
        - 'systemd-userdb'
        - 'systemd-veritysetup'
        - 'systemd-xdg-autostart-generator'
        - 'timedatectl'
        - 'udevadm'
        - 'udev rule files'
        - 'userdbctl'
        - 'tests'
        - 'other'
    validations:
      required: false

  - type: textarea
    id: expected-behaviour
    attributes:
      label: Expected behaviour you didn't see
    validations:
      required: false

  - type: textarea
    id: unexpected-behaviour
    attributes:
      label: Unexpected behaviour you saw
    validations:
      required: false

  - type: textarea
    id: steps-to-reproduce
    attributes:
      label: Steps to reproduce the problem
    validations:
      required: false

  - type: textarea
    id: additional-information
    attributes:
      label: Additional program output to the terminal or log subsystem illustrating the issue
      description: |
        Please paste relevant program terminal or journal output here, ideally when generated in debug mode (try setting the `SYSTEMD_LOG_LEVEL=debug` environment variable).
        For very long copy/pasted data consider using a service like https://gist.github.com/. Where copy/paste is not possible (for example early boot or late shutdown), a photo of the screen might do too, but text is always much preferred.
      placeholder: This will be automatically formatted into code, so no need for backticks.
      render: sh
    validations:
      required: false


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later

blank_issues_enabled: true
contact_links:
  - name: systemd-devel mailing list
    url: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    about: Please ask (and answer) questions here, use the issue tracker only for issues.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature request
description: Suggest an improvement
labels: ["RFE 🎁"]

body:
  - type: markdown
    attributes:
      value: Thanks for taking the time to fill out this feature request!

  - type: dropdown
    id: component
    attributes:
      label: Component
      description: Please chose components related to this feature request.
      multiple: true
      # When updating list of components please also update labeling policy
      # policy: `.github/advanced-issue-labeler.yml`
      options:
        - 'bootctl'
        - 'coredumpctl'
        - 'homectl'
        - 'hostnamectl'
        - 'hardware database files'
        - 'journalctl'
        - 'kernel-install'
        - 'loginctl'
        - 'machinectl'
        - 'networkctl'
        - 'nss-resolve'
        - 'oomctl'
        - 'pam_systemd'
        - 'pam_systemd_home'
        - 'portablectl'
        - 'resolvectl'
        - 'rpm scriptlets'
        - 'systemctl'
        - 'systemd'
        - 'systemd-analyze'
        - 'systemd-ask-password'
        - 'systemd-binfmt'
        - 'systemd-boot'
        - 'systemd-cgtop'
        - 'systemd-coredump'
        - 'systemd-cryptsetup'
        - 'systemd-delta'
        - 'systemd-dissect'
        - 'systemd-env-generator'
        - 'systemd-fsck'
        - 'systemd-gpt-auto-generator'
        - 'systemd-growfs'
        - 'systemd-homed'
        - 'systemd-hostnamed'
        - 'systemd-hwdb'
        - 'systemd-import'
        - 'systemd-journal-gatewayd'
        - 'systemd-journal-remote'
        - 'systemd-journal-upload'
        - 'systemd-journald'
        - 'systemd-logind'
        - 'systemd-machined'
        - 'systemd-modules-load'
        - 'systemd-network-generator'
        - 'systemd-networkd'
        - 'systemd-networkd-wait-online'
        - 'systemd-nspawn'
        - 'systemd-oomd'
        - 'systemd-portabled'
        - 'systemd-pstore'
        - 'systemd-repart'
        - 'systemd-resolved'
        - 'systemd-rfkill'
        - 'systemd-run'
        - 'systemd-stub'
        - 'systemd-sysctl'
        - 'systemd-sysext'
        - 'systemd-sysusers'
        - 'systemd-sysv-generator'
        - 'systemd-timedate'
        - 'systemd-timesync'
        - 'systemd-tmpfiles'
        - 'systemd-udevd'
        - 'systemd-userdb'
        - 'systemd-veritysetup'
        - 'systemd-xdg-autostart-generator'
        - 'timedatectl'
        - 'udevadm'
        - 'udev rule files'
        - 'userdbctl'
        - 'tests'
        - 'other'
    validations:
      required: false

  - type: textarea
    id: description
    attributes:
      label: Is your feature request related to a problem? Please describe
      description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
    validations:
      required: false

  - type: textarea
    id: solution
    attributes:
      label: Describe the solution you'd like
      description: A clear and concise description of what you want to happen.
    validations:
      required: false

  - type: textarea
    id: alternatives
    attributes:
      label: Describe alternatives you've considered
      description: A clear and concise description of any alternative solutions or features you've considered.
    validations:
      required: false

  - type: input
    id: version
    attributes:
      label: The systemd version you checked that didn't have the feature you are asking for
      description: If this is not the most recently released upstream version, then please check first if it has that feature already.
      placeholder: '253'
    validations:
      required: false


================================================
FILE: .github/advanced-issue-labeler.yml
================================================
---
# syntax - https://github.com/redhat-plumbers-in-action/advanced-issue-labeler#policy

policy:
  - template: [bug_report.yml, feature_request.yml]
    section:
      - id: [component]
        block-list: [other]
        label:
          - name: analyze
            keys: ['systemd-analyze']

          - name: ask-password
            keys: ['systemd-ask-password']

          - name: binfmt
            keys: ['systemd-binfmt']

          - name: cgtop
            keys: ['systemd-cgtop']

          - name: coredump
            keys: ['coredumpctl', 'systemd-coredump']

          - name: cryptsetup
            keys: ['systemd-cryptsetup']

          - name: delta
            keys: ['systemd-delta']

          - name: dissect
            keys: ['systemd-dissect']

          - name: env
            keys: ['systemd-env-generator']

          - name: fsck
            keys: ['systemd-fsck']

          - name: gpt-auto
            keys: ['systemd-gpt-auto-generator']

          - name: growfs
            keys: ['systemd-growfs']

          - name: homed
            keys: ['systemd-homed', 'homectl', 'pam_systemd_home']

          - name: hostname
            keys: ['systemd-hostnamed', 'hostnamectl']

          - name: hwdb
            keys: ['systemd-hwdb', 'hardware database files']

          - name: import
            keys: ['systemd-import']

          - name: journal
            keys: ['systemd-journald', 'journalctl']

          - name: journal-remote
            keys: ['systemd-journal-remote', 'systemd-journal-upload', 'systemd-journal-gatewayd']

          - name: kernel-install
            keys: ['kernel-install']

          - name: logind
            keys: ['systemd-logind', 'loginctl', 'pam_systemd']

          - name: machined
            keys: ['systemd-machined', 'machinectl']

          - name: modules-load
            keys: ['systemd-modules-load']

          - name: network
            keys: ['systemd-networkd', 'networkctl', 'systemd-networkd-wait-online', 'systemd-network-generator']

          - name: nspawn
            keys: ['systemd-nspawn']

          - name: oomd
            keys: ['systemd-oomd', 'oomctl']

          - name: pid1
            keys: ['systemd']

          - name: portabled
            keys: ['systemd-portabled', 'portablectl']

          - name: pstore
            keys: ['systemd-pstore']

          - name: repart
            keys: ['systemd-repart']

          - name: resolve
            keys: ['systemd-resolved', 'resolvectl', 'nss-resolve']

          - name: rfkill
            keys: ['systemd-rfkill']

          - name: rpm
            keys: ['rpm scriptlets']

          - name: run
            keys: ['systemd-run']

          - name: sd-boot/sd-stub/bootctl
            keys: ['bootctl', 'systemd-boot', 'systemd-stub']

          - name: sysctl
            keys: ['systemd-sysctl']

          - name: sysext
            keys: ['systemd-sysext']

          - name: systemctl
            keys: ['systemctl']

          - name: sysusers
            keys: ['systemd-sysusers']

          - name: sysv
            keys: ['systemd-sysv-generator']

          - name: tests
            keys: ['tests']

          - name: timedate
            keys: ['systemd-timedate', 'timedatectl']

          - name: timesync
            keys: ['systemd-timesync']

          - name: tmpfiles
            keys: ['systemd-tmpfiles']

          - name: udev
            keys: ['systemd-udevd', 'udevadm', 'udev rule files']

          - name: userdb
            keys: ['systemd-userdb', 'userdbctl']

          - name: veritysetup
            keys: ['systemd-veritysetup']

          - name: xdg-autostart
            keys: ['systemd-xdg-autostart-generator']


================================================
FILE: .github/codeql-config.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
name: "CodeQL config"

disable-default-queries: false

queries:
  - name: Enable possibly useful queries which are disabled by default
    uses: ./.github/codeql-custom.qls
  - name: systemd-specific CodeQL queries
    uses: ./.github/codeql-queries/


================================================
FILE: .github/codeql-custom.qls
================================================
---
# vi: ts=2 sw=2 et syntax=yaml:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Note: it is not recommended to directly reference the respective queries from
#       the github/codeql repository, so we have to "dance" around it using
#       a custom QL suite
# See:
#   - https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#running-additional-queries
#   - https://github.com/github/codeql-action/issues/430#issuecomment-806092120
#   - https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/

# Note: the codeql/<lang>-queries pack name can be found in the CodeQL repo[0]
#       in <lang>/ql/src/qlpack.yml. The respective codeql-suites are then
#       under <lang>/ql/src/codeql-suites/.
#
# [0] https://github.com/github/codeql
- import: codeql-suites/cpp-lgtm.qls
  from: codeql/cpp-queries
- import: codeql-suites/python-lgtm.qls
  from: codeql/python-queries
- include:
    id:
      - cpp/bad-strncpy-size
      - cpp/declaration-hides-variable
      - cpp/include-non-header
      - cpp/inconsistent-null-check
      - cpp/mistyped-function-arguments
      - cpp/nested-loops-with-same-variable
      - cpp/sizeof-side-effect
      - cpp/suspicious-pointer-scaling
      - cpp/suspicious-pointer-scaling-void
      - cpp/suspicious-sizeof
      - cpp/unsafe-strcat
      - cpp/unsafe-strncat
      - cpp/unsigned-difference-expression-compared-zero
      - cpp/unused-local-variable
    tags:
      - "security"
      - "correctness"
    severity: "error"
- exclude:
    id:
      - cpp/fixme-comment


================================================
FILE: .github/codeql-queries/PotentiallyDangerousFunction.ql
================================================
/**
 * vi: sw=2 ts=2 et syntax=ql:
 *
 * Borrowed from
 * https://github.com/Semmle/ql/blob/master/cpp/ql/src/Security/CWE/CWE-676/PotentiallyDangerousFunction.ql
 *
 * @name Use of potentially dangerous function
 * @description Certain standard library functions are dangerous to call.
 * @id cpp/potentially-dangerous-function
 * @kind problem
 * @problem.severity error
 * @precision high
 * @tags reliability
 *       security
 */
import cpp

predicate potentiallyDangerousFunction(Function f, string message) {
  (
    f.getQualifiedName() = "fgets" and
    message = "Call to fgets() is potentially dangerous. Use read_line() instead."
  ) or (
    f.getQualifiedName() = "strtok" and
    message = "Call to strtok() is potentially dangerous. Use extract_first_word() instead."
  ) or (
    f.getQualifiedName() = "strsep" and
    message = "Call to strsep() is potentially dangerous. Use extract_first_word() instead."
  ) or (
    f.getQualifiedName() = "dup" and
    message = "Call to dup() is potentially dangerous. Use fcntl(fd, FD_DUPFD_CLOEXEC, 3) instead."
  ) or (
    f.getQualifiedName() = "htonl" and
    message = "Call to htonl() is confusing. Use htobe32() instead."
  ) or (
    f.getQualifiedName() = "htons" and
    message = "Call to htons() is confusing. Use htobe16() instead."
  ) or (
    f.getQualifiedName() = "ntohl" and
    message = "Call to ntohl() is confusing. Use be32toh() instead."
  ) or (
    f.getQualifiedName() = "ntohs" and
    message = "Call to ntohs() is confusing. Use be16toh() instead."
  ) or (
    f.getQualifiedName() = "strerror" and
    message = "Call to strerror() is not thread-safe. Use printf()'s %m format string or STRERROR() instead."
  ) or (
    f.getQualifiedName() = "accept" and
    message = "Call to accept() is not O_CLOEXEC-safe. Use accept4() instead."
  ) or (
    f.getQualifiedName() = "dirname" and
    message = "Call dirname() is icky. Use path_extract_directory() instead."
  )
}

from FunctionCall call, Function target, string message
where
  call.getTarget() = target and
  potentiallyDangerousFunction(target, message)
select call, message


================================================
FILE: .github/codeql-queries/UninitializedVariableWithCleanup.ql
================================================
/**
 * vi: sw=2 ts=2 et syntax=ql:
 *
 * Based on cpp/uninitialized-local.
 *
 * @name Potentially uninitialized local variable using the cleanup attribute
 * @description Running the cleanup handler on a possibly uninitialized variable
 *              is generally a bad idea.
 * @id cpp/uninitialized-local-with-cleanup
 * @kind problem
 * @problem.severity error
 * @precision high
 * @tags security
 */

import cpp
import semmle.code.cpp.controlflow.StackVariableReachability

/** Auxiliary predicate: List cleanup functions we want to explicitly ignore
  * since they don't do anything illegal even when the variable is uninitialized
  */
predicate cleanupFunctionDenyList(string fun) {
  fun = "erase_char"
}

/**
 * A declaration of a local variable using __attribute__((__cleanup__(x)))
 * that leaves the variable uninitialized.
 */
DeclStmt declWithNoInit(LocalVariable v) {
  result.getADeclaration() = v and
  not v.hasInitializer() and
  /* The variable has __attribute__((__cleanup__(...))) set */
  v.getAnAttribute().hasName("cleanup") and
  /* Check if the cleanup function is not on a deny list */
  not cleanupFunctionDenyList(v.getAnAttribute().getAnArgument().getValueText())
}

class UninitialisedLocalReachability extends StackVariableReachability {
  UninitialisedLocalReachability() { this = "UninitialisedLocal" }

  override predicate isSource(ControlFlowNode node, StackVariable v) { node = declWithNoInit(v) }

  /* Note: _don't_ use the `useOfVarActual()` predicate here (and a couple of lines
   * below), as it assumes that the callee always modifies the variable if
   * it's passed to the function.
   *
   * i.e.:
   * _cleanup_free char *x;
   * fun(&x);
   * puts(x);
   *
   * `useOfVarActual()` won't treat this as an uninitialized read even if the callee
   * doesn't modify the argument, however, `useOfVar()` will
   */
  override predicate isSink(ControlFlowNode node, StackVariable v) { useOfVar(v, node) }

  override predicate isBarrier(ControlFlowNode node, StackVariable v) {
    /* only report the _first_ possibly uninitialized use */
    useOfVar(v, node) or
    (
      /* If there's a return statement somewhere between the variable declaration
       * and a possible definition, don't accept is as a valid initialization.
       *
       * E.g.:
       * _cleanup_free_ char *x;
       * ...
       * if (...)
       *    return;
       * ...
       * x = malloc(...);
       *
       * is not a valid initialization, since we might return from the function
       * _before_ the actual initialization (emphasis on _might_, since we
       * don't know if the return statement might ever evaluate to true).
       */
      definitionBarrier(v, node) and
      not exists(ReturnStmt rs |
                 /* The attribute check is "just" a complexity optimization */
                 v.getFunction() = rs.getEnclosingFunction() and v.getAnAttribute().hasName("cleanup") |
                 rs.getLocation().isBefore(node.getLocation())
      )
    )
  }
}

pragma[noinline]
predicate containsInlineAssembly(Function f) { exists(AsmStmt s | s.getEnclosingFunction() = f) }

/**
 * Auxiliary predicate: List common exceptions or false positives
 * for this check to exclude them.
 */
VariableAccess commonException() {
  /* If the uninitialized use we've found is in a macro expansion, it's
   * typically something like va_start(), and we don't want to complain. */
  result.getParent().isInMacroExpansion()
  or
  result.getParent() instanceof BuiltInOperation
  or
  /* Finally, exclude functions that contain assembly blocks. It's
   * anyone's guess what happens in those. */
  containsInlineAssembly(result.getEnclosingFunction())
}

from UninitialisedLocalReachability r, LocalVariable v, VariableAccess va
where
  r.reaches(_, v, va) and
  not va = commonException()
select va, "The variable $@ may not be initialized here, but has a cleanup handler.", v, v.getName()


================================================
FILE: .github/codeql-queries/qlpack.yml
================================================
---
# vi: ts=2 sw=2 et syntax=yaml:
# SPDX-License-Identifier: LGPL-2.1-or-later

library: false
name: systemd/cpp-queries
version: 0.0.1
dependencies:
  codeql/cpp-all: "*"
  codeql/suite-helpers: "*"
extractor: cpp


================================================
FILE: .github/dependabot.yml
================================================
# SPDX-License-Identifier: LGPL-2.1-or-later

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "monthly"
    open-pull-requests-limit: 2
  - package-ecosystem: "pip"
    directory: "/.github/workflows"
    schedule:
      interval: "monthly"
    open-pull-requests-limit: 2
  - package-ecosystem: "docker"
    directory: "/.clusterfuzzlite"
    schedule:
      interval: "monthly"
    open-pull-requests-limit: 2


================================================
FILE: .github/development-freeze.yml
================================================
# syntax - https://github.com/redhat-plumbers-in-action/devel-freezer#policy
---

policy:
  # tags like v253-rc1, v253-rc2, etc.
  - tags: ['^\S*-rc\d+$']
    feedback:
      frozen-state: |
        An -rc1 tag has been created and a release is being prepared, so please note that PRs introducing new features and APIs will be held back until the new version has been released.
      unfreeze-state: |
        We had successfully released a new major release. We are no longer in a development freeze phase.
        We will try our best to get back to your PR as soon as possible. Thank you for your patience.


================================================
FILE: .github/labeler.yml
================================================
# SPDX-License-Identifier: LGPL-2.1-or-later

apparmor:
  - '**/*apparmor*'
binfmt:
  - '**/*binfmt*'
btrfs:
  - '**/*btrfs*'
build-system:
  - meson_options.txt
  - '**/meson.build'
  - Makefile
  - configure
busctl:
  - '**/*busctl*'
cgls:
  - '**/*cgls*'
cgtop:
  - '**/*cgtop*'
ci:
  - '.github/*'
coccinelle:
  - coccinelle/*
coredump:
  - '**/*coredump*'
documentation:
  - NEWS
  - README*
  - docs/*
  - man/*
env-generator:
  - '**/*environment*generator*'
debug-generator:
  - '**/debug-generator*'
fstab-generator:
  - '**/*fstab-generator*'
growfs:
  - '**/*growfs*'
hwdb:
  - hwdb.d/**/*
journal:
  - src/journal/*
  - src/libsystemd/sd-journal/*
journal-remote:
  - src/journal-remote/*
meson:
  - meson_options.txt
  - '**/meson.build'
mkosi:
  - .mkosi/*
  - mkosi.build
network:
  - src/libsystemd-network/**/*
  - src/network/**/*
portable:
  - src/portable/**/*
rc-local-generator:
  - src/rc-local-generator/*
repart:
  - '**/*repart*'
resolve:
  - '**/*resolve*'
rfkill:
  - '**/*rfkill*'
rpm:
  - src/rpm/*
run:
  - src/run/*
  - man/systemd-run*
sd-boot/sd-stub/bootctl:
  - src/boot/**/*
  - man/bootctl*
  - man/systemd-boot.xml
sd-bus:
  - '**/sd-bus*/**'
sd-daemon:
  - '**/sd-daemon*/**'
sd-device:
  - '**/sd-device*/**'
sd-event:
  - '**/sd-event*/**'
sd-hwdb:
  - '**/sd-hwdb*/**'
sd-id128:
  - '**/sd-id128*/**'
sd-netlink:
  - '**/sd-netlink*/**'
sd-path:
  - '**/sd-path*/**'
sd-resolve:
  - '**/sd-resolve*/**'
selinux:
  - '**/*selinux*'
sleep:
  - '**/*sleep*'
smack:
  - '**/*smack*'
socket-proxy:
  - '**/*socket-proxy*'
sysv-generator:
  - '**/*sysv-generator*'
systemctl:
  - '**/systemctl*'
sysupdate:
  - '**/*sysupdate*'
sysvcompat:
  - '**/*sysv*'
sysctl:
  - '**/*sysctl*'
timedate:
  - '**/*timedate*'
timesync:
  - '**/*timesync*'
tests:
  - src/test/**/*
  - src/fuzz/**/*
  - test/**/*
  - '**/test-*'
  - .github/workflows/*
tpm2:
  - '**/*tpm2*'
  - '**/*tpm-*'
udev:
  - src/udev/**/*
  - src/libudev/*
  - man/*udev*
uki:
  - '**/ukify*'
units:
  - units/**/*
userdb:
  - '**/*userdb*'
util-lib:
  - src/fundamental/**/*
  - src/basic/**/*
  - src/shared/**/*
vconsole:
  - '**/*vconsole*'
xdg-autostart:
  - '**/**xdg-autostart-generator*'


================================================
FILE: .github/workflows/build_test.sh
================================================
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later

set -ex

info() { echo -e "\033[33;1m$1\033[0m"; }
fatal() { echo >&2 -e "\033[31;1m$1\033[0m"; exit 1; }
success() { echo >&2 -e "\033[32;1m$1\033[0m"; }

ARGS=(
    "--optimization=0 -Dopenssl=disabled -Dcryptolib=gcrypt -Ddns-over-tls=gnutls -Dtpm=true -Dtpm2=enabled"
    "--optimization=s -Dutmp=false"
    "--optimization=3 -Db_lto=true -Ddns-over-tls=false"
    "--optimization=3 -Db_lto=false -Dtpm2=disabled -Dlibfido2=disabled -Dp11kit=disabled"
    "--optimization=3 -Ddns-over-tls=openssl"
    "--optimization=3 -Dfexecve=true -Dstandalone-binaries=true -Dstatic-libsystemd=true -Dstatic-libudev=true"
    "-Db_ndebug=true"
)
PACKAGES=(
    cryptsetup-bin
    expect
    fdisk
    gettext
    iputils-ping
    isc-dhcp-client
    itstool
    kbd
    libblkid-dev
    libbpf-dev
    libcap-dev
    libcurl4-gnutls-dev
    libfdisk-dev
    libfido2-dev
    libgpg-error-dev
    liblz4-dev
    liblzma-dev
    libmicrohttpd-dev
    libmount-dev
    libp11-kit-dev
    libpwquality-dev
    libqrencode-dev
    libssl-dev
    libtss2-dev
    libxen-dev
    libxkbcommon-dev
    libxtables-dev
    libzstd-dev
    mold
    mount
    net-tools
    python3-evdev
    python3-jinja2
    python3-lxml
    python3-pefile
    python3-pip
    python3-pyelftools
    python3-pyparsing
    python3-setuptools
    quota
    strace
    unifont
    util-linux
    zstd
)
COMPILER="${COMPILER:?}"
COMPILER_VERSION="${COMPILER_VERSION:?}"
LINKER="${LINKER:?}"
CRYPTOLIB="${CRYPTOLIB:?}"
RELEASE="$(lsb_release -cs)"

# Note: As we use postfixed clang/gcc binaries, we need to override $AR
#       as well, otherwise meson falls back to ar from binutils which
#       doesn't work with LTO
if [[ "$COMPILER" == clang ]]; then
    CC="clang-$COMPILER_VERSION"
    CXX="clang++-$COMPILER_VERSION"
    AR="llvm-ar-$COMPILER_VERSION"

    if systemd-analyze compare-versions "$COMPILER_VERSION" ge 17; then
        CFLAGS="-fno-sanitize=function"
        CXXFLAGS="-fno-sanitize=function"
    else
        CFLAGS=""
        CXXFLAGS=""
    fi

    # Prefer the distro version if available
    if ! apt-get -y install --dry-run "llvm-$COMPILER_VERSION" >/dev/null; then
        # Latest LLVM stack deb packages provided by https://apt.llvm.org/
        # Following snippet was partly borrowed from https://apt.llvm.org/llvm.sh
        wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | \
            sudo gpg --yes --dearmor --output /usr/share/keyrings/apt-llvm-org.gpg
        echo "deb [signed-by=/usr/share/keyrings/apt-llvm-org.gpg] http://apt.llvm.org/$RELEASE/ llvm-toolchain-$RELEASE-$COMPILER_VERSION main" | \
            sudo tee /etc/apt/sources.list.d/llvm-toolchain.list
    fi

    PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "python3-lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION")
elif [[ "$COMPILER" == gcc ]]; then
    CC="gcc-$COMPILER_VERSION"
    CXX="g++-$COMPILER_VERSION"
    AR="gcc-ar-$COMPILER_VERSION"
    CFLAGS=""
    CXXFLAGS=""

    if ! apt-get -y install --dry-run "gcc-$COMPILER_VERSION" >/dev/null; then
        # Latest gcc stack deb packages provided by
        # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
        sudo add-apt-repository -y --no-update ppa:ubuntu-toolchain-r/test
    fi

    PACKAGES+=("gcc-$COMPILER_VERSION" "gcc-$COMPILER_VERSION-multilib")
else
    fatal "Unknown compiler: $COMPILER"
fi

# This is added by default, and it is often broken, but we don't need anything from it
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.{list,sources}
# add-apt-repository --enable-source does not work on deb822 style sources.
for f in /etc/apt/sources.list.d/*.sources; do
    sudo sed -i "s/Types: deb/Types: deb deb-src/g" "$f"
done
sudo apt-get -y update
sudo apt-get -y build-dep systemd
sudo apt-get -y install "${PACKAGES[@]}"
# Install more or less recent meson and ninja with pip, since the distro versions don't
# always support all the features we need (like --optimization=). Since the build-dep
# command above installs the distro versions, let's install the pip ones just
# locally and add the local bin directory to the $PATH.
pip3 install --user -r .github/workflows/requirements.txt --require-hashes --break-system-packages
export PATH="$HOME/.local/bin:$PATH"

$CC --version
meson --version
ninja --version

for args in "${ARGS[@]}"; do
    SECONDS=0

    info "Checking build with $args"
    # shellcheck disable=SC2086
    if ! AR="$AR" \
         CC="$CC" CC_LD="$LINKER" CFLAGS="$CFLAGS" \
         CXX="$CXX" CXX_LD="$LINKER" CXXFLAGS="$CXXFLAGS" \
         meson setup \
               -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true --werror \
               -Dnobody-group=nogroup -Dcryptolib="${CRYPTOLIB:?}" -Ddebug=false \
               $args build; then

        cat build/meson-logs/meson-log.txt
        fatal "meson failed with $args"
    fi

    if ! meson compile -C build -v; then
        fatal "'meson compile' failed with '$args'"
    fi

    for loader in build/src/boot/efi/*{.efi,.efi.stub}; do
        if [[ "$(sbverify --list "$loader" 2>&1)" != "No signature table present" ]]; then
            fatal "$loader: Gaps found in section table"
        fi
    done

    git clean -dxf

    success "Build with '$args' passed in $SECONDS seconds"
done


================================================
FILE: .github/workflows/build_test.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
name: Build test
on:
  pull_request:
    paths:
      - '**/meson.build'
      - '.github/workflows/**'
      - 'meson_options.txt'
      - 'src/**'
      - 'test/fuzz/**'

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ toJSON(matrix.env) }}-${{ github.ref }}
      cancel-in-progress: true
    strategy:
      fail-fast: false
      matrix:
        env:
          - { COMPILER: "gcc",   COMPILER_VERSION: "11", LINKER: "bfd",  CRYPTOLIB: "gcrypt"  }
          - { COMPILER: "gcc",   COMPILER_VERSION: "13", LINKER: "mold", CRYPTOLIB: "openssl" }
          - { COMPILER: "clang", COMPILER_VERSION: "14", LINKER: "mold", CRYPTOLIB: "gcrypt"  }
          - { COMPILER: "clang", COMPILER_VERSION: "15", LINKER: "bfd",  CRYPTOLIB: "openssl" }
          - { COMPILER: "clang", COMPILER_VERSION: "17", LINKER: "lld",  CRYPTOLIB: "auto"    }
    env: ${{ matrix.env }}
    steps:
      - name: Repository checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
      - name: Build check
        run: .github/workflows/build_test.sh


================================================
FILE: .github/workflows/cflite_pr.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
name: ClusterFuzzLite PR fuzzing
on:
  pull_request:
    branches:
      - main
      - v[0-9]+-stable

permissions: read-all

jobs:
  PR:
    runs-on: ubuntu-24.04
    if: github.repository != 'systemd/systemd' || github.event.pull_request.user.login == 'dependabot[bot]'
    concurrency:
      group: ${{ github.workflow }}-${{ matrix.sanitizer }}-${{ github.ref }}
      cancel-in-progress: true
    strategy:
      fail-fast: false
      matrix:
        sanitizer: [address, undefined, memory]
    steps:
    - name: Build Fuzzers
      id: build
      uses: google/clusterfuzzlite/actions/build_fuzzers@v1
      with:
        sanitizer: ${{ matrix.sanitizer }}
        github-token: ${{ secrets.GITHUB_TOKEN }}
    - name: Run Fuzzers
      id: run
      uses: google/clusterfuzzlite/actions/run_fuzzers@v1
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        fuzz-seconds: 1200
        mode: 'code-change'
        sanitizer: ${{ matrix.sanitizer }}


================================================
FILE: .github/workflows/cifuzz.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
# See: https://google.github.io/oss-fuzz/getting-started/continuous-integration/

name: CIFuzz

permissions:
  contents: read

on:
  pull_request:
    paths:
      - '**/meson.build'
      - '.github/workflows/**'
      - 'meson_options.txt'
      - 'src/**'
      - 'test/fuzz/**'
      - 'tools/oss-fuzz.sh'
  push:
    branches:
      - main
jobs:
  Fuzzing:
    # FIXME: Figure out why 32-bit applications fail to run in docker on Ubuntu 24.04.
    runs-on: ubuntu-22.04
    if: github.repository == 'systemd/systemd'
    concurrency:
      group: ${{ github.workflow }}-${{ matrix.sanitizer }}-${{ matrix.architecture }}-${{ github.ref }}
      cancel-in-progress: true
    strategy:
      fail-fast: false
      matrix:
        sanitizer: [address, undefined, memory]
        architecture: [x86_64]
        include:
          - sanitizer: address
            architecture: i386
    permissions:
      security-events: write

    steps:
      - name: Build Fuzzers
        id: build
        uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
        with:
          oss-fuzz-project-name: 'systemd'
          dry-run: false
          allowed-broken-targets-percentage: 0
          # keep-unaffected-fuzz-targets should be removed once https://github.com/google/oss-fuzz/issues/7011 is fixed
          keep-unaffected-fuzz-targets: true
          sanitizer: ${{ matrix.sanitizer }}
          architecture: ${{ matrix.architecture }}
          output-sarif: true
      - name: Run Fuzzers
        uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
        with:
          oss-fuzz-project-name: 'systemd'
          fuzz-seconds: 600
          dry-run: false
          sanitizer: ${{ matrix.sanitizer }}
          output-sarif: true
      - name: Upload Crash
        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
        if: failure() && steps.build.outcome == 'success'
        with:
          name: ${{ matrix.sanitizer }}-${{ matrix.architecture }}-artifacts
          path: ./out/artifacts
      - name: Upload Sarif
        if: always() && steps.build.outcome == 'success'
        uses: github/codeql-action/upload-sarif@407ffafae6a767df3e0230c3df91b6443ae8df75
        with:
          # Path to SARIF file relative to the root of the repository
          sarif_file: cifuzz-sarif/results.sarif
          checkout_path: cifuzz-sarif


================================================
FILE: .github/workflows/codeql.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
name: "CodeQL"

on:
  pull_request:
    branches:
      - main
      - v[0-9]+-stable
    paths:
      - '**/meson.build'
      - '.github/**/codeql*'
      - 'src/**'
      - 'test/**'
      - 'tools/**'
  push:
    branches:
      - main
      - v[0-9]+-stable

permissions:
  contents: read

jobs:
  analyze:
    name: Analyze
    if: github.repository != 'systemd/systemd-security'
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ matrix.language }}-${{ github.ref }}
      cancel-in-progress: true
    permissions:
      actions: read
      security-events: write

    strategy:
      fail-fast: false
      matrix:
        language: ['cpp', 'python']

    steps:
    - name: Checkout repository
      uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

    - name: Initialize CodeQL
      uses: github/codeql-action/init@407ffafae6a767df3e0230c3df91b6443ae8df75
      with:
        languages: ${{ matrix.language }}
        config-file: ./.github/codeql-config.yml

    - run: sudo -E .github/workflows/unit_tests.sh SETUP

    - name: Autobuild
      uses: github/codeql-action/autobuild@407ffafae6a767df3e0230c3df91b6443ae8df75

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@407ffafae6a767df3e0230c3df91b6443ae8df75


================================================
FILE: .github/workflows/coverity.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
name: Coverity

on:
  schedule:
    # Run Coverity daily at midnight
    - cron:  '0 0 * * *'

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-24.04
    if: github.repository == 'systemd/systemd'
    env:
      # Set in repo settings -> secrets -> actions
      COVERITY_SCAN_TOKEN:              "${{ secrets.COVERITY_SCAN_TOKEN }}"
      COVERITY_SCAN_NOTIFICATION_EMAIL: "${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }}"
    steps:
      - name: Repository checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
      # Reuse the setup phase of the unit test script to avoid code duplication
      - name: Install build dependencies
        run: sudo -E .github/workflows/unit_tests.sh SETUP
      - name: Build & upload the results
        run: tools/coverity.sh


================================================
FILE: .github/workflows/development_freeze.yml
================================================
# doc: https://github.com/redhat-plumbers-in-action/devel-freezer#readme
---

name: Development Freeze
on:
  workflow_run:
    workflows: [ Gather Pull Request Metadata ]
    types:
      - completed

env:
  PULL_REQUEST_METADATA_DIR: pull_request
  PULL_REQUEST_METADATA_FILE: metadata

permissions:
  contents: read

jobs:
  freezer:
    if: >
      github.event.workflow_run.event == 'pull_request' &&
      github.event.workflow_run.conclusion == 'success' &&
      github.repository == 'systemd/systemd'
    runs-on: ubuntu-24.04

    permissions:
      pull-requests: write

    steps:
      - name: Download Pull Request Metadata artifact
        uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
        with:
          script: |
            const artifacts = await github.rest.actions.listWorkflowRunArtifacts({
               owner: context.repo.owner,
               repo: context.repo.repo,
               run_id: ${{ github.event.workflow_run.id }},
            });

            const matchArtifact = artifacts.data.artifacts.filter((artifact) => {
              return artifact.name == "${{ env.PULL_REQUEST_METADATA_FILE }}"
            })[0];

            const download = await github.rest.actions.downloadArtifact({
               owner: context.repo.owner,
               repo: context.repo.repo,
               artifact_id: matchArtifact.id,
               archive_format: 'zip',
            });

            const fs = require('fs');
            fs.writeFileSync('${{ github.workspace }}/${{ env.PULL_REQUEST_METADATA_FILE }}.zip', Buffer.from(download.data));

      - run: unzip ${{ env.PULL_REQUEST_METADATA_FILE }}.zip

      - name: 'Get Pull Request number'
        uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const fs = require('fs');
            const pr_number = Number(fs.readFileSync('./${{ env.PULL_REQUEST_METADATA_FILE }}'));
            core.exportVariable('pr_number', pr_number);

      - name: Repository checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
        with:
          fetch-depth: 0

      - name: Development Freezer
        uses: redhat-plumbers-in-action/devel-freezer@67aec4a153bd9fca5322e1c4dd4d7c419fb36362
        with:
          pr-number: ${{ env.pr_number }}
          token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/differential-shellcheck.yml
================================================
---
# https://github.com/redhat-plumbers-in-action/differential-shellcheck#readme

name: Differential ShellCheck
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

permissions:
  contents: read

jobs:
  lint:
    if: github.event.repository.name != 'systemd-security'
    runs-on: ubuntu-24.04

    permissions:
      security-events: write

    steps:
      - name: Repository checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
        with:
          fetch-depth: 0

      - name: Differential ShellCheck
        uses: redhat-plumbers-in-action/differential-shellcheck@91e2582e40236f831458392d905578d680baa138
        with:
          # exclude all `.in` files because they may contain unsupported syntax, and they have to be preprocessed first
          exclude-path: '**/*.in'
          token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/gather-pr-metadata.yml
================================================
---

name: Gather Pull Request Metadata

on:
  pull_request:
    branches: [ main ]

env:
  PULL_REQUEST_METADATA_DIR: pull_request
  PULL_REQUEST_METADATA_FILE: metadata

permissions:
  contents: read

jobs:
  gather-metadata:
    if: github.repository == 'systemd/systemd'
    runs-on: ubuntu-24.04

    steps:
      - name: Repository checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
        with:
          fetch-depth: 0

      - name: Store PR number in file
        run: |
          mkdir -p ./${{ env.PULL_REQUEST_METADATA_DIR }}
          echo ${{ github.event.number }} >./${{ env.PULL_REQUEST_METADATA_DIR }}/${{ env.PULL_REQUEST_METADATA_FILE }}

      - name: Upload Pull Request Metadata artifact
        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
        with:
          name: ${{ env.PULL_REQUEST_METADATA_FILE }}
          path: ${{ env.PULL_REQUEST_METADATA_DIR }}
          retention-days: 1


================================================
FILE: .github/workflows/issue_labeler.yml
================================================
---

name: Issue labeler
on:
  issues:
    types: [ opened ]

permissions:
  contents: read

jobs:
  label-component:
    runs-on: ubuntu-24.04

    permissions:
      issues: write

    strategy:
      matrix:
        template: [ bug_report.yml, feature_request.yml ]

    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

      - name: Parse issue form
        uses: stefanbuck/github-issue-parser@c1a559d78bfb8dd05216dab9ffd2b91082ff5324
        id: issue-parser
        with:
          template-path: .github/ISSUE_TEMPLATE/${{ matrix.template }}

      - name: Set labels based on component field
        uses: redhat-plumbers-in-action/advanced-issue-labeler@71bcf99aef4b9ea844db9a43755e8ac02c8e661e
        with:
          issue-form: ${{ steps.issue-parser.outputs.jsonString }}
          template: ${{ matrix.template }}
          token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/labeler.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
name: "Pull Request Labeler"

on:
  pull_request_target:
    types: [opened, synchronize, reopened, ready_for_review, closed]
  issue_comment:
    types: [created]

permissions:
  contents: read

jobs:
  triage:
    if: github.repository == 'systemd/systemd'
    runs-on: ubuntu-24.04
    permissions:
      pull-requests: write

    steps:
    - name: Label PR based on policy in labeler.yml
      uses: actions/labeler@ac9175f8a1f3625fd0d4fb234536d26811351594
      if: github.event_name == 'pull_request_target' && github.event.action != 'closed'
      with:
        repo-token: "${{ secrets.GITHUB_TOKEN }}"
        configuration-path: .github/labeler.yml
        sync-labels: "" # This is a workaround for issue 18671

    - name: Set or remove labels based on systemd development workflow
      uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
      if: github.event_name == 'pull_request_target' && github.event.action != 'closed' && !github.event.pull_request.draft
      with:
        script: |
          response = await github.rest.issues.listLabelsOnIssue({
            issue_number: context.issue.number,
            owner: context.repo.owner,
            repo: context.repo.repo,
          });

          good_to_merge = [
            "good-to-merge/waiting-for-ci 👍",
            "good-to-merge/after-next-release",
            "good-to-merge/with-minor-suggestions",
            "good-to-merge/waiting-for-reporter-feedback 👍",
          ];

          if (response.data.every(l => !good_to_merge.includes(l.name))) {
            await github.rest.issues.addLabels({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              labels: ["please-review"]
            });
          }

          for (const label of ["reviewed/needs-rework 🔨",
                               "ci-fails/needs-rework 🔥",
                               "ci-failure-appears-unrelated",
                               "needs-rebase"]) {
            try {
              await github.rest.issues.removeLabel({
                issue_number: context.issue.number,
                owner: context.repo.owner,
                repo: context.repo.repo,
                name: label,
              });
            } catch (err) {
              if (err.status != 404) {
                throw err;
              }
            }
          }

    - name: Add please-review label on command in issue comment
      uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
      if: github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/please-review')
      with:
        script: |
          await github.rest.issues.addLabels({
            issue_number: context.issue.number,
            owner: context.repo.owner,
            repo: context.repo.repo,
            labels: ["please-review"]
          })

    - name: Remove specific labels when PR is closed or merged
      uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
      if: github.event_name == 'pull_request_target' && github.event.action == 'closed'
      with:
        script: |
          for (const label of ["please-review",
                               "reviewed/needs-rework 🔨",
                               "ci-fails/needs-rework 🔥",
                               "needs-rebase",
                               "good-to-merge/waiting-for-ci 👍",
                               "good-to-merge/after-next-release",
                               "good-to-merge/with-minor-suggestions",
                               "good-to-merge/waiting-for-reporter-feedback 👍",
                               "needs-discussion 🤔",
                               "needs-reporter-feedback ❓",
                               "dont-merge 💣",
                               "squash-on-merge",
                               "quick-review 🏃‍♂️"]) {
            try {
              await github.rest.issues.removeLabel({
                issue_number: context.issue.number,
                owner: context.repo.owner,
                repo: context.repo.repo,
                name: label,
              });
            } catch (err) {
              if (err.status != 404) {
                throw err;
              }
            }
          }


================================================
FILE: .github/workflows/linter.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
# https://github.com/marketplace/actions/super-linter
name: Lint Code Base

on:
  pull_request:
    branches:
      - main
      - v[0-9]+-stable

permissions:
  contents: read

jobs:
  build:
    name: Lint Code Base
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
      cancel-in-progress: true

    steps:
      - name: Repo checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
        with:
          # We need a full repo clone
          fetch-depth: 0

      - name: Lint Code Base
        uses: super-linter/super-linter/slim@88ea3923a7e1f89dd485d079f6eb5f5e8f937589
        env:
          DEFAULT_BRANCH: main
          VALIDATE_ALL_CODEBASE: false
          VALIDATE_GITHUB_ACTIONS: true


================================================
FILE: .github/workflows/make_release.yml
================================================
name: Make a Github release

on:
  push:
    tags:
      - "v*"

permissions:
  contents: read

jobs:
  release:
    if: github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable'
    runs-on: ubuntu-24.04

    permissions:
      contents: write

    steps:
      - name: Release
        uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
        with:
          prerelease: ${{ contains(github.ref_name, '-rc') }}
          draft: ${{ github.repository == 'systemd/systemd' }}


================================================
FILE: .github/workflows/mkosi.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
# Simple boot tests that build and boot the mkosi images generated by the mkosi config files in mkosi.conf.d/.
name: mkosi

on:
  push:
    branches:
      - main
      - v[0-9]+-stable
    paths:
      - '**'
      - '!README*'
      - '!LICENSE*'
      - '!LICENSES/**'
      - '!TODO'
      - '!docs/**'
      - '!man/**'
      - '!catalog/**'
      - '!shell-completion/**'
      - '!po/**'
      - '!.**'
      - '.github/**'

  pull_request:
    branches:
      - main
      - v[0-9]+-stable
    paths:
      - '**'
      - '!README*'
      - '!LICENSE*'
      - '!LICENSES/**'
      - '!TODO'
      - '!docs/**'
      - '!man/**'
      - '!catalog/**'
      - '!shell-completion/**'
      - '!po/**'
      - '!.**'
      - '.github/**'

permissions:
  contents: read

jobs:
  ci:
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }}
      cancel-in-progress: true
    strategy:
      fail-fast: false
      matrix:
        include:
          - distro: arch
            release: rolling
          - distro: debian
            release: testing
          - distro: ubuntu
            release: jammy
          - distro: fedora
            release: "39"
          - distro: fedora
            release: rawhide
          - distro: opensuse
            release: tumbleweed
          - distro: centos
            release: "9"

    env:
      SYSTEMD_LOG_LEVEL: debug

    steps:
    - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

    - name: Build dependencies
      run: sudo apt install --yes makepkg

    - uses: systemd/mkosi@bbe715f42911f9660712377a5b39335b9391ae22

    - name: Configure
      run: |
        # mkosi GHA clones and builds from main but tools are not compatible with this branch, 24.04 ships 255 which is enough
        sudo apt install --reinstall systemd systemd-container systemd-boot systemd-ukify

        tee mkosi.local.conf <<- EOF
        [Distribution]
        Distribution=${{ matrix.distro }}
        Release=${{ matrix.release }}
        EOF

        tee mkosi.conf.d/99-ci.conf <<- EOF
        [Content]
        Environment=CI_BUILD=1
                    SLOW_TESTS=false

        [Host]
        KernelCommandLineExtra=systemd.unit=mkosi-check-and-shutdown.service
                               systemd.journald.max_level_console=debug
                               # udev's debug log output is very verbose, so up it to info in CI.
                               udev.log_level=info
                               # Root device can take a long time to appear, so let's bump the timeout.
                               systemd.default_device_timeout_sec=180
        QemuVsock=yes
        # Sometimes we run on a host with /dev/kvm, but it is broken, so explicitly disable it
        QemuKvm=no
        Ephemeral=yes
        EOF

        # For erofs, we have to install linux-modules-extra-azure, but that doesn't match the running kernel
        # version, so we can't load the erofs module. squashfs is a builtin module so we use that instead.

        mkdir -p mkosi.images/system/mkosi.repart/10-usr.conf.d
        tee mkosi.images/system/mkosi.repart/10-usr.conf.d/squashfs.conf <<- EOF
        [Partition]
        Format=squashfs
        EOF

        # The emergency shell is not useful in the CI, as it just blocks for a long time before the job
        # eventually times out. Override it to just shutdown immediately.
        mkdir -p mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
        mkdir -p mkosi.images/system/mkosi.extra/usr/lib/systemd/system/emergency.service.d/
        tee mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf <<- EOF
        [Unit]
        FailureAction=exit
        [Service]
        ExecStartPre=
        ExecStart=
        ExecStart=false
        EOF
        cp mkosi.images/initrd/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf mkosi.images/system/mkosi.extra/usr/lib/systemd/system/emergency.service.d/poweroff.conf

    - name: Generate secure boot key
      run: mkosi --debug genkey

    - name: Show image summary
      run: mkosi summary

    - name: Build
      run: sudo mkosi --debug --repository-key-check=false

    - name: Boot systemd-nspawn
      run: test "$(sudo mkosi --debug boot 1>&2; echo $?)" -eq 123

    - name: Boot QEMU
      run: timeout -k 30 10m test "$(sudo mkosi --debug qemu 1>&2; echo $?)" -eq 123


================================================
FILE: .github/workflows/requirements.txt
================================================
meson==1.3.0 \
    --hash=sha256:4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc \
    --hash=sha256:e9f54046ce5b9a1f3024f7a7d52f19f085fd57c9d26a5db0cfcf0750572a8fd8
ninja==1.11.1.1 \
    --hash=sha256:18302d96a5467ea98b68e1cae1ae4b4fb2b2a56a82b955193c637557c7273dbd \
    --hash=sha256:185e0641bde601e53841525c4196278e9aaf4463758da6dd1e752c0a0f54136a \
    --hash=sha256:376889c76d87b95b5719fdd61dd7db193aa7fd4432e5d52d2e44e4c497bdbbee \
    --hash=sha256:3e0f9be5bb20d74d58c66cc1c414c3e6aeb45c35b0d0e41e8d739c2c0d57784f \
    --hash=sha256:73b93c14046447c7c5cc892433d4fae65d6364bec6685411cb97a8bcf815f93a \
    --hash=sha256:7563ce1d9fe6ed5af0b8dd9ab4a214bf4ff1f2f6fd6dc29f480981f0f8b8b249 \
    --hash=sha256:76482ba746a2618eecf89d5253c0d1e4f1da1270d41e9f54dfbd91831b0f6885 \
    --hash=sha256:84502ec98f02a037a169c4b0d5d86075eaf6afc55e1879003d6cab51ced2ea4b \
    --hash=sha256:95da904130bfa02ea74ff9c0116b4ad266174fafb1c707aa50212bc7859aebf1 \
    --hash=sha256:9d793b08dd857e38d0b6ffe9e6b7145d7c485a42dcfea04905ca0cdb6017cc3c \
    --hash=sha256:9df724344202b83018abb45cb1efc22efd337a1496514e7e6b3b59655be85205 \
    --hash=sha256:aad34a70ef15b12519946c5633344bc775a7656d789d9ed5fdb0d456383716ef \
    --hash=sha256:d491fc8d89cdcb416107c349ad1e3a735d4c4af5e1cb8f5f727baca6350fdaea \
    --hash=sha256:ecf80cf5afd09f14dcceff28cb3f11dc90fb97c999c89307aea435889cb66877 \
    --hash=sha256:fa2ba9d74acfdfbfbcf06fad1b8282de8a7a8c481d9dee45c859a8c93fcc1082


================================================
FILE: .github/workflows/scorecards.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
name: Scorecards supply-chain security
on:
  # Only the default branch is supported.
  branch_protection_rule:
  schedule:
    - cron: '15 21 * * 6'
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
    paths:
      - '.github/workflows/scorecards.yml'

# Declare default permissions as read only.
permissions: read-all

jobs:
  analysis:
    name: Scorecards analysis
    if: github.repository == 'systemd/systemd'
    runs-on: ubuntu-24.04
    permissions:
      id-token: write # Used to receive a badge.

    steps:
      - name: Checkout code
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
        with:
          persist-credentials: false

      - name: Run analysis
        uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
        with:
          results_file: results.sarif
          results_format: sarif
          publish_results: ${{ github.event_name != 'pull_request' }}


================================================
FILE: .github/workflows/unit_tests.sh
================================================
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later

# shellcheck disable=SC2206
PHASES=(${@:-SETUP RUN RUN_ASAN_UBSAN CLEANUP})
ADDITIONAL_DEPS=(
    clang
    expect
    fdisk
    jekyll
    libbpf-dev
    libfdisk-dev
    libfido2-dev
    libp11-kit-dev
    libpwquality-dev
    libqrencode-dev
    libssl-dev
    libtss2-dev
    libxkbcommon-dev
    libzstd-dev
    python3-libevdev
    python3-pefile
    python3-pyelftools
    python3-pyparsing
    python3-pytest
    rpm
    zstd
)

function info() {
    echo -e "\033[33;1m$1\033[0m"
}

function run_meson() {
    if ! meson "$@"; then
        find . -type f -name meson-log.txt -exec cat '{}' +
        return 1
    fi
}

set -ex

MESON_ARGS=(-Dcryptolib=${CRYPTOLIB:-auto})

for phase in "${PHASES[@]}"; do
    case $phase in
        SETUP)
            info "Setup phase"
            # This is added by default, and it is often broken, but we don't need anything from it
            rm -f /etc/apt/sources.list.d/microsoft-prod.{list,sources}
            # add-apt-repository --enable-source does not work on deb822 style sources.
            for f in /etc/apt/sources.list.d/*.sources; do
                sed -i "s/Types: deb/Types: deb deb-src/g" "$f"
            done
            apt-get -y update
            apt-get -y build-dep systemd
            apt-get -y install "${ADDITIONAL_DEPS[@]}"
            pip3 install -r .github/workflows/requirements.txt --require-hashes --break-system-packages
            ;;
        RUN|RUN_GCC|RUN_CLANG|RUN_CLANG_RELEASE)
            if [[ "$phase" =~ ^RUN_CLANG ]]; then
                export CC=clang
                export CXX=clang++
                export CFLAGS="-fno-sanitize=function"
                export CXXFLAGS="-fno-sanitize=function"
                if [[ "$phase" == RUN_CLANG ]]; then
                    # The docs build is slow and is not affected by compiler/flags, so do it just once
                    MESON_ARGS+=(-Dman=enabled)
                else
                    MESON_ARGS+=(-Dmode=release --optimization=2)
                fi

                # Some variation: remove machine-id, like on Debian builders to ensure unit tests still work.
                if [ -w /etc/machine-id ]; then
                    mv /etc/machine-id /etc/machine-id.bak
                fi
            fi
            MESON_ARGS+=(--fatal-meson-warnings)
            run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true "${MESON_ARGS[@]}" build
            ninja -C build -v
            # Ensure setting a timezone (like the reproducible build tests do) does not break time/date unit tests
            TZ=GMT+12 meson test -C build --print-errorlogs
            ;;
        RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN_NO_DEPS)
            MESON_ARGS=(--optimization=1)

            if [[ "$phase" =~ ^RUN_CLANG_ASAN_UBSAN ]]; then
                export CC=clang
                export CXX=clang++
                export CFLAGS="-fno-sanitize=function"
                export CXXFLAGS="-fno-sanitize=function"
                # Build fuzzer regression tests only with clang (for now),
                # see: https://github.com/systemd/systemd/pull/15886#issuecomment-632689604
                # -Db_lundef=false: See https://github.com/mesonbuild/meson/issues/764
                MESON_ARGS+=(-Db_lundef=false -Dfuzz-tests=true)

                if [[ "$phase" == "RUN_CLANG_ASAN_UBSAN_NO_DEPS" ]]; then
                    MESON_ARGS+=(--auto-features=disabled)
                fi
            fi
            MESON_ARGS+=(--fatal-meson-warnings)
            run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Db_sanitize=address,undefined "${MESON_ARGS[@]}" build
            ninja -C build -v

            export ASAN_OPTIONS=strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1
            # Never remove halt_on_error from UBSAN_OPTIONS. See https://github.com/systemd/systemd/commit/2614d83aa06592aedb.
            export UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1

            # FIXME
            # For some strange reason the GH Actions VM stops responding after
            # executing first ~150 tests, _unless_ there's something producing
            # output (either running `meson test` in verbose mode, or something
            # else in background). Despite my efforts so far I haven't been able
            # to identify the culprit (since the issue is not reproducible
            # during debugging, wonderful), so let's at least keep a workaround
            # here to make the builds stable for the time being.
            (set +x; while :; do echo -ne "\n[WATCHDOG] $(date)\n"; sleep 30; done) &
            meson test --timeout-multiplier=3 -C build --print-errorlogs
            ;;
        CLEANUP)
            info "Cleanup phase"
            if [ ! -f /etc/machine-id ] && [ -w /etc/machine-id.bak ]; then
                mv /etc/machine-id.bak /etc/machine-id
            fi
            ;;
        *)
            echo >&2 "Unknown phase '$phase'"
            exit 1
    esac
done


================================================
FILE: .github/workflows/unit_tests.yml
================================================
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
#
name: Unit tests
on:
  pull_request:
    branches:
      - main
      - v[0-9]+-stable

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ matrix.run_phase }}-${{ matrix.cryptolib }}-${{ github.ref }}
      cancel-in-progress: true
    strategy:
      fail-fast: false
      matrix:
        run_phase: [GCC, GCC_ASAN_UBSAN, CLANG, CLANG_RELEASE, CLANG_ASAN_UBSAN, CLANG_ASAN_UBSAN_NO_DEPS]
        cryptolib: [auto]
        include:
          - run_phase: GCC
            cryptolib: openssl
          - run_phase: CLANG
            cryptolib: gcrypt
    steps:
      - name: Repository checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
      - name: Install build dependencies
        run: |
          # Drop XDG_* stuff from /etc/environment, so we don't get the user
          # XDG_* variables when running under sudo
          sudo sed -i '/^XDG_/d' /etc/environment
          # Pass only specific env variables through sudo, to avoid having
          # the already existing XDG_* stuff on the "other side"
          sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh SETUP
      - name: Build & test
        run: sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh RUN_${{ matrix.run_phase }}
        env:
          CRYPTOLIB: ${{ matrix.cryptolib }}


================================================
FILE: .gitignore
================================================
*.cache
*.plist
*.py[co]
*.swp
*.trs
*~
.config.args
.gdb_history
.deps/
.mypy_cache/
__pycache__/
/*.gcda
/*.gcno
/*.tar.bz2
/*.tar.gz
/*.tar.xz
/GPATH
/GRTAGS
/GSYMS
/GTAGS
/TAGS
/ID
/build*
/coverage/
/image.raw
/.#image.raw.lck
/image.raw.cache-pre-dev
/image.raw.cache-pre-inst
/image.raw.manifest
/install-tree
/.mkosi-*
/mkosi.builddir/
/mkosi.output/
/mkosi.installdir/
/mkosi.key
/mkosi.crt
mkosi.local.conf
/tags
.dir-locals-2.el
.vscode/


================================================
FILE: .mailmap
================================================
Alan Jenkins <alan.christopher.jenkins@googlemail.com>
Alan Jenkins <alan.christopher.jenkins@googlemail.com> <alan-jenkins@tuffmail.co.uk>
Alan Robertson <aroberts@zen.iomart.com> <alanjrobertson@gmail.com>
Alexander Kochetkov <al.kochet@gmail.com>
Alexander Kuleshov <kuleshovmail@gmail.com> <0xAX@users.noreply.github.com>
Alexander Kurtz <alexander@kurtz.be>
Alexandros Frantzis <alexandros.frantzis@canonical.com>
Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Ananth N Mavinakayanahalli <ananth@in.ibm.com> <ananthmg@rediffmail.com>
Andreas Henriksson <andreas@fatal.se>
Andrey Yashkin <38919268+AndreyYashkin@users.noreply.github.com>
Anthony Parsons <flussence@users.noreply.github.com>
Antoine Eiche <lewo@abesis.fr>
Arnd Bergmann <arnd@arndb.de>
Atul Sabharwal <atul.sabharwal@intel.com>
Bart Rulon <barron@lexmark.com>
Bastien Nocera <hadess@hadess.net> <hadess@users.noreply.github.com>
Baybal Ni <nikulinpi@gmail.com>
Beniamino Galvani <bgalvani@redhat.com> <bengal@users.noreply.github.com>
Bill Yodlowsky <bill@redhat.com> <itsbill@users.noreply.github.com>
Brian Boylston <brian.boylston@hpe.com>
Charles (Chas) Williams <ciwillia@brocade.com>
Chen Qi <Qi.Chen@windriver.com> <40684930+ChenQi1989@users.noreply.github.com>
Christophe Varoqui <christophe.varoqui@free.fr>
Colin Guthrie <ColinGuthrie@web>
Cristian Rodríguez <cristian@rodriguez.im> <crodriguez@owncloud.com>
Daniel Elstner  <daniel.kitta@gmail.com> <danielk@openismus.com>
Daniel Gorbea <danielgorbea@hotmail.com>
Daniel J Walsh <dwalsh@redhat.com>
Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Daniel Machon <Danielmachon@live.dk>
Daniel P. Berrangé <berrange@redhat.com>
Daniel Rusek <mail@asciiwolf.com>
Daniel Stekloff <dsteklof@us.ibm.com>
Daniel Șerbănescu <dasj19@users.noreply.github.com>
Dann Frazier <dann.frazier@canonical.com>
Dave Reisner <dreisner@archlinux.org> <d@falconindy.com>
David Santamaría Rogado <howl.nsp@gmail.com>
David Zeuthen <david@fubar.dk>
David Zeuthen <david@fubar.dk> <davidz@redhat.com>
David Zeuthen <david@fubar.dk> <zeuthen@gmail.com>
Davide Cavalca <dcavalca@fb.com> <davide125@tiscali.it>
Dennis Wassenberg <dennis.wassenberg@secunet.com>
Diego Canuhe <dcanuhe@gmail.com> <46734128+dcanuhe@users.noreply.github.com>
Diego Elio Pettenò <flameeyes@gmail.com>
Dmitriy Geels <dmitriy.geels@gmail.com>
Dmitry Khlebnikov <dmitry.khlebnikov@rea-group.com> <galaxy4public@users.noreply.github.com>
Douglas Christman <DouglasChristman@gmail.com>
Emil Soleyman <emil@soleyman.com>
Eric Cook <llua@users.noreply.github.com>
Evgeny Vereshchagin <evvers@ya.ru>
Fabiano Fidêncio <fabianofidencio@gmail.com> Fabiano Fidencio <fidencio@profusion.mobi>
Faizal Luthfi <zalluth@gmail.com>
Federico Di Pierro <nierro92@gmail.com>
Fionn Cleary <clearyf@tcd.ie>
Frantisek Sumsal <frantisek@sumsal.cz> <fsumsal@redhat.com>
Frederic Crozat <fcrozat@suse.com> <fcrozat@mandriva.com>
Gautier Husson <admin_github@liberasys.com>
Gaël PORTAY <gael.portay@collabora.com> <gael.portay@rtone.fr>
George Gaydarov <git@gg7.io> <gg7@users.noreply.github.com>
Gianluca Boiano <morf3089@gmail.com>
Greg Kroah-Hartman <greg@kroah.com>
Greg Kroah-Hartman <greg@kroah.com> <greg@bucket.kroah.org>
Greg Kroah-Hartman <greg@kroah.com> <greg@kroah.com>
Greg Kroah-Hartman <greg@kroah.com> <greg@press.(none)>
Greg Kroah-Hartman <greg@kroah.com> <gregkh@linuxfoundation.org>
Greg Kroah-Hartman <greg@kroah.com> <gregkh@suse.de>
Gwendal Grignou <gwendal@chromium.org>
Hannes Reinecke <hare@suse.de>
Harald Hoyer <harald@redhat.com>
Harald Hoyer <harald@redhat.com> <harald@hoyer.xyz>
Heikki Kemppainen <heikki.kemppainen@nokia.com>
Hendrik Brueckner <hbrueckner@users.noreply.github.com>
Hendrik Westerberg <hendrik@gestorf.com>
Ian Campbell <ijc@hellion.org.uk> <Ian.Campbell@citrix.com>
Insun Pyo <insun.pyo@samsung.com>
Insun Pyo <insun.pyo@samsung.com> <iplayinsun@gmail.com>
Jay Burger <jay.burger@fujitsu.com> <root@new-host-3.home>
Jerone Young <jyoung@redhat.com> <jerone.young@canonical.com>
Jiuyang Liu <liujiuyang1994@gmail.com>
Jiří Pírko <jiri@mellanox.com>
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> <glaubitz@suse.com>
Jon Ringle <jringle@gridpoint.com> <ringlej@users.noreply.github.com>
Jonas Dorel <jonas.dorel@laposte.net>
Jonathon Kowalski <bl0pbl33p@gmail.com>
Josef Andersson <josef.andersson@fripost.org>
Josef Andersson <l10nl18nsweja@gmail.com>
José Bollo <jose.bollo@iot.bzh> <jobol@nonadev.net>
Jun Bo Bi <jambonmcyeah@gmail.com>
Justin Capella <justincapella@gmail.com> <b1tninja@users.noreply.github.com>
Jérémy Rosen <jeremy.rosen@enst-bretagne.fr>
Jürg Billeter <j@bitron.ch>
Karl Kraus <karl.kraus@tum.de> <laqueray@gmail.com>
Kay Sievers <kay@vrfy.org>
Kay Sievers <kay@vrfy.org> <kay.sievers@suse.de>
Kay Sievers <kay@vrfy.org> <kay.sievers@vrfy.org>
Kay Sievers <kay@vrfy.org> <kay@pim.off.vrfy.org>
Kay Sievers <kay@vrfy.org> <kay@pim>
Kay Sievers <kay@vrfy.org> <kay@yik.fritz.box>
Kevin Becker <kevin@kevinbecker.org>
Krzysztof Jackiewicz <k.jackiewicz@samsung.com> <kjackiewicz@users.noreply.github.com>
Larry Bernstone <lbernstone@gmail.com>
Lennart Poettering <lennart@poettering.net> <LennartPoettering@web>
Lennart Poettering <lennart@poettering.net> <lennart@bf9bc1cc-28ce-0310-abfb-9041aa761afb>
Lennart Poettering <lennart@poettering.net> <mzninuv@0pointer.de>
Leonard König <leonard.r.koenig@googlemail.com>
Luca BRUNO <luca.bruno@coreos.com>
Luis Felipe Strano Moraes <luis.strano@gmail.com> <lfelipe@profusion.mobi>
Lukáš Nykrýn <lnykryn@redhat.com>
Lukáš Říha <cedel@centrum.cz>
Mao Huang <littlecvr@gmail.com>
Marc-André Lureau <marcandre.lureau@gmail.com>
Marco d'Itri <md@linux.it> <md@Linux.IT>
Marcus Cooper <marcusc@axis.com> <codekipper@gmail.com>
Mario Limonciello <mario_limonciello@dell.com> <Mario_Limonciello@dell.com>
Martin Pitt <martin@piware.de> <martinpitt@users.noreply.github.com>
Martin Pitt <martinpitt@gnome.org>
Martin Pitt <martinpitt@gnome.org> <martin.pitt@ubuntu.com>
Martin Steuer <martinsteuer@gmx.de>
Marty Plummer <ntzrmtthihu777@gmail.com>
Matthew Leeds <matthew.leeds@endlessm.com> <mwl458@gmail.com>
Matthew McGinn <mamcgi@gmail.com> <xginn8@users.noreply.github.com>
Matthias Clasen <mclasen@redhat.com> <matthias.clasen@gmail.com>
Matthias-Christian Ott <ott@mirix.org> <ott@users.noreply.github.com>
Michael Biebl <biebl@debian.org> <mbiebl@gmail.com>
Michael Buesch <mbuesch@freenet.de>
Michael Hoy <rimmington@gmail.com>
Michael Olbrich <m.olbrich@pengutronix.de>
Michael Trapp <michael.trapp@sap.com>
Michal Sekletár <msekleta@redhat.com>
Michal Sekletár <msekleta@redhat.com> <msekletar@users.noreply.github.com>
Michal Soltys <soltys@ziu.info> <nozo@ziu.info>
Michal Suchanek <msuchanek@suse.de> <hramrach@gmail.com>
Michał Szczepański <skrzatu@hotmail.com> <skrzatu@gmail.com>
Michel Kraus <github@demonsphere.de> <27o@users.noreply.github.com>
Michele Guerini Rocco <rnhmjoj@inventati.org>
Mike Auty <mike.auty@gmail.com>
Miklos Vajna <vmiklos@frugalware.org> <vmiklos@gmail.com>
Milan Pässler <me@petabyteboy.de>
Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
Niklas Tibbling <niklasti@axis.com> <45659916+tibbling@users.noreply.github.com>
Nikolas Nyby <nnyby@columbia.edu>
Nogisaka Sadata <ngsksdt@gmail.com>
Olaf Hering <olh@suse.de>
Omojola Joshua <omojolajoshua@gmail.com>
Omojola Joshua <omojolajoshua@gmail.com> <109356020+1awesomeJ@users.noreply.github.com>
Otto Wallenius <otto_026@hotmail.com>
Pablo Lezaeta Reyes <prflr88@gmail.com>
Paolo Giangrandi <paolo@luccalug.it>
Patrick Mansfield <patmans@us.ibm.com>
Patryk Kocielnik <longer44@gmail.com>
Paul Mundt <lethal@linux-sh.org>
Pavel Hrdina <phrdina@redhat.com>
Perry Yuan <perry_yuan@dell.com>
Peter D'Hoye <peter.dhoye@gmail.com>
Piotr Szydełko <wiertel@users.sourceforge.net>
Piter PUNK <piterpunk@slackware.com> <piterpk@terra.com.br>
Reid Price <reid.price@gmail.com>
Reinhold Mueller <mueller.reinhold@web.de>
Richard Hughes <richard@hughsie.com> <hughsient@gmail.com>
Richard W.M. Jones <rjones@redhat.com>
Robby Workman <rw@rlworkman.net> <rworkman@slackware.com>
Robert Gerus <ar@bash.org.pl> Robert "arachnist" Gerus <ar@bash.org.pl>
Robert Kolchmeyer <rkolchmeyer@google.com> <rkolchmeyer@users.noreply.github.com>
Robert Love <rml@tech9.net>
Roger James <roger@beardandsandals.co.uk>
Roman Stingler <coolx67@gmx.at>
Ronald Tschalär <ronald@innovation.ch>
Rubén Suárez Alvarez <rubensa@tluportatil082> <rubensa@gmail.com>
Salvo Tomaselli <ltworf@users.noreply.github.com>
Sandy Carter <bwrsandman@gmail.com>
Scott James Remnant <scott@netsplit.com>
Scott James Remnant <scott@netsplit.com>  <scott@ubuntu.com>
Seraphime Kirkovski <kirkseraph@gmail.com>
Shawn Landden <shawnlandden@gmail.com> <shawn@churchofgit.com>
Shawn Landden <slandden@gmail.com>
Shawn Landden <slandden@gmail.com> <shawn@git.icu>
Silvio Knizek <killermoehre@gmx.net>
Simon Peeters <peeters.simon@gmail.com>
Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Stanislav Angelovič <angelovic.s@gmail.com>
Stasiek Michalski <hellcp@opensuse.org>
Stefan Pietsch <mail.ipv4v6@gmail.com>
Stefan Schweter <stefan@schweter.it>
Stephan Edel <se@se-it.eu>
Stuart McLaren <stuart.mclaren@hp.com>
Susant Sahani <ssahani@gmail.com> <145210+ssahani@users.noreply.github.com>
Susant Sahani <ssahani@gmail.com> <susant@redhat.com>
Sylvain Plantefeve <sylvain.plantefeve@gmail.com>
Sébastien Bacher <seb128@ubuntu.com>
Tanu Kaskinen <TanuKaskinen@web>
Ted Ts'o <tytso@mit.edu>
Ted Wood <ted.l.wood@gmail.com>
Ted Wood <ted@mailchimp.com>
Thomas Blume <Thomas.Blume@suse.com>
Thomas H. P. Andersen <phomes@gmail.com>
Tiago Levit <liamgliam@gmail.com>
Tibor Nagy <xnagytibor@gmail.com>
Tinu Weber <takeya@bluewin.ch>
Tobias Jungel <tobias.jungel@bisdn.de> <Tobias.Jungel@gmail.com>
Tobias Klauser <tklauser@access.unizh.ch>
Tobias Klauser <tklauser@access.unizh.ch> <klauser@access.unizh.ch>
Tobias Klauser <tklauser@access.unizh.ch> <tklauser@access.unizh.chbk>
Tobias Klauser <tklauser@access.unizh.ch> <tklauser@distanz.ch>
Tobias Klauser <tklauser@distanz.ch> <tklauser@nuerscht.ch>
Tom Rini <trini@kernel.crashing.org>
Tom Yan <tom.ty89@gmail.com>
Tomasz Bachorski <tomasz.bachorski@x7f.io> <34866781+nulsoh@users.noreply.github.com>
Tomasz Pala <gotar@polanet.pl>
Torsten Hilbrich <torsten.hilbrich@gmx.net>
Umut Tezduyar Lindskog <umut@tezduyar.com>
Vasilis Liaskovitis <vliaskov@gmail.com>
Viktar Vaŭčkievič <victorenator@gmail.com>
Vladislav Vishnyakov <split7fire@yandex.ru>
Weblate <noreply@weblate.org>
William Jon McCann <jmccann@redhat.com> <william.jon.mccann@gmail.com>
Wim van Mourik <wvanmourik@computest.nl> <githubw@use.startmail.com>
Yann E. Morin <yann.morin.1998@free.fr>
Yao Wei (魏銘廷) <yao.wei@canonical.com>
Yi Gao <ymuemc@163.com>
Yin Kangkai <kangkai.yin@intel.com> <kangkai.yin@linux.intel.com>
Zachary Winnerman <33329648+winnerman-pythian@users.noreply.github.com>
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> <you@example.com>
msizanoen <msizanoen@qtmlabs.xyz>
Łukasz Stelmach <l.stelmach@samsung.com> <stlman@poczta.fm>
Дамјан Георгиевски <gdamjan@gmail.com>


================================================
FILE: .packit.yml
================================================
---
# vi:ts=2 sw=2 et:
#
# Docs: https://packit.dev/docs/

specfile_path: .packit_rpm/systemd.spec
files_to_sync:
  - .packit.yml
  - src: .packit_rpm/systemd.spec
    dest: systemd.spec
upstream_package_name: systemd
downstream_package_name: systemd
# `git describe` returns in systemd's case 'v245-xxx' which breaks RPM version
# detection (that expects 245-xxxx'). Let's tweak the version string accordingly
upstream_tag_template: "v{version}"
srpm_build_deps: []

actions:
  get-current-version:
    # Show the closest matching tag for the checked out revision, otherwise
    # Packit tries to get the latest tag by creation date, which doesn't work
    # well in the systemd-stable repo. We also need to sanitize it manually
    # since "upstream_tag_template" defined above doesn't apply here.
    - "bash -ec 'git describe --tags --abbrev=0 | cut -b 2-'"

  post-upstream-clone:
    # Use the Fedora 40 specfile
    - "git clone --branch f40 https://src.fedoraproject.org/rpms/systemd .packit_rpm --depth=1"
    # Drop the "sources" file so rebase-helper doesn't think we're a dist-git
    - "rm -fv .packit_rpm/sources"
    # Drop backported patches from the specfile, but keep the downstream-only ones
    # - Patch(0000-0499): backported patches from upstream
    # - Patch0500-9999: downstream-only patches
    - "sed -ri '/^Patch(0[0-4]?[0-9]{0,2})?\\:.+\\.patch/d' .packit_rpm/systemd.spec"
    # Build the RPM with --werror. Even though --werror doesn't work in all
    # cases (see [0]), we can't use -Dc_args=/-Dcpp_args= here because of the
    # RPM hardening macros, that use $CFLAGS/$CPPFLAGS (see [1]).
    #
    # [0] https://github.com/mesonbuild/meson/issues/7360
    # [1] https://github.com/systemd/systemd/pull/18908#issuecomment-792250110
    - 'sed -i "/^CONFIGURE_OPTS=(/a--werror" .packit_rpm/systemd.spec'
    # Ignore unpackages standalone binaries
    - "sed -i 's/assert False,.*/pass/' .packit_rpm/split-files.py"

jobs:
- job: copr_build
  trigger: pull_request
  targets:
  - fedora-40-aarch64
  - fedora-40-i386
  - fedora-40-ppc64le
  - fedora-40-s390x
  - fedora-40-x86_64

- job: tests
  trigger: pull_request
  fmf_url: https://src.fedoraproject.org/tests/systemd
  fmf_ref: legacy-ci
  tmt_plan: ci
  targets:
  - fedora-40-x86_64


================================================
FILE: .pylintrc
================================================
[MAIN]
extension-pkg-allow-list=lxml

[MESSAGES CONTROL]
disable=fixme,
        invalid-name,
        line-too-long,
        missing-class-docstring,
        missing-docstring,
        missing-function-docstring,
        missing-module-docstring,
        too-few-public-methods,
        too-many-arguments,
        too-many-boolean-expressions,
        too-many-branches,
        too-many-instance-attributes,
        too-many-instance-attributes,
        too-many-lines,
        too-many-locals,
        too-many-public-methods,
        too-many-return-statements,
        too-many-statements,
        unspecified-encoding,


================================================
FILE: .semaphore/semaphore-runner.sh
================================================
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later

set -eux
set -o pipefail

# default to Debian testing
DISTRO="${DISTRO:-debian}"
RELEASE="${RELEASE:-bookworm}"
SALSA_URL="${SALSA_URL:-https://salsa.debian.org/systemd-team/systemd.git}"
BRANCH="${BRANCH:-upstream-ci}"
ARCH="${ARCH:-amd64}"
CONTAINER="${RELEASE}-${ARCH}"
CACHE_DIR=/var/tmp
TMPDIR=/var/tmp
AUTOPKGTEST_DIR="${CACHE_DIR}/autopkgtest"
# semaphore cannot expose these, but useful for interactive/local runs
ARTIFACTS_DIR=/tmp/artifacts
# shellcheck disable=SC2206
PHASES=(${@:-SETUP RUN})
UBUNTU_RELEASE="$(lsb_release -cs)"

create_container() {
    sudo lxc-create -n "$CONTAINER" -t download -- -d "$DISTRO" -r "$RELEASE" -a "$ARCH"

    # unconfine the container, otherwise some tests fail
    echo 'lxc.apparmor.profile = unconfined' | sudo tee -a "/var/lib/lxc/$CONTAINER/config"

    sudo lxc-start -n "$CONTAINER"

    # enable source repositories so that apt-get build-dep works
    sudo lxc-attach -n "$CONTAINER" -- sh -ex <<EOF
sed 's/^deb/deb-src/' /etc/apt/sources.list >>/etc/apt/sources.list.d/sources.list
# We might attach the console too soon
until systemctl --quiet --wait is-system-running; do sleep 1; done
# Manpages database trigger takes a lot of time and is not useful in a CI
echo 'man-db man-db/auto-update boolean false' | debconf-set-selections
# Speed up dpkg, image is thrown away after the test
mkdir -p /etc/dpkg/dpkg.cfg.d/
echo 'force-unsafe-io' >/etc/dpkg/dpkg.cfg.d/unsafe_io
# For some reason, it is necessary to run this manually or the interface won't be configured
# Note that we avoid networkd, as some of the tests will break it later on
dhclient
apt-get -q --allow-releaseinfo-change update
apt-get -y dist-upgrade
apt-get install -y eatmydata
# The following four are needed as long as these deps are not covered by Debian's own packaging
apt-get install -y fdisk tree libfdisk-dev libp11-kit-dev libssl-dev libpwquality-dev rpm
apt-get purge --auto-remove -y unattended-upgrades
systemctl unmask systemd-networkd
systemctl enable systemd-networkd
EOF
    sudo lxc-stop -n "$CONTAINER"
}

for phase in "${PHASES[@]}"; do
    case "$phase" in
        SETUP)
            # remove semaphore repos, some of them don't work and cause error messages
            sudo rm -rf /etc/apt/sources.list.d/*

            # enable backports for latest LXC
            echo "deb http://archive.ubuntu.com/ubuntu $UBUNTU_RELEASE-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/backports.list
            sudo apt-get -q update
            sudo apt-get install -y -t "$UBUNTU_RELEASE-backports" lxc
            sudo apt-get install -y python3-debian git dpkg-dev fakeroot python3-jinja2

            [ -d "$AUTOPKGTEST_DIR" ] || git clone --quiet --depth=1 https://salsa.debian.org/ci-team/autopkgtest.git "$AUTOPKGTEST_DIR"

            create_container
        ;;
        RUN)
            # add current debian/ packaging
            git fetch --depth=1 "$SALSA_URL" "$BRANCH"
            git checkout FETCH_HEAD debian

            # craft changelog
            UPSTREAM_VER="$(git describe | sed 's/^v//;s/-/./g')"
            cat <<EOF >debian/changelog.new
systemd (${UPSTREAM_VER}.0) UNRELEASED; urgency=low

  * Automatic build for upstream test

 -- systemd test <pkg-systemd-maintainers@lists.alioth.debian.org>  $(date -R)

EOF
            cat debian/changelog >>debian/changelog.new
            mv debian/changelog.new debian/changelog

            # clean out patches
            rm -rf debian/patches
            # disable autopkgtests which are not for upstream
            sed -i '/# NOUPSTREAM/ q' debian/tests/control
            # enable more unit tests
            sed -i '/^CONFFLAGS =/ s/=/= --werror /' debian/rules
            # no orig tarball
            echo '1.0' >debian/source/format

            # build source package
            dpkg-buildpackage -S -I -I"$(basename "$CACHE_DIR")" -d -us -uc -nc

            # now build the package and run the tests
            rm -rf "$ARTIFACTS_DIR"
            # autopkgtest exits with 2 for "some tests skipped", accept that
            sudo TMPDIR=/var/tmp "$AUTOPKGTEST_DIR/runner/autopkgtest" --env DEB_BUILD_OPTIONS="noudeb nostrip nodoc optimize=-lto" \
                                                       --env DPKG_DEB_COMPRESSOR_TYPE="none" \
                                                       --env DEB_BUILD_PROFILES="noudeb nodoc" \
                                                       --env TEST_UPSTREAM=1 \
                                                       ../systemd_*.dsc \
                                                       -o "$ARTIFACTS_DIR" \
                                                       -- lxc -s "$CONTAINER" \
                || [ $? -eq 2 ]
        ;;
        *)
            echo >&2 "Unknown phase '$phase'"
            exit 1
    esac
done


================================================
FILE: .semaphore/semaphore.yml
================================================
---
# SPDX-License-Identifier: LGPL-2.1-or-later
# vi: ts=2 sw=2 et:

version: v1.0
name: Debian autopkgtest (LXC)
agent:
  machine:
    type: e1-standard-2
    os_image: ubuntu2004

# Cancel any running or queued job for the same ref
auto_cancel:
  running:
    when: "true"

execution_time_limit:
  hours: 2

blocks:
  - name: "Setup & test"
    task:
      jobs:
        - name: "Install dependencies & run the Debian autopkgtest"
          commands:
            - checkout --use-cache
            - .semaphore/semaphore-runner.sh SETUP
            - .semaphore/semaphore-runner.sh RUN


================================================
FILE: .vimrc
================================================
" 'set exrc' in ~/.vimrc will read .vimrc from the current directory
" Warning: Enabling exrc is dangerous! You can do nearly everything from a
" vimrc configuration file, including write operations and shell execution.
" You should consider setting 'set secure' as well, which is highly
" recommended!

" Note that we set a line width of 109 for .c and XML files, but for everything
" else (such as journal catalog files, unit files, README files) we stick to a
" more conservative 79 characters.

" NOTE: If you update this file make sure to update .dir-locals.el and
" .editorconfig, too.

set tabstop=8
set shiftwidth=8
set expandtab
set makeprg=GCC_COLORS=\ make
set tw=79
au BufRead,BufNewFile *.xml set tw=109 shiftwidth=2 smarttab
au FileType sh set tw=109 shiftwidth=4 smarttab
au FileType c set tw=109 shiftwidth=8


================================================
FILE: .ycm_extra_conf.py
================================================
#!/usr/bin/env python

# SPDX-License-Identifier: Unlicense
#
# Based on the template file provided by the 'YCM-Generator' project authored by
# Reuben D'Netto.
# Jiahui Xie has re-reformatted and expanded the original script in accordance
# to the requirements of the PEP 8 style guide and 'systemd' project,
# respectively.
#
# The original license is preserved as it is.
#
#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a compiled
# binary, for any purpose, commercial or non-commercial, and by any
# means.
#
# In jurisdictions that recognize copyright laws, the author or authors
# of this software dedicate any and all copyright interest in the
# software to the public domain. We make this dedication for the benefit
# of the public at large and to the detriment of our heirs and
# successors. We intend this dedication to be an overt act of
# relinquishment in perpetuity of all present and future rights to this
# software under copyright law.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# For more information, please refer to <http://unlicense.org/>

"""
YouCompleteMe configuration file tailored to support the 'meson' build system
used by the 'systemd' project.
"""

import glob
import os
import ycm_core


SOURCE_EXTENSIONS = (".C", ".cpp", ".cxx", ".cc", ".c", ".m", ".mm")
HEADER_EXTENSIONS = (".H", ".h", ".hxx", ".hpp", ".hh")


def DirectoryOfThisScript():
    """
    Return the absolute path of the parent directory containing this
    script.
    """
    return os.path.dirname(os.path.abspath(__file__))


def GuessBuildDirectory():
    """
    Guess the build directory using the following heuristics:

    1. Returns the current directory of this script plus 'build'
    subdirectory in absolute path if this subdirectory exists.

    2. Otherwise, probes whether there exists any directory
    containing '.ninja_log' file two levels above the current directory;
    returns this single directory only if there is one candidate.
    """
    result = os.path.join(DirectoryOfThisScript(), "build")

    if os.path.exists(result):
        return result

    result = glob.glob(os.path.join(DirectoryOfThisScript(),
                                    "..", "..", "*", ".ninja_log"))

    if not result:
        return ""

    if 1 != len(result):
        return ""

    return os.path.split(result[0])[0]


def TraverseByDepth(root, include_extensions):
    """
    Return a set of child directories of the 'root' containing file
    extensions specified in 'include_extensions'.

    NOTE:
        1. The 'root' directory itself is excluded from the result set.
        2. No subdirectories would be excluded if 'include_extensions' is left
           to 'None'.
        3. Each entry in 'include_extensions' must begin with string '.'.
    """
    is_root = True
    result = set()
    # Perform a depth first top down traverse of the given directory tree.
    for root_dir, subdirs, file_list in os.walk(root):
        if not is_root:
            # print("Relative Root: ", root_dir)
            # print(subdirs)
            if include_extensions:
                get_ext = os.path.splitext
                subdir_extensions = {
                    get_ext(f)[-1] for f in file_list if get_ext(f)[-1]
                }
                if subdir_extensions & include_extensions:
                    result.add(root_dir)
            else:
                result.add(root_dir)
        else:
            is_root = False

    return result


_project_src_dir = os.path.join(DirectoryOfThisScript(), "src")
_include_dirs_set = TraverseByDepth(_project_src_dir, frozenset({".h"}))
flags = [
    "-x",
    "c"
    # The following flags are partially redundant due to the existence of
    # 'compile_commands.json'.
    #    '-Wall',
    #    '-Wextra',
    #    '-Wfloat-equal',
    #    '-Wpointer-arith',
    #    '-Wshadow',
    #    '-std=gnu99',
]

for include_dir in _include_dirs_set:
    flags.append("-I" + include_dir)

# Set this to the absolute path to the folder (NOT the file!) containing the
# compile_commands.json file to use that instead of 'flags'. See here for
# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
#
# You can get CMake to generate this file for you by adding:
#   set( CMAKE_EXPORT_COMPILE_COMMANDS 1 )
# to your CMakeLists.txt file.
#
# Most projects will NOT need to set this to anything; you can just change the
# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
compilation_database_folder = GuessBuildDirectory()

if os.path.exists(compilation_database_folder):
    database = ycm_core.CompilationDatabase(compilation_database_folder)
else:
    database = None


def MakeRelativePathsInFlagsAbsolute(flags, working_directory):
    """
    Iterate through 'flags' and replace the relative paths prefixed by
    '-isystem', '-I', '-iquote', '--sysroot=' with absolute paths
    start with 'working_directory'.
    """
    if not working_directory:
        return list(flags)
    new_flags = []
    make_next_absolute = False
    path_flags = ["-isystem", "-I", "-iquote", "--sysroot="]
    for flag in flags:
        new_flag = flag

        if make_next_absolute:
            make_next_absolute = False
            if not flag.startswith("/"):
                new_flag = os.path.join(working_directory, flag)

        for path_flag in path_flags:
            if flag == path_flag:
                make_next_absolute = True
                break

            if flag.startswith(path_flag):
                path = flag[len(path_flag):]
                new_flag = path_flag + os.path.join(working_directory, path)
                break

        if new_flag:
            new_flags.append(new_flag)
    return new_flags


def IsHeaderFile(filename):
    """
    Check whether 'filename' is considered as a header file.
    """
    extension = os.path.splitext(filename)[1]
    return extension in HEADER_EXTENSIONS


def GetCompilationInfoForFile(filename):
    """
    Helper function to look up compilation info of 'filename' in the 'database'.
    """
    # The compilation_commands.json file generated by CMake does not have
    # entries for header files. So we do our best by asking the db for flags for
    # a corresponding source file, if any. If one exists, the flags for that
    # file should be good enough.
    if not database:
        return None

    if IsHeaderFile(filename):
        basename = os.path.splitext(filename)[0]
        for extension in SOURCE_EXTENSIONS:
            replacement_file = basename + extension
            if os.path.exists(replacement_file):
                compilation_info = \
                    database.GetCompilationInfoForFile(replacement_file)
                if compilation_info.compiler_flags_:
                    return compilation_info
        return None
    return database.GetCompilationInfoForFile(filename)


def FlagsForFile(filename, **kwargs):
    """
    Callback function to be invoked by YouCompleteMe in order to get the
    information necessary to compile 'filename'.

    It returns a dictionary with a single element 'flags'. This element is a
    list of compiler flags to pass to libclang for the file 'filename'.
    """
    if database:
        # Bear in mind that compilation_info.compiler_flags_ does NOT return a
        # python list, but a "list-like" StringVec object
        compilation_info = GetCompilationInfoForFile(filename)
        if not compilation_info:
            return None

        final_flags = MakeRelativePathsInFlagsAbsolute(
            compilation_info.compiler_flags_,
            compilation_info.compiler_working_dir_)

    else:
        relative_to = DirectoryOfThisScript()
        final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to)

    return {
        "flags": final_flags,
        "do_cache": True
    }


================================================
FILE: LICENSE.GPL2
================================================
		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS

	    How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.


================================================
FILE: LICENSE.LGPL2.1
================================================
                  GNU LESSER GENERAL PUBLIC LICENSE
                       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

                  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.

  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

                            NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

                     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


================================================
FILE: LICENSES/BSD-2-Clause.txt
================================================
Copyright (c) <year> <owner> All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: LICENSES/BSD-3-Clause.txt
================================================
// Copyright 2014 The Chromium OS Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//    * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//    * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//    * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: LICENSES/CC0-1.0.txt
================================================
Creative Commons Legal Code

CC0 1.0 Universal

    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
    HEREUNDER.

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.

For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:

  i. the right to reproduce, adapt, distribute, perform, display,
     communicate, and translate a Work;
 ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
     likeness depicted in a Work;
 iv. rights protecting against unfair competition in regards to a Work,
     subject to the limitations in paragraph 4(a), below;
  v. rights protecting the extraction, dissemination, use and reuse of data
     in a Work;
 vi. database rights (such as those arising under Directive 96/9/EC of the
     European Parliament and of the Council of 11 March 1996 on the legal
     protection of databases, and under any national implementation
     thereof, including any amended or successor version of such
     directive); and
vii. other similar, equivalent or corresponding rights throughout the
     world based on applicable law or treaty, and any national
     implementations thereof.

2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.

3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.

4. Limitations and Disclaimers.

 a. No trademark or patent rights held by Affirmer are waived, abandoned,
    surrendered, licensed or otherwise affected by this document.
 b. Affirmer offers the Work as-is and makes no representations or
    warranties of any kind concerning the Work, express, implied,
    statutory or otherwise, including without limitation warranties of
    title, merchantability, fitness for a particular purpose, non
    infringement, or the absence of latent or other defects, accuracy, or
    the present or absence of errors, whether or not discoverable, all to
    the greatest extent permissible under applicable law.
 c. Affirmer disclaims responsibility for clearing rights of other persons
    that may apply to the Work or any use thereof, including without
    limitation any person's Copyright and Related Rights in the Work.
    Further, Affirmer disclaims responsibility for obtaining any necessary
    consents, permissions or other rights required for any use of the
    Work.
 d. Affirmer understands and acknowledges that Creative Commons is not a
    party to this document and has no duty or obligation with respect to
    this CC0 or use of the Work.


================================================
FILE: LICENSES/LGPL-2.0-or-later.txt
================================================
GNU LIBRARY GENERAL PUBLIC LICENSE

Version 2, June 1991

Copyright (C) 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the library GPL.  It is numbered 2 because it goes with version 2 of the ordinary GPL.]

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library.

Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license.

The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such.

Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better.

However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library.

Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you".

A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)

"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

     a) The modified work must itself be a software library.

     b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

     c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

     d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

     a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

     b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

     c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

     d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.

For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

     a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

     b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).

To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

     one line to give the library's name and an idea of what it does.
     Copyright (C) year  name of author

     This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

     This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public License for more details.

     You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in
the library `Frob' (a library for tweaking knobs) written
by James Random Hacker.

signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice

That's all there is to it!


================================================
FILE: LICENSES/Linux-syscall-note.txt
================================================
   NOTE! This copyright does *not* cover user programs that use kernel
 services by normal system calls - this is merely considered normal use
 of the kernel, and does *not* fall under the heading of "derived work".
 Also note that the GPL below is copyrighted by the Free Software
 Foundation, but the instance of code that it refers to (the Linux
 kernel) is copyrighted by me and others who actually wrote it.

 Also note that the only valid version of the GPL as far as the kernel
 is concerned is _this_ particular version of the license (ie v2, not
 v2.2 or v3.x or whatever), unless explicitly otherwise stated.

			Linus Torvalds


================================================
FILE: LICENSES/MIT-0.txt
================================================
MIT No Attribution

Copyright <YEAR> <COPYRIGHT HOLDER>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: LICENSES/MIT.txt
================================================
MIT License

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: LICENSES/OFL-1.1.txt
================================================
Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
with Reserved Font Name <Reserved Font Name>.
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
with Reserved Font Name <additional Reserved Font Name>.
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.


================================================
FILE: LICENSES/README.md
================================================
# systemd Project Licensing

## Main License

The systemd project uses single-line references to Unique License Identifiers as
defined by the Linux Foundation's SPDX project (https://spdx.org/). The line in
each individual source file identifies the license applicable to that file.

The current set of valid, predefined SPDX identifiers can be found on the SPDX
License List at https://spdx.org/licenses/.

The 'LICENSES/' directory contains all the licenses used by the sources included in
the systemd project source tree.

Unless otherwise noted, the systemd project sources are licensed under the terms
and conditions of
**LGPL-2.1-or-later** (**GNU Lesser General Public License v2.1 or later**).

Unless otherwise noted, compiled programs and all shared or static libraries
include sources under **LGPL-2.1-or-later** along with more permissive
licenses, and are effectively licensed **LGPL-2.1-or-later**.
systemd-udevd and other udev helper programs also include sources under
**GPL-2.0-or-later**, and are effectively licensed **GPL-2.0-or-later**.

New sources that cannot be distributed under LGPL-2.1-or-later will no longer
be accepted for inclusion in the systemd project to maintain license uniformity.

## Other Licenses

The following exceptions apply:

 * some sources under src/udev/ are licensed under **GPL-2.0-or-later**,
   so all udev programs (`systemd-udevd`, `udevadm`, and the udev builtins
   and test programs) are also distributed under **GPL-2.0-or-later**.
 * the header files contained in src/basic/linux/ and src/shared/linux/ are copied
   verbatim from the Linux kernel source tree and are licensed under **GPL-2.0 WITH
   Linux-syscall-note** and are used within the scope of the Linux-syscall-note
   exception provisions
 * the src/shared/initreq.h header is licensed under original license,
   **LGPL-2.0-or-later**.
 * the src/shared/linux/bpf_insn.h header is copied from the Linux kernel
   source tree and is licensed under either **BSD-2-Clause** or **GPL-2.0-only**,
   and thus is included in the systemd build under the BSD-2-Clause license.
 * The src/basic/linux/wireguard.h header is copied from the Linux kernel
   source tree and is licensed under either **MIT** or **GPL-2.0 WITH Linux-syscall-note**,
   and thus is included in the systemd build under the MIT license.
 * the following sources are licensed under the **MIT** license (in case of our
   scripts, to facilitate copying and reuse of those helpers to other projects):
   - hwdb.d/parse_hwdb.py
   - src/basic/linux/batman_adv.h
   - src/basic/sparse-endian.h
   - tools/catalog-report.py
 * the following sources are licensed under the **CC0-1.0** license:
   - src/basic/siphash24.c
   - src/basic/siphash24.h
 * the following sources are licensed under the **MIT-0** license:
   - all examples under man/
   - src/systemctl/systemd-sysv-install.SKELETON
   - config files and examples under /network
 * the following sources are under **Public Domain** (LicenseRef-murmurhash2-public-domain):
   - src/basic/MurmurHash2.c
   - src/basic/MurmurHash2.h
 * the following sources are under **Public Domain** (LicenseRef-lookup3-public-domain):
   - src/libsystemd/sd-journal/lookup3.c
   - src/libsystemd/sd-journal/lookup3.h
 * the tools/chromiumos/gen_autosuspend_rules.py script is licensed under the
   **BSD-3-Clause** license.
 * Heebo fonts under docs/fonts/ are licensed under the **SIL Open Font License 1.1**,
 * any files under test/ without an explicit license we assume non-copyrightable
   (eg: computer-generated fuzzer data)

## OpenSSL Notes

Note that building the systemd project with OpenSSL does not affect the libsystemd.so
shared library, which is not linked with the OpenSSL library.


================================================
FILE: LICENSES/lookup3-public-domain.txt
================================================
lookup3.c, by Bob Jenkins, May 2006, Public Domain.


================================================
FILE: LICENSES/murmurhash2-public-domain.txt
================================================
MurmurHash2 was written by Austin Appleby, and is placed in the public
domain. The author hereby disclaims copyright to this source code.


================================================
FILE: Makefile
================================================
# SPDX-License-Identifier: LGPL-2.1-or-later

all:
	ninja -C build

install:
	DESTDIR=$(DESTDIR) ninja -C build install


================================================
FILE: NEWS
================================================
systemd System and Service Manager

CHANGES WITH 255:

        Announcements of Future Feature Removals and Incompatible Changes:

        * Support for split-usr (/usr/ mounted separately during late boot,
          instead of being mounted by the initrd before switching to the rootfs)
          and unmerged-usr (parallel directories /bin/ and /usr/bin/, /lib/ and
          /usr/lib/, …) has been removed. For more details, see:
          https://lists.freedesktop.org/archives/systemd-devel/2022-September/048352.html

        * We intend to remove cgroup v1 support from a systemd release after
          the end of 2023. If you run services that make explicit use of
          cgroup v1 features (i.e. the "legacy hierarchy" with separate
          hierarchies for each controller), please implement compatibility with
          cgroup v2 (i.e. the "unified hierarchy") sooner rather than later.
          Most of Linux userspace has been ported over already.

        * Support for System V service scripts is now deprecated and will be
          removed in a future release. Please make sure to update your software
          *now* to include a native systemd unit file instead of a legacy
          System V script to retain compatibility with future systemd releases.

        * Support for the SystemdOptions EFI variable is deprecated.
          'bootctl systemd-efi-options' will emit a warning when used. It seems
          that this feature is little-used and it is better to use alternative
          approaches like credentials and confexts. The plan is to drop support
          altogether at a later point, but this might be revisited based on
          user feedback.

        * systemd-run's switch --expand-environment= which currently is disabled
          by default when combined with --scope, will be changed in a future
          release to be enabled by default.

        * "systemctl switch-root" is now restricted to initrd transitions only.

          Transitions between real systems should be done with
          "systemctl soft-reboot" instead.

        * The "ip=off" and "ip=none" kernel command line options interpreted by
          systemd-network-generator will now result in IPv6RA + link-local
          addressing being disabled, too. Previously DHCP was turned off, but
          IPv6RA and IPv6 link-local addressing was left enabled.

        * The NAMING_BRIDGE_MULTIFUNCTION_SLOT naming scheme has been deprecated
          and is now disabled.

        * SuspendMode=, HibernateState= and HybridSleepState= in the [Sleep]
          section of systemd-sleep.conf are now deprecated and have no effect.
          They did not (and could not) take any value other than the respective
          default. HybridSleepMode= is also deprecated, and will now always use
          the 'suspend' disk mode.

        Service Manager:

        * The way services are spawned has been overhauled. Previously, a
          process was forked that shared all of the manager's memory (via
          copy-on-write) while doing all the required setup (e.g.: mount
          namespaces, CGroup configuration, etc.) before exec'ing the target
          executable. This was problematic for various reasons: several glibc
          APIs were called that are not supposed to be used after a fork but
          before an exec, copy-on-write meant that if either process (the
          manager or the child) touched a memory page a copy was triggered, and
          also the memory footprint of the child process was that of the
          manager, but with the memory limits of the service. From this version
          onward, the new process is spawned using CLONE_VM and CLONE_VFORK
          semantics via posix_spawn(3), and it immediately execs a new internal
          binary, systemd-executor, that receives the configuration to apply
          via memfd, and sets up the process before exec'ing the target
          executable. The systemd-executor binary is pinned by file desc
Download .txt
Showing preview only (251K chars total). Download the full file or copy to clipboard to get everything.
gitextract_x6b84s7z/

├── .clang-format
├── .clusterfuzzlite/
│   └── Dockerfile
├── .ctags
├── .dir-locals.el
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   ├── advanced-issue-labeler.yml
│   ├── codeql-config.yml
│   ├── codeql-custom.qls
│   ├── codeql-queries/
│   │   ├── PotentiallyDangerousFunction.ql
│   │   ├── UninitializedVariableWithCleanup.ql
│   │   └── qlpack.yml
│   ├── dependabot.yml
│   ├── development-freeze.yml
│   ├── labeler.yml
│   └── workflows/
│       ├── build_test.sh
│       ├── build_test.yml
│       ├── cflite_pr.yml
│       ├── cifuzz.yml
│       ├── codeql.yml
│       ├── coverity.yml
│       ├── development_freeze.yml
│       ├── differential-shellcheck.yml
│       ├── gather-pr-metadata.yml
│       ├── issue_labeler.yml
│       ├── labeler.yml
│       ├── linter.yml
│       ├── make_release.yml
│       ├── mkosi.yml
│       ├── requirements.txt
│       ├── scorecards.yml
│       ├── unit_tests.sh
│       └── unit_tests.yml
├── .gitignore
├── .mailmap
├── .packit.yml
├── .pylintrc
├── .semaphore/
│   ├── semaphore-runner.sh
│   └── semaphore.yml
├── .vimrc
├── .ycm_extra_conf.py
├── LICENSE.GPL2
├── LICENSE.LGPL2.1
├── LICENSES/
│   ├── BSD-2-Clause.txt
│   ├── BSD-3-Clause.txt
│   ├── CC0-1.0.txt
│   ├── LGPL-2.0-or-later.txt
│   ├── Linux-syscall-note.txt
│   ├── MIT-0.txt
│   ├── MIT.txt
│   ├── OFL-1.1.txt
│   ├── README.md
│   ├── lookup3-public-domain.txt
│   └── murmurhash2-public-domain.txt
├── Makefile
├── NEWS
├── README
├── README.md
├── TODO
├── catalog/
│   ├── meson.build
│   ├── systemd.be.catalog.in
│   ├── systemd.be@latin.catalog.in
│   ├── systemd.bg.catalog.in
│   ├── systemd.catalog.in
│   ├── systemd.da.catalog.in
│   ├── systemd.de.catalog.in
│   ├── systemd.fr.catalog.in
│   ├── systemd.hr.catalog.in
│   ├── systemd.hu.catalog.in
│   ├── systemd.it.catalog.in
│   ├── systemd.ko.catalog.in
│   ├── systemd.pl.catalog.in
│   ├── systemd.pt_BR.catalog.in
│   ├── systemd.ru.catalog.in
│   ├── systemd.sr.catalog.in
│   ├── systemd.zh_CN.catalog.in
│   └── systemd.zh_TW.catalog.in
├── coccinelle/
│   ├── bool-cast.cocci
│   ├── close-above-stdio.cocci
│   ├── cmp.cocci
│   ├── cond-omit-middle.cocci
│   ├── const-strlen.disabled
│   ├── debug-logging.cocci
│   ├── div-round-up.cocci
│   ├── dup-fcntl.cocci
│   ├── empty-or-dash.cocci
│   ├── empty-or-root.cocci
│   ├── empty-to-null.cocci
│   ├── empty-to-root.cocci
│   ├── enotsup.cocci
│   ├── equals-null.cocci
│   ├── errno-check.cocci
│   ├── errno-wrapper.cocci
│   ├── errno.cocci
│   ├── exit-0.cocci
│   ├── flags-set.cocci
│   ├── fopen-unlocked.cocci
│   ├── free_and_replace.cocci
│   ├── hashmap_free.cocci
│   ├── htonl.cocci
│   ├── in_set.cocci
│   ├── iovec-make.cocci
│   ├── isempty.cocci
│   ├── log-json.cocci
│   ├── macros.h
│   ├── malloc_multiply.cocci
│   ├── mempcpy.cocci
│   ├── memzero.cocci
│   ├── mfree.cocci
│   ├── mfree_return.cocci
│   ├── no-if-assignments.cocci
│   ├── not_in_set.cocci
│   ├── o-ndelay.cocci
│   ├── reallocarray.cocci
│   ├── redundant-if.cocci
│   ├── run-coccinelle.sh
│   ├── safe_close-no-if.cocci
│   ├── safe_close.cocci
│   ├── safe_closedir.cocci
│   ├── safe_fclose.cocci
│   ├── sd_event_source_disable_unref.cocci
│   ├── set_ensure_put.cocci
│   ├── strdupa.cocci
│   ├── strempty.cocci
│   ├── strjoin.cocci
│   ├── strjoina.cocci
│   ├── strv_free.cocci
│   ├── swap-two.cocci
│   ├── synthetic-errno.cocci
│   ├── take-fd.cocci
│   ├── take-ptr.cocci
│   ├── timestamp-is-set.cocci
│   ├── while-true.cocci
│   ├── xsprintf.cocci
│   └── zz-drop-braces.cocci
├── configure
├── docs/
│   ├── .gitattributes
│   ├── .gitignore
│   ├── API_FILE_SYSTEMS.md
│   ├── ARCHITECTURE.md
│   ├── AUTOMATIC_BOOT_ASSESSMENT.md
│   ├── AUTOPKGTEST.md
│   ├── BACKPORTS.md
│   ├── BLOCK_DEVICE_LOCKING.md
│   ├── BOOT.md
│   ├── BOOT_LOADER_INTERFACE.md
│   ├── BOOT_LOADER_SPECIFICATION.md
│   ├── BUILDING_IMAGES.md
│   ├── CATALOG.md
│   ├── CGROUP_DELEGATION.md
│   ├── CODE_OF_CONDUCT.md
│   ├── CODE_QUALITY.md
│   ├── CODING_STYLE.md
│   ├── CONTAINER_INTERFACE.md
│   ├── CONTRIBUTING.md
│   ├── CONTROL_GROUP_INTERFACE.md
│   ├── CONVERTING_TO_HOMED.md
│   ├── COREDUMP.md
│   ├── COREDUMP_PACKAGE_METADATA.md
│   ├── CREDENTIALS.md
│   ├── DAEMON_SOCKET_ACTIVATION.md
│   ├── DEBUGGING.md
│   ├── DESKTOP_ENVIRONMENTS.md
│   ├── DISCOVERABLE_PARTITIONS.md
│   ├── DISTRO_PORTING.md
│   ├── ELF_DLOPEN_METADATA.md
│   ├── ELF_PACKAGE_METADATA.md
│   ├── ENVIRONMENT.md
│   ├── FAQ.md
│   ├── FILE_DESCRIPTOR_STORE.md
│   ├── GROUP_RECORD.md
│   ├── HACKING.md
│   ├── HOME_DIRECTORY.md
│   ├── INCOMPATIBILITIES.md
│   ├── INHIBITOR_LOCKS.md
│   ├── INITRD_INTERFACE.md
│   ├── JOURNAL_EXPORT_FORMATS.md
│   ├── JOURNAL_FILE_FORMAT.md
│   ├── JOURNAL_NATIVE_PROTOCOL.md
│   ├── MEMORY_PRESSURE.md
│   ├── MINIMAL_BUILDS.md
│   ├── MOUNT_REQUIREMENTS.md
│   ├── MY_SERVICE_CANT_GET_REATLIME.md
│   ├── NETWORK_ONLINE.md
│   ├── OPTIMIZATIONS.md
│   ├── PASSWORD_AGENTS.md
│   ├── PAX_CONTROL_GROUPS.md
│   ├── PORTABILITY_AND_STABILITY.md
│   ├── PORTABLE_SERVICES.md
│   ├── PORTING_TO_NEW_ARCHITECTURES.md
│   ├── PREDICTABLE_INTERFACE_NAMES.md
│   ├── PRESET.md
│   ├── RANDOM_SEEDS.md
│   ├── RELEASE.md
│   ├── RESOLVED-VPNS.md
│   ├── ROOT_STORAGE_DAEMONS.md
│   ├── SECURITY.md
│   ├── SEPARATE_USR_IS_BROKEN.md
│   ├── SYSLOG.md
│   ├── SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md
│   ├── TEMPORARY_DIRECTORIES.md
│   ├── TESTING_WITH_SANITIZERS.md
│   ├── THE_CASE_FOR_THE_USR_MERGE.md
│   ├── TIPS_AND_TRICKS.md
│   ├── TPM2_PCR_MEASUREMENTS.md
│   ├── TRANSIENT-SETTINGS.md
│   ├── TRANSLATORS.md
│   ├── UIDS-GIDS.md
│   ├── USERDB_AND_DESKTOPS.md
│   ├── USER_GROUP_API.md
│   ├── USER_NAMES.md
│   ├── USER_RECORD.md
│   ├── VIRTUALIZED_TESTING.md
│   ├── WRITING_DESKTOP_ENVIRONMENTS.md
│   ├── WRITING_DISPLAY_MANAGERS.md
│   ├── WRITING_NETWORK_CONFIGURATION_MANAGERS.md
│   ├── WRITING_RESOLVER_CLIENTS.md
│   ├── WRITING_VM_AND_CONTAINER_MANAGERS.md
│   ├── _config.yml
│   ├── _data/
│   │   └── extra_pages.json
│   ├── _includes/
│   │   ├── footer.html
│   │   ├── head.html
│   │   └── header.html
│   ├── _layouts/
│   │   ├── default.html
│   │   └── forward.html
│   ├── index.md
│   ├── style.css
│   ├── sysvinit/
│   │   ├── README.in
│   │   └── meson.build
│   └── var-log/
│       ├── README.logs
│       └── meson.build
├── factory/
│   ├── etc/
│   │   ├── issue
│   │   ├── nsswitch.conf
│   │   └── pam.d/
│   │       ├── other
│   │       └── system-auth
│   └── templates/
│       ├── locale.conf.in
│       ├── meson.build
│       └── vconsole.conf.in
├── hwdb.d/
│   ├── .gitattributes
│   ├── .gitignore
│   ├── 20-OUI.hwdb
│   ├── 20-acpi-vendor.hwdb
│   ├── 20-acpi-vendor.hwdb.patch
│   ├── 20-bluetooth-vendor-product.hwdb
│   ├── 20-dmi-id.hwdb
│   ├── 20-net-ifname.hwdb
│   ├── 20-pci-classes.hwdb
│   ├── 20-pci-vendor-model.hwdb
│   ├── 20-sdio-classes.hwdb
│   ├── 20-sdio-vendor-model.hwdb
│   ├── 20-usb-classes.hwdb
│   ├── 20-usb-vendor-model.hwdb
│   ├── 20-vmbus-class.hwdb
│   ├── 60-autosuspend-fingerprint-reader.hwdb
│   ├── 60-autosuspend.hwdb
│   ├── 60-evdev.hwdb
│   ├── 60-input-id.hwdb
│   ├── 60-keyboard.hwdb
│   ├── 60-seat.hwdb
│   ├── 60-sensor.hwdb
│   ├── 70-analyzers.hwdb
│   ├── 70-av-production.hwdb
│   ├── 70-cameras.hwdb
│   ├── 70-hardware-wallets.hwdb
│   ├── 70-joystick.hwdb
│   ├── 70-lights.hwdb
│   ├── 70-maker-tools.hwdb
│   ├── 70-mouse.hwdb
│   ├── 70-pda.hwdb
│   ├── 70-pointingstick.hwdb
│   ├── 70-software-radio.hwdb
│   ├── 70-sound-card.hwdb
│   ├── 70-touchpad.hwdb
│   ├── 80-ieee1394-unit-function.hwdb
│   ├── 82-net-auto-link-local.hwdb
│   ├── README
│   ├── acpi-update.py
│   ├── acpi_id_registry.csv
│   ├── ids_parser.py
│   ├── ma-large.txt
│   ├── ma-medium.txt
│   ├── ma-small.txt
│   ├── meson.build
│   ├── parse_hwdb.py
│   ├── pci.ids
│   ├── pnp_id_registry.csv
│   ├── sdio.ids
│   └── usb.ids
├── man/
│   ├── .dir-locals.el
│   ├── 50-xdg-data-dirs.sh
│   ├── 90-rearrange-path.py
│   ├── binfmt.d.xml
│   ├── bootctl.xml
│   ├── bootup.xml
│   ├── busctl.xml
│   ├── cgroup-sandboxing.xml
│   ├── check-os-release-simple.py
│   ├── check-os-release.py
│   ├── check-os-release.sh
│   ├── common-variables.xml
│   ├── coredump.conf.xml
│   ├── coredumpctl.xml
│   ├── crypttab.xml
│   ├── custom-entities.ent.in
│   ├── custom-html.xsl
│   ├── custom-man.xsl
│   ├── daemon.xml
│   ├── directives-template.xml
│   ├── dnssec-trust-anchors.d.xml
│   ├── environment.d.xml
│   ├── event-quick-child.c
│   ├── fido2-crypttab.sh
│   ├── file-hierarchy.xml
│   ├── glib-event-glue.c
│   ├── homectl.xml
│   ├── homed.conf.xml
│   ├── hostname.xml
│   ├── hostnamectl.xml
│   ├── html.in
│   ├── hwdb-usb-device.c
│   ├── hwdb.xml
│   ├── id128-app-specific.c
│   ├── inotify-watch-tmp.c
│   ├── integritytab.xml
│   ├── iocost.conf.xml
│   ├── journal-enumerate-fields.c
│   ├── journal-iterate-foreach.c
│   ├── journal-iterate-poll.c
│   ├── journal-iterate-unique.c
│   ├── journal-iterate-wait.c
│   ├── journal-remote.conf.xml
│   ├── journal-stream-fd.c
│   ├── journal-upload.conf.xml
│   ├── journalctl.xml
│   ├── journald.conf.xml
│   ├── kernel-command-line.xml
│   ├── kernel-install.xml
│   ├── libsystemd-pkgconfig.xml
│   ├── libsystemd.xml
│   ├── libudev.xml
│   ├── loader.conf.xml
│   ├── locale.conf.xml
│   ├── localectl.xml
│   ├── localtime.xml
│   ├── logcontrol-example.c
│   ├── loginctl.xml
│   ├── logind.conf.xml
│   ├── machine-id.xml
│   ├── machine-info.xml
│   ├── machinectl.xml
│   ├── man.in
│   ├── meson.build
│   ├── modules-load.d.xml
│   ├── networkctl.xml
│   ├── networkd.conf.xml
│   ├── notify-selfcontained-example.c
│   ├── nss-myhostname.xml
│   ├── nss-mymachines.xml
│   ├── nss-resolve.xml
│   ├── nss-systemd.xml
│   ├── oomctl.xml
│   ├── oomd.conf.xml
│   ├── org.freedesktop.LogControl1.xml
│   ├── org.freedesktop.home1.xml
│   ├── org.freedesktop.hostname1.xml
│   ├── org.freedesktop.import1.xml
│   ├── org.freedesktop.locale1.xml
│   ├── org.freedesktop.login1.xml
│   ├── org.freedesktop.machine1.xml
│   ├── org.freedesktop.network1.xml
│   ├── org.freedesktop.oom1.xml
│   ├── org.freedesktop.portable1.xml
│   ├── org.freedesktop.resolve1.xml
│   ├── org.freedesktop.systemd1.xml
│   ├── org.freedesktop.timedate1.xml
│   ├── os-release.xml
│   ├── pam_systemd.xml
│   ├── pam_systemd_home.xml
│   ├── pam_systemd_loadkey.xml
│   ├── path-documents.c
│   ├── portablectl.xml
│   ├── poweroff.xml
│   ├── print-unit-path-call-method.c
│   ├── print-unit-path.c
│   ├── pstore.conf.xml
│   ├── repart.d.xml
│   ├── resolvectl.xml
│   ├── resolved.conf.xml
│   ├── rules/
│   │   └── meson.build
│   ├── runlevel.xml
│   ├── sd-bus-container-append.c
│   ├── sd-bus-container-read.c
│   ├── sd-bus-errors.xml
│   ├── sd-bus.xml
│   ├── sd-daemon.xml
│   ├── sd-device.xml
│   ├── sd-event.xml
│   ├── sd-hwdb.xml
│   ├── sd-id128.xml
│   ├── sd-journal.xml
│   ├── sd-login.xml
│   ├── sd_booted.xml
│   ├── sd_bus_add_match.xml
│   ├── sd_bus_add_node_enumerator.xml
│   ├── sd_bus_add_object.xml
│   ├── sd_bus_add_object_manager.xml
│   ├── sd_bus_attach_event.xml
│   ├── sd_bus_call.xml
│   ├── sd_bus_call_method.xml
│   ├── sd_bus_can_send.xml
│   ├── sd_bus_close.xml
│   ├── sd_bus_creds_get_pid.xml
│   ├── sd_bus_creds_new_from_pid.xml
│   ├── sd_bus_default.xml
│   ├── sd_bus_emit_signal.xml
│   ├── sd_bus_enqueue_for_read.xml
│   ├── sd_bus_error-example.c
│   ├── sd_bus_error.xml
│   ├── sd_bus_error_add_map.xml
│   ├── sd_bus_get_current_handler.xml
│   ├── sd_bus_get_fd.xml
│   ├── sd_bus_get_n_queued_read.xml
│   ├── sd_bus_get_name_creds.xml
│   ├── sd_bus_get_name_machine_id.xml
│   ├── sd_bus_interface_name_is_valid.xml
│   ├── sd_bus_is_open.xml
│   ├── sd_bus_list_names.xml
│   ├── sd_bus_message_append.xml
│   ├── sd_bus_message_append_array.xml
│   ├── sd_bus_message_append_basic.xml
│   ├── sd_bus_message_append_string_memfd.xml
│   ├── sd_bus_message_append_strv.xml
│   ├── sd_bus_message_at_end.xml
│   ├── sd_bus_message_copy.xml
│   ├── sd_bus_message_dump.xml
│   ├── sd_bus_message_get_cookie.xml
│   ├── sd_bus_message_get_monotonic_usec.xml
│   ├── sd_bus_message_get_signature.xml
│   ├── sd_bus_message_get_type.xml
│   ├── sd_bus_message_new.xml
│   ├── sd_bus_message_new_method_call.xml
│   ├── sd_bus_message_new_method_error.xml
│   ├── sd_bus_message_new_signal.xml
│   ├── sd_bus_message_open_container.xml
│   ├── sd_bus_message_read.xml
│   ├── sd_bus_message_read_array.xml
│   ├── sd_bus_message_read_basic.xml
│   ├── sd_bus_message_read_strv.xml
│   ├── sd_bus_message_rewind.xml
│   ├── sd_bus_message_seal.xml
│   ├── sd_bus_message_sensitive.xml
│   ├── sd_bus_message_set_destination.xml
│   ├── sd_bus_message_set_expect_reply.xml
│   ├── sd_bus_message_skip.xml
│   ├── sd_bus_message_verify_type.xml
│   ├── sd_bus_negotiate_fds.xml
│   ├── sd_bus_new.xml
│   ├── sd_bus_path_encode.xml
│   ├── sd_bus_process.xml
│   ├── sd_bus_query_sender_creds.xml
│   ├── sd_bus_reply_method_error.xml
│   ├── sd_bus_reply_method_return.xml
│   ├── sd_bus_request_name.xml
│   ├── sd_bus_send.xml
│   ├── sd_bus_service_reconnect.c
│   ├── sd_bus_set_address.xml
│   ├── sd_bus_set_close_on_exit.xml
│   ├── sd_bus_set_connected_signal.xml
│   ├── sd_bus_set_description.xml
│   ├── sd_bus_set_exit_on_disconnect.xml
│   ├── sd_bus_set_fd.xml
│   ├── sd_bus_set_method_call_timeout.xml
│   ├── sd_bus_set_property.xml
│   ├── sd_bus_set_sender.xml
│   ├── sd_bus_set_server.xml
│   ├── sd_bus_set_watch_bind.xml
│   ├── sd_bus_slot_get_bus.xml
│   ├── sd_bus_slot_ref.xml
│   ├── sd_bus_slot_set_description.xml
│   ├── sd_bus_slot_set_destroy_callback.xml
│   ├── sd_bus_slot_set_floating.xml
│   ├── sd_bus_slot_set_userdata.xml
│   ├── sd_bus_start.xml
│   ├── sd_bus_track_add_name.xml
│   ├── sd_bus_track_new.xml
│   ├── sd_bus_wait.xml
│   ├── sd_device_get_syspath.xml
│   ├── sd_device_ref.xml
│   ├── sd_event_add_child.xml
│   ├── sd_event_add_defer.xml
│   ├── sd_event_add_inotify.xml
│   ├── sd_event_add_io.xml
│   ├── sd_event_add_memory_pressure.xml
│   ├── sd_event_add_signal.xml
│   ├── sd_event_add_time.xml
│   ├── sd_event_exit.xml
│   ├── sd_event_get_fd.xml
│   ├── sd_event_new.xml
│   ├── sd_event_now.xml
│   ├── sd_event_run.xml
│   ├── sd_event_set_signal_exit.xml
│   ├── sd_event_set_watchdog.xml
│   ├── sd_event_source_get_event.xml
│   ├── sd_event_source_get_pending.xml
│   ├── sd_event_source_set_description.xml
│   ├── sd_event_source_set_destroy_callback.xml
│   ├── sd_event_source_set_enabled.xml
│   ├── sd_event_source_set_exit_on_failure.xml
│   ├── sd_event_source_set_floating.xml
│   ├── sd_event_source_set_prepare.xml
│   ├── sd_event_source_set_priority.xml
│   ├── sd_event_source_set_ratelimit.xml
│   ├── sd_event_source_set_userdata.xml
│   ├── sd_event_source_unref.xml
│   ├── sd_event_wait.xml
│   ├── sd_get_seats.xml
│   ├── sd_hwdb_get.xml
│   ├── sd_hwdb_new.xml
│   ├── sd_id128_get_machine.xml
│   ├── sd_id128_randomize.xml
│   ├── sd_id128_to_string.xml
│   ├── sd_is_fifo.xml
│   ├── sd_journal_add_match.xml
│   ├── sd_journal_enumerate_fields.xml
│   ├── sd_journal_get_catalog.xml
│   ├── sd_journal_get_cursor.xml
│   ├── sd_journal_get_cutoff_realtime_usec.xml
│   ├── sd_journal_get_data.xml
│   ├── sd_journal_get_fd.xml
│   ├── sd_journal_get_realtime_usec.xml
│   ├── sd_journal_get_seqnum.xml
│   ├── sd_journal_get_usage.xml
│   ├── sd_journal_has_runtime_files.xml
│   ├── sd_journal_next.xml
│   ├── sd_journal_open.xml
│   ├── sd_journal_print.xml
│   ├── sd_journal_query_unique.xml
│   ├── sd_journal_seek_head.xml
│   ├── sd_journal_stream_fd.xml
│   ├── sd_listen_fds.xml
│   ├── sd_login_monitor_new.xml
│   ├── sd_machine_get_class.xml
│   ├── sd_notify.xml
│   ├── sd_path_lookup.xml
│   ├── sd_pid_get_owner_uid.xml
│   ├── sd_seat_get_active.xml
│   ├── sd_session_is_active.xml
│   ├── sd_uid_get_state.xml
│   ├── sd_watchdog_enabled.xml
│   ├── send-unit-files-changed.c
│   ├── shutdown.xml
│   ├── smbios-type-11.xml
│   ├── standard-conf.xml
│   ├── standard-options.xml
│   ├── standard-specifiers.xml
│   ├── supported-controllers.xml
│   ├── sysctl.d.xml
│   ├── system-only.xml
│   ├── system-or-user-ns.xml
│   ├── systemctl.xml
│   ├── systemd-ac-power.xml
│   ├── systemd-analyze.xml
│   ├── systemd-ask-password-console.service.xml
│   ├── systemd-ask-password.xml
│   ├── systemd-backlight@.service.xml
│   ├── systemd-battery-check.service.xml
│   ├── systemd-binfmt.service.xml
│   ├── systemd-bless-boot-generator.xml
│   ├── systemd-bless-boot.service.xml
│   ├── systemd-boot-check-no-failures.service.xml
│   ├── systemd-boot-random-seed.service.xml
│   ├── systemd-boot.xml
│   ├── systemd-bsod.service.xml
│   ├── systemd-cat.xml
│   ├── systemd-cgls.xml
│   ├── systemd-cgtop.xml
│   ├── systemd-coredump.xml
│   ├── systemd-creds.xml
│   ├── systemd-cryptenroll.xml
│   ├── systemd-cryptsetup-generator.xml
│   ├── systemd-cryptsetup.xml
│   ├── systemd-debug-generator.xml
│   ├── systemd-delta.xml
│   ├── systemd-detect-virt.xml
│   ├── systemd-dissect.xml
│   ├── systemd-environment-d-generator.xml
│   ├── systemd-escape.xml
│   ├── systemd-firstboot.xml
│   ├── systemd-fsck@.service.xml
│   ├── systemd-fstab-generator.xml
│   ├── systemd-getty-generator.xml
│   ├── systemd-gpt-auto-generator.xml
│   ├── systemd-hibernate-resume-generator.xml
│   ├── systemd-hibernate-resume.service.xml
│   ├── systemd-homed.service.xml
│   ├── systemd-hostnamed.service.xml
│   ├── systemd-hwdb.xml
│   ├── systemd-id128.xml
│   ├── systemd-importd.service.xml
│   ├── systemd-inhibit.xml
│   ├── systemd-initctl.service.xml
│   ├── systemd-integritysetup-generator.xml
│   ├── systemd-integritysetup@.service.xml
│   ├── systemd-journal-gatewayd.service.xml
│   ├── systemd-journal-remote.service.xml
│   ├── systemd-journal-upload.service.xml
│   ├── systemd-journald.service.xml
│   ├── systemd-localed.service.xml
│   ├── systemd-logind.service.xml
│   ├── systemd-machine-id-commit.service.xml
│   ├── systemd-machine-id-setup.xml
│   ├── systemd-machined.service.xml
│   ├── systemd-makefs@.service.xml
│   ├── systemd-measure.xml
│   ├── systemd-modules-load.service.xml
│   ├── systemd-mount.xml
│   ├── systemd-network-generator.service.xml
│   ├── systemd-networkd-wait-online.service.xml
│   ├── systemd-networkd.service.xml
│   ├── systemd-notify.xml
│   ├── systemd-nspawn.xml
│   ├── systemd-oomd.service.xml
│   ├── systemd-path.xml
│   ├── systemd-pcrlock.xml
│   ├── systemd-pcrphase.service.xml
│   ├── systemd-portabled.service.xml
│   ├── systemd-poweroff.service.xml
│   ├── systemd-pstore.service.xml
│   ├── systemd-quotacheck.service.xml
│   ├── systemd-random-seed.service.xml
│   ├── systemd-rc-local-generator.xml
│   ├── systemd-remount-fs.service.xml
│   ├── systemd-repart.xml
│   ├── systemd-resolved.service.xml
│   ├── systemd-rfkill.service.xml
│   ├── systemd-run-generator.xml
│   ├── systemd-run.xml
│   ├── systemd-sleep.conf.xml
│   ├── systemd-socket-activate.xml
│   ├── systemd-socket-proxyd.xml
│   ├── systemd-soft-reboot.service.xml
│   ├── systemd-stdio-bridge.xml
│   ├── systemd-storagetm.service.xml
│   ├── systemd-stub.xml
│   ├── systemd-suspend.service.xml
│   ├── systemd-sysctl.service.xml
│   ├── systemd-sysext.xml
│   ├── systemd-system-update-generator.xml
│   ├── systemd-system.conf.xml
│   ├── systemd-sysupdate.xml
│   ├── systemd-sysusers.xml
│   ├── systemd-sysv-generator.xml
│   ├── systemd-time-wait-sync.service.xml
│   ├── systemd-timedated.service.xml
│   ├── systemd-timesyncd.service.xml
│   ├── systemd-tmpfiles.xml
│   ├── systemd-tpm2-setup.service.xml
│   ├── systemd-tty-ask-password-agent.xml
│   ├── systemd-udev-settle.service.xml
│   ├── systemd-udevd.service.xml
│   ├── systemd-update-done.service.xml
│   ├── systemd-update-utmp.service.xml
│   ├── systemd-user-sessions.service.xml
│   ├── systemd-userdbd.service.xml
│   ├── systemd-vconsole-setup.service.xml
│   ├── systemd-veritysetup-generator.xml
│   ├── systemd-veritysetup@.service.xml
│   ├── systemd-vmspawn.xml
│   ├── systemd-volatile-root.service.xml
│   ├── systemd-xdg-autostart-generator.xml
│   ├── systemd.automount.xml
│   ├── systemd.device.xml
│   ├── systemd.dnssd.xml
│   ├── systemd.environment-generator.xml
│   ├── systemd.exec.xml
│   ├── systemd.generator.xml
│   ├── systemd.image-policy.xml
│   ├── systemd.journal-fields.xml
│   ├── systemd.kill.xml
│   ├── systemd.link.xml
│   ├── systemd.mount.xml
│   ├── systemd.net-naming-scheme.xml
│   ├── systemd.netdev.xml
│   ├── systemd.network.xml
│   ├── systemd.nspawn.xml
│   ├── systemd.offline-updates.xml
│   ├── systemd.path.xml
│   ├── systemd.pcrlock.xml
│   ├── systemd.preset.xml
│   ├── systemd.resource-control.xml
│   ├── systemd.scope.xml
│   ├── systemd.service.xml
│   ├── systemd.slice.xml
│   ├── systemd.socket.xml
│   ├── systemd.special.xml
│   ├── systemd.swap.xml
│   ├── systemd.syntax.xml
│   ├── systemd.system-credentials.xml
│   ├── systemd.target.xml
│   ├── systemd.time.xml
│   ├── systemd.timer.xml
│   ├── systemd.unit.xml
│   ├── systemd.xml
│   ├── sysupdate.d.xml
│   ├── sysusers.d.xml
│   ├── tc.xml
│   ├── telinit.xml
│   ├── threads-aware.xml
│   ├── timedatectl.xml
│   ├── timesyncd.conf.xml
│   ├── tmpfiles.d.xml
│   ├── tpm2-crypttab.sh
│   ├── udev.conf.xml
│   ├── udev.xml
│   ├── udev_device_get_syspath.xml
│   ├── udev_device_has_tag.xml
│   ├── udev_device_new_from_syspath.xml
│   ├── udev_enumerate_add_match_subsystem.xml
│   ├── udev_enumerate_new.xml
│   ├── udev_enumerate_scan_devices.xml
│   ├── udev_list_entry.xml
│   ├── udev_monitor_filter_update.xml
│   ├── udev_monitor_new_from_netlink.xml
│   ├── udev_monitor_receive_device.xml
│   ├── udev_new.xml
│   ├── udevadm.xml
│   ├── uki.conf.example
│   ├── ukify.xml
│   ├── unit-states.xml
│   ├── user-system-options.xml
│   ├── user@.service.xml
│   ├── userdbctl.xml
│   ├── varlinkctl.xml
│   ├── vconsole.conf.xml
│   ├── veritytab.xml
│   ├── version-info.xml
│   ├── vtable-example.c
│   ├── vtable-example.xml
│   └── yubikey-crypttab.sh
├── meson.build
├── meson_options.txt
├── mkosi.conf
├── mkosi.conf.d/
│   ├── 05-qemu-mem.conf
│   ├── 10-centos.conf
│   ├── 10-debian.conf
│   ├── 10-extra-search-paths.conf
│   ├── 10-fedora.conf
│   ├── 10-opensuse.conf
│   ├── 10-tools.conf
│   └── 10-ubuntu.conf
├── mkosi.extra/
│   └── root/
│       └── .gdbinit
├── mkosi.images/
│   ├── base/
│   │   ├── mkosi.build.chroot
│   │   ├── mkosi.conf
│   │   ├── mkosi.conf.d/
│   │   │   ├── 10-arch.conf
│   │   │   ├── 10-centos-fedora.conf
│   │   │   ├── 10-debian-ubuntu.conf
│   │   │   ├── 10-debian.conf
│   │   │   ├── 10-fedora.conf
│   │   │   ├── 10-opensuse.conf
│   │   │   └── 10-ubuntu.conf
│   │   └── mkosi.extra/
│   │       └── usr/
│   │           └── lib/
│   │               ├── systemd/
│   │               │   └── system-preset/
│   │               │       ├── 00-mkosi.preset
│   │               │       └── 99-mkosi.preset
│   │               └── tmpfiles.d/
│   │                   └── locale.conf
│   ├── initrd/
│   │   ├── mkosi.conf
│   │   ├── mkosi.conf.d/
│   │   │   ├── 10-centos.conf
│   │   │   ├── 10-default.conf
│   │   │   └── 10-opensuse.conf
│   │   └── mkosi.postinst
│   └── system/
│       ├── mkosi.conf
│       ├── mkosi.conf.d/
│       │   ├── 05-initrd.conf
│       │   ├── 10-arch.conf
│       │   ├── 10-centos/
│       │   │   ├── mkosi.conf
│       │   │   ├── mkosi.extra/
│       │   │   │   └── usr/
│       │   │   │       └── lib/
│       │   │   │           └── repart.d/
│       │   │   │               └── 20-root.conf.d/
│       │   │   │                   └── xfs.conf
│       │   │   └── mkosi.repart/
│       │   │       └── 10-usr.conf.d/
│       │   │           └── squashfs.conf
│       │   ├── 10-centos-fedora.conf
│       │   ├── 10-debian-amd64.conf
│       │   ├── 10-debian-arm64.conf
│       │   ├── 10-debian-ubuntu.conf
│       │   ├── 10-fedora.conf
│       │   ├── 10-opensuse.conf
│       │   └── 10-ubuntu.conf
│       ├── mkosi.extra/
│       │   ├── etc/
│       │   │   └── issue
│       │   └── usr/
│       │       ├── lib/
│       │       │   ├── repart.d/
│       │       │   │   ├── 15-swap.conf
│       │       │   │   └── 20-root.conf
│       │       │   ├── systemd/
│       │       │   │   ├── journald.conf.d/
│       │       │   │   │   └── 50-persistent.conf
│       │       │   │   ├── mkosi-check-and-shutdown.sh
│       │       │   │   └── system/
│       │       │   │       └── mkosi-check-and-shutdown.service
│       │       │   └── tmpfiles.d/
│       │       │       └── 99-mkosi.conf
│       │       └── share/
│       │           └── factory/
│       │               └── mkosi/
│       │                   └── gdbinit.d/
│       │                       └── systemd.gdb
│       ├── mkosi.finalize
│       ├── mkosi.postinst.chroot
│       └── mkosi.repart/
│           ├── 00-esp.conf
│           ├── 10-usr.conf
│           ├── 11-usr-verity.conf
│           └── 12-usr-verity-sig.conf
├── mkosi.kernel.config
├── modprobe.d/
│   ├── README
│   ├── meson.build
│   └── systemd.conf
├── network/
│   ├── 80-6rd-tunnel.network
│   ├── 80-auto-link-local.network.example
│   ├── 80-container-host0.network
│   ├── 80-container-vb.network
│   ├── 80-container-ve.network
│   ├── 80-container-vz.network
│   ├── 80-vm-vt.network
│   ├── 80-wifi-adhoc.network
│   ├── 80-wifi-ap.network.example
│   ├── 80-wifi-station.network.example
│   ├── 89-ethernet.network.example
│   ├── 99-default.link
│   └── meson.build
├── po/
│   ├── .gitattributes
│   ├── LINGUAS
│   ├── POTFILES.in
│   ├── POTFILES.skip
│   ├── be.po
│   ├── be@latin.po
│   ├── bg.po
│   ├── ca.po
│   ├── cs.po
│   ├── da.po
│   ├── de.po
│   ├── el.po
│   ├── es.po
│   ├── et.po
│   ├── eu.po
│   ├── fi.po
│   ├── fr.po
│   ├── gl.po
│   ├── he.po
│   ├── hr.po
│   ├── hu.po
│   ├── id.po
│   ├── it.po
│   ├── its/
│   │   ├── polkit.its
│   │   └── polkit.loc
│   ├── ja.po
│   ├── ka.po
│   ├── kab.po
│   ├── ko.po
│   ├── lt.po
│   ├── meson.build
│   ├── nl.po
│   ├── pa.po
│   ├── pl.po
│   ├── pt.po
│   ├── pt_BR.po
│   ├── ro.po
│   ├── ru.po
│   ├── si.po
│   ├── sk.po
│   ├── sr.po
│   ├── sv.po
│   ├── systemd.pot
│   ├── tr.po
│   ├── uk.po
│   ├── zh_CN.po
│   └── zh_TW.po
├── presets/
│   ├── 90-systemd.preset
│   ├── meson.build
│   └── user/
│       └── 90-systemd.preset
├── rules.d/
│   ├── 50-udev-default.rules.in
│   ├── 60-autosuspend.rules
│   ├── 60-block.rules
│   ├── 60-cdrom_id.rules
│   ├── 60-dmi-id.rules
│   ├── 60-drm.rules
│   ├── 60-evdev.rules
│   ├── 60-fido-id.rules
│   ├── 60-infiniband.rules
│   ├── 60-input-id.rules
│   ├── 60-persistent-alsa.rules
│   ├── 60-persistent-input.rules
│   ├── 60-persistent-storage-mtd.rules
│   ├── 60-persistent-storage-tape.rules
│   ├── 60-persistent-storage.rules.in
│   ├── 60-persistent-v4l.rules
│   ├── 60-sensor.rules
│   ├── 60-serial.rules
│   ├── 64-btrfs.rules.in
│   ├── 70-camera.rules
│   ├── 70-joystick.rules
│   ├── 70-memory.rules
│   ├── 70-mouse.rules
│   ├── 70-power-switch.rules
│   ├── 70-touchpad.rules
│   ├── 70-uaccess.rules.in
│   ├── 71-seat.rules.in
│   ├── 73-seat-late.rules.in
│   ├── 75-net-description.rules
│   ├── 75-probe_mtd.rules
│   ├── 78-sound-card.rules
│   ├── 80-drivers.rules
│   ├── 80-net-setup-link.rules
│   ├── 81-net-dhcp.rules
│   ├── 82-net-auto-link-local.rules
│   ├── 90-iocost.rules
│   ├── 90-vconsole.rules.in
│   ├── 99-systemd.rules.in
│   ├── README
│   └── meson.build
├── shell-completion/
│   ├── bash/
│   │   ├── bootctl
│   │   ├── busctl
│   │   ├── coredumpctl
│   │   ├── homectl
│   │   ├── hostnamectl
│   │   ├── importctl
│   │   ├── journalctl
│   │   ├── kernel-install
│   │   ├── localectl
│   │   ├── loginctl
│   │   ├── machinectl
│   │   ├── meson.build
│   │   ├── networkctl
│   │   ├── oomctl
│   │   ├── portablectl
│   │   ├── resolvectl
│   │   ├── systemctl.in
│   │   ├── systemd-analyze
│   │   ├── systemd-cat
│   │   ├── systemd-cgls
│   │   ├── systemd-cgtop
│   │   ├── systemd-confext
│   │   ├── systemd-cryptenroll
│   │   ├── systemd-delta
│   │   ├── systemd-detect-virt
│   │   ├── systemd-dissect
│   │   ├── systemd-id128
│   │   ├── systemd-nspawn
│   │   ├── systemd-path
│   │   ├── systemd-resolve
│   │   ├── systemd-run
│   │   ├── systemd-sysext
│   │   ├── timedatectl
│   │   └── udevadm
│   └── zsh/
│       ├── _bootctl
│       ├── _busctl
│       ├── _coredumpctl
│       ├── _hostnamectl
│       ├── _journalctl
│       ├── _kernel-install
│       ├── _localectl
│       ├── _loginctl
│       ├── _machinectl
│       ├── _networkctl
│       ├── _oomctl
│       ├── _resolvectl
│       ├── _sd_hosts_or_user_at_host
│       ├── _sd_machines
│       ├── _sd_outputmodes
│       ├── _sd_unit_files
│       ├── _systemctl.in
│       ├── _systemd
│       ├── _systemd-analyze
│       ├── _systemd-delta
│       ├── _systemd-inhibit
│       ├── _systemd-nspawn
│       ├── _systemd-path
│       ├── _systemd-run
│       ├── _systemd-tmpfiles
│       ├── _timedatectl
│       ├── _udevadm
│       ├── _varlinkctl
│       └── meson.build
├── src/
│   ├── ac-power/
│   │   ├── ac-power.c
│   │   └── meson.build
│   ├── analyze/
│   │   ├── analyze-blame.c
│   │   ├── analyze-blame.h
│   │   ├── analyze-calendar.c
│   │   ├── analyze-calendar.h
│   │   ├── analyze-capability.c
│   │   ├── analyze-capability.h
│   │   ├── analyze-cat-config.c
│   │   ├── analyze-cat-config.h
│   │   ├── analyze-compare-versions.c
│   │   ├── analyze-compare-versions.h
│   │   ├── analyze-condition.c
│   │   ├── analyze-condition.h
│   │   ├── analyze-critical-chain.c
│   │   ├── analyze-critical-chain.h
│   │   ├── analyze-dot.c
│   │   ├── analyze-dot.h
│   │   ├── analyze-dump.c
│   │   ├── analyze-dump.h
│   │   ├── analyze-exit-status.c
│   │   ├── analyze-exit-status.h
│   │   ├── analyze-fdstore.c
│   │   ├── analyze-fdstore.h
│   │   ├── analyze-filesystems.c
│   │   ├── analyze-filesystems.h
│   │   ├── analyze-image-policy.c
│   │   ├── analyze-image-policy.h
│   │   ├── analyze-inspect-elf.c
│   │   ├── analyze-inspect-elf.h
│   │   ├── analyze-log-control.c
│   │   ├── analyze-log-control.h
│   │   ├── analyze-malloc.c
│   │   ├── analyze-malloc.h
│   │   ├── analyze-pcrs.c
│   │   ├── analyze-pcrs.h
│   │   ├── analyze-plot.c
│   │   ├── analyze-plot.h
│   │   ├── analyze-security.c
│   │   ├── analyze-security.h
│   │   ├── analyze-service-watchdogs.c
│   │   ├── analyze-service-watchdogs.h
│   │   ├── analyze-srk.c
│   │   ├── analyze-srk.h
│   │   ├── analyze-syscall-filter.c
│   │   ├── analyze-syscall-filter.h
│   │   ├── analyze-time-data.c
│   │   ├── analyze-time-data.h
│   │   ├── analyze-time.c
│   │   ├── analyze-time.h
│   │   ├── analyze-timespan.c
│   │   ├── analyze-timespan.h
│   │   ├── analyze-timestamp.c
│   │   ├── analyze-timestamp.h
│   │   ├── analyze-unit-files.c
│   │   ├── analyze-unit-files.h
│   │   ├── analyze-unit-paths.c
│   │   ├── analyze-unit-paths.h
│   │   ├── analyze-verify-util.c
│   │   ├── analyze-verify-util.h
│   │   ├── analyze-verify.c
│   │   ├── analyze-verify.h
│   │   ├── analyze.c
│   │   ├── analyze.h
│   │   ├── meson.build
│   │   └── test-verify.c
│   ├── ask-password/
│   │   ├── ask-password.c
│   │   └── meson.build
│   ├── backlight/
│   │   ├── backlight.c
│   │   └── meson.build
│   ├── basic/
│   │   ├── MurmurHash2.c
│   │   ├── MurmurHash2.h
│   │   ├── af-list.c
│   │   ├── af-list.h
│   │   ├── af-to-name.awk
│   │   ├── alloc-util.c
│   │   ├── alloc-util.h
│   │   ├── architecture.c
│   │   ├── architecture.h
│   │   ├── argv-util.c
│   │   ├── argv-util.h
│   │   ├── arphrd-to-name.awk
│   │   ├── arphrd-util.c
│   │   ├── arphrd-util.h
│   │   ├── audit-util.c
│   │   ├── audit-util.h
│   │   ├── bitfield.h
│   │   ├── btrfs.c
│   │   ├── btrfs.h
│   │   ├── build.c
│   │   ├── build.h
│   │   ├── bus-label.c
│   │   ├── bus-label.h
│   │   ├── cap-list.c
│   │   ├── cap-list.h
│   │   ├── cap-to-name.awk
│   │   ├── capability-util.c
│   │   ├── capability-util.h
│   │   ├── cgroup-util.c
│   │   ├── cgroup-util.h
│   │   ├── chase.c
│   │   ├── chase.h
│   │   ├── chattr-util.c
│   │   ├── chattr-util.h
│   │   ├── check-filesystems.sh
│   │   ├── compress.c
│   │   ├── compress.h
│   │   ├── conf-files.c
│   │   ├── conf-files.h
│   │   ├── confidential-virt.c
│   │   ├── confidential-virt.h
│   │   ├── constants.h
│   │   ├── coverage.h
│   │   ├── devnum-util.c
│   │   ├── devnum-util.h
│   │   ├── dirent-util.c
│   │   ├── dirent-util.h
│   │   ├── dns-def.h
│   │   ├── efivars.c
│   │   ├── efivars.h
│   │   ├── env-file.c
│   │   ├── env-file.h
│   │   ├── env-util.c
│   │   ├── env-util.h
│   │   ├── errno-list.c
│   │   ├── errno-list.h
│   │   ├── errno-to-name.awk
│   │   ├── errno-util.h
│   │   ├── escape.c
│   │   ├── escape.h
│   │   ├── ether-addr-util.c
│   │   ├── ether-addr-util.h
│   │   ├── extract-word.c
│   │   ├── extract-word.h
│   │   ├── fd-util.c
│   │   ├── fd-util.h
│   │   ├── fileio.c
│   │   ├── fileio.h
│   │   ├── filesystems-gperf.gperf
│   │   ├── filesystems.c
│   │   ├── filesystems.h
│   │   ├── format-util.c
│   │   ├── format-util.h
│   │   ├── fs-util.c
│   │   ├── fs-util.h
│   │   ├── gcrypt-util.c
│   │   ├── gcrypt-util.h
│   │   ├── generate-af-list.sh
│   │   ├── generate-arphrd-list.sh
│   │   ├── generate-cap-list.sh
│   │   ├── generate-errno-list.sh
│   │   ├── generate-filesystem-list.py
│   │   ├── generate-filesystem-switch-case.py
│   │   ├── getopt-defs.h
│   │   ├── glob-util.c
│   │   ├── glob-util.h
│   │   ├── glyph-util.c
│   │   ├── glyph-util.h
│   │   ├── gunicode.c
│   │   ├── gunicode.h
│   │   ├── hash-funcs.c
│   │   ├── hash-funcs.h
│   │   ├── hashmap.c
│   │   ├── hashmap.h
│   │   ├── hexdecoct.c
│   │   ├── hexdecoct.h
│   │   ├── hmac.c
│   │   ├── hmac.h
│   │   ├── hostname-util.c
│   │   ├── hostname-util.h
│   │   ├── in-addr-util.c
│   │   ├── in-addr-util.h
│   │   ├── initrd-util.c
│   │   ├── initrd-util.h
│   │   ├── inotify-util.c
│   │   ├── inotify-util.h
│   │   ├── io-util.c
│   │   ├── io-util.h
│   │   ├── ioprio-util.c
│   │   ├── ioprio-util.h
│   │   ├── iovec-util.c
│   │   ├── iovec-util.h
│   │   ├── iovec-wrapper.c
│   │   ├── iovec-wrapper.h
│   │   ├── label.c
│   │   ├── label.h
│   │   ├── limits-util.c
│   │   ├── limits-util.h
│   │   ├── linux/
│   │   │   ├── README
│   │   │   ├── batman_adv.h
│   │   │   ├── btrfs.h
│   │   │   ├── btrfs_tree.h
│   │   │   ├── can/
│   │   │   │   ├── netlink.h
│   │   │   │   └── vxcan.h
│   │   │   ├── cfm_bridge.h
│   │   │   ├── fib_rules.h
│   │   │   ├── fou.h
│   │   │   ├── genetlink.h
│   │   │   ├── hdlc/
│   │   │   │   └── ioctl.h
│   │   │   ├── if.h
│   │   │   ├── if_addr.h
│   │   │   ├── if_bonding.h
│   │   │   ├── if_bridge.h
│   │   │   ├── if_ether.h
│   │   │   ├── if_link.h
│   │   │   ├── if_macsec.h
│   │   │   ├── if_tun.h
│   │   │   ├── if_tunnel.h
│   │   │   ├── in.h
│   │   │   ├── in6.h
│   │   │   ├── input-event-codes.h
│   │   │   ├── input.h
│   │   │   ├── ipv6_route.h
│   │   │   ├── l2tp.h
│   │   │   ├── libc-compat.h
│   │   │   ├── mrp_bridge.h
│   │   │   ├── netdevice.h
│   │   │   ├── netfilter/
│   │   │   │   ├── nf_tables.h
│   │   │   │   └── nfnetlink.h
│   │   │   ├── netfilter.h
│   │   │   ├── netlink.h
│   │   │   ├── nexthop.h
│   │   │   ├── nl80211.h
│   │   │   ├── pkt_sched.h
│   │   │   ├── rtnetlink.h
│   │   │   ├── stddef.h
│   │   │   ├── update.sh
│   │   │   └── wireguard.h
│   │   ├── list.h
│   │   ├── locale-util.c
│   │   ├── locale-util.h
│   │   ├── lock-util.c
│   │   ├── lock-util.h
│   │   ├── log.c
│   │   ├── log.h
│   │   ├── login-util.c
│   │   ├── login-util.h
│   │   ├── macro.h
│   │   ├── mallinfo-util.h
│   │   ├── math-util.h
│   │   ├── memfd-util.c
│   │   ├── memfd-util.h
│   │   ├── memory-util.c
│   │   ├── memory-util.h
│   │   ├── mempool.c
│   │   ├── mempool.h
│   │   ├── memstream-util.c
│   │   ├── memstream-util.h
│   │   ├── meson.build
│   │   ├── missing_audit.h
│   │   ├── missing_capability.h
│   │   ├── missing_drm.h
│   │   ├── missing_fcntl.h
│   │   ├── missing_fs.h
│   │   ├── missing_input.h
│   │   ├── missing_ioprio.h
│   │   ├── missing_keyctl.h
│   │   ├── missing_loop.h
│   │   ├── missing_magic.h
│   │   ├── missing_mman.h
│   │   ├── missing_mount.h
│   │   ├── missing_network.h
│   │   ├── missing_prctl.h
│   │   ├── missing_random.h
│   │   ├── missing_resource.h
│   │   ├── missing_sched.h
│   │   ├── missing_securebits.h
│   │   ├── missing_socket.h
│   │   ├── missing_stat.h
│   │   ├── missing_stdlib.h
│   │   ├── missing_syscall.h
│   │   ├── missing_syscall_def.h
│   │   ├── missing_syscalls.py
│   │   ├── missing_threads.h
│   │   ├── missing_timerfd.h
│   │   ├── missing_type.h
│   │   ├── missing_xfs.h
│   │   ├── mkdir.c
│   │   ├── mkdir.h
│   │   ├── mountpoint-util.c
│   │   ├── mountpoint-util.h
│   │   ├── namespace-util.c
│   │   ├── namespace-util.h
│   │   ├── nss-util.h
│   │   ├── nulstr-util.c
│   │   ├── nulstr-util.h
│   │   ├── ordered-set.c
│   │   ├── ordered-set.h
│   │   ├── origin-id.h
│   │   ├── os-util.c
│   │   ├── os-util.h
│   │   ├── parse-util.c
│   │   ├── parse-util.h
│   │   ├── path-lookup.c
│   │   ├── path-lookup.h
│   │   ├── path-util.c
│   │   ├── path-util.h
│   │   ├── pcapng.h
│   │   ├── percent-util.c
│   │   ├── percent-util.h
│   │   ├── pidref.c
│   │   ├── pidref.h
│   │   ├── prioq.c
│   │   ├── prioq.h
│   │   ├── proc-cmdline.c
│   │   ├── proc-cmdline.h
│   │   ├── process-util.c
│   │   ├── process-util.h
│   │   ├── procfs-util.c
│   │   ├── procfs-util.h
│   │   ├── psi-util.c
│   │   ├── psi-util.h
│   │   ├── pthread-util.h
│   │   ├── random-util.c
│   │   ├── random-util.h
│   │   ├── ratelimit.c
│   │   ├── ratelimit.h
│   │   ├── raw-clone.h
│   │   ├── raw-reboot.h
│   │   ├── recurse-dir.c
│   │   ├── recurse-dir.h
│   │   ├── replace-var.c
│   │   ├── replace-var.h
│   │   ├── rlimit-util.c
│   │   ├── rlimit-util.h
│   │   ├── runtime-scope.c
│   │   ├── runtime-scope.h
│   │   ├── set.h
│   │   ├── sigbus.c
│   │   ├── sigbus.h
│   │   ├── signal-util.c
│   │   ├── signal-util.h
│   │   ├── siphash24.c
│   │   ├── siphash24.h
│   │   ├── socket-util.c
│   │   ├── socket-util.h
│   │   ├── sort-util.c
│   │   ├── sort-util.h
│   │   ├── sparse-endian.h
│   │   ├── special.h
│   │   ├── stat-util.c
│   │   ├── stat-util.h
│   │   ├── static-destruct.h
│   │   ├── stdio-util.h
│   │   ├── strbuf.c
│   │   ├── strbuf.h
│   │   ├── string-table.c
│   │   ├── string-table.h
│   │   ├── string-util.c
│   │   ├── string-util.h
│   │   ├── strv.c
│   │   ├── strv.h
│   │   ├── strxcpyx.c
│   │   ├── strxcpyx.h
│   │   ├── sync-util.c
│   │   ├── sync-util.h
│   │   ├── syscall-list.txt
│   │   ├── syscalls-alpha.txt
│   │   ├── syscalls-arc.txt
│   │   ├── syscalls-arm.txt
│   │   ├── syscalls-arm64.txt
│   │   ├── syscalls-i386.txt
│   │   ├── syscalls-ia64.txt
│   │   ├── syscalls-loongarch64.txt
│   │   ├── syscalls-m68k.txt
│   │   ├── syscalls-mips64.txt
│   │   ├── syscalls-mips64n32.txt
│   │   ├── syscalls-mipso32.txt
│   │   ├── syscalls-parisc.txt
│   │   ├── syscalls-powerpc.txt
│   │   ├── syscalls-powerpc64.txt
│   │   ├── syscalls-riscv32.txt
│   │   ├── syscalls-riscv64.txt
│   │   ├── syscalls-s390.txt
│   │   ├── syscalls-s390x.txt
│   │   ├── syscalls-sparc.txt
│   │   ├── syscalls-x86_64.txt
│   │   ├── sysctl-util.c
│   │   ├── sysctl-util.h
│   │   ├── syslog-util.c
│   │   ├── syslog-util.h
│   │   ├── terminal-util.c
│   │   ├── terminal-util.h
│   │   ├── time-util.c
│   │   ├── time-util.h
│   │   ├── tmpfile-util.c
│   │   ├── tmpfile-util.h
│   │   ├── uid-alloc-range.c
│   │   ├── uid-alloc-range.h
│   │   ├── uid-range.c
│   │   ├── uid-range.h
│   │   ├── umask-util.h
│   │   ├── unaligned.h
│   │   ├── unit-def.c
│   │   ├── unit-def.h
│   │   ├── unit-file.c
│   │   ├── unit-file.h
│   │   ├── unit-name.c
│   │   ├── unit-name.h
│   │   ├── user-util.c
│   │   ├── user-util.h
│   │   ├── utf8.c
│   │   ├── utf8.h
│   │   ├── virt.c
│   │   ├── virt.h
│   │   ├── xattr-util.c
│   │   └── xattr-util.h
│   ├── battery-check/
│   │   ├── battery-check.c
│   │   └── meson.build
│   ├── binfmt/
│   │   ├── binfmt.c
│   │   └── meson.build
│   ├── boot/
│   │   ├── bless-boot-generator.c
│   │   ├── bless-boot.c
│   │   ├── boot-check-no-failures.c
│   │   ├── bootctl-install.c
│   │   ├── bootctl-install.h
│   │   ├── bootctl-random-seed.c
│   │   ├── bootctl-random-seed.h
│   │   ├── bootctl-reboot-to-firmware.c
│   │   ├── bootctl-reboot-to-firmware.h
│   │   ├── bootctl-set-efivar.c
│   │   ├── bootctl-set-efivar.h
│   │   ├── bootctl-status.c
│   │   ├── bootctl-status.h
│   │   ├── bootctl-systemd-efi-options.c
│   │   ├── bootctl-systemd-efi-options.h
│   │   ├── bootctl-uki.c
│   │   ├── bootctl-uki.h
│   │   ├── bootctl-util.c
│   │   ├── bootctl-util.h
│   │   ├── bootctl.c
│   │   ├── bootctl.h
│   │   ├── efi/
│   │   │   ├── UEFI_SECURITY.md
│   │   │   ├── addon.c
│   │   │   ├── bcd.c
│   │   │   ├── bcd.h
│   │   │   ├── boot.c
│   │   │   ├── console.c
│   │   │   ├── console.h
│   │   │   ├── cpio.c
│   │   │   ├── cpio.h
│   │   │   ├── device-path-util.c
│   │   │   ├── device-path-util.h
│   │   │   ├── devicetree.c
│   │   │   ├── devicetree.h
│   │   │   ├── drivers.c
│   │   │   ├── drivers.h
│   │   │   ├── efi-string.c
│   │   │   ├── efi-string.h
│   │   │   ├── efi.h
│   │   │   ├── fuzz-bcd.c
│   │   │   ├── fuzz-efi-osrel.c
│   │   │   ├── fuzz-efi-printf.c
│   │   │   ├── fuzz-efi-string.c
│   │   │   ├── graphics.c
│   │   │   ├── graphics.h
│   │   │   ├── initrd.c
│   │   │   ├── initrd.h
│   │   │   ├── linux.c
│   │   │   ├── linux.h
│   │   │   ├── linux_x86.c
│   │   │   ├── log.c
│   │   │   ├── log.h
│   │   │   ├── measure.c
│   │   │   ├── measure.h
│   │   │   ├── meson.build
│   │   │   ├── part-discovery.c
│   │   │   ├── part-discovery.h
│   │   │   ├── pe.c
│   │   │   ├── pe.h
│   │   │   ├── proto/
│   │   │   │   ├── block-io.h
│   │   │   │   ├── console-control.h
│   │   │   │   ├── device-path.h
│   │   │   │   ├── dt-fixup.h
│   │   │   │   ├── file-io.h
│   │   │   │   ├── graphics-output.h
│   │   │   │   ├── load-file.h
│   │   │   │   ├── loaded-image.h
│   │   │   │   ├── rng.h
│   │   │   │   ├── security-arch.h
│   │   │   │   ├── shell-parameters.h
│   │   │   │   ├── simple-text-io.h
│   │   │   │   └── tcg.h
│   │   │   ├── random-seed.c
│   │   │   ├── random-seed.h
│   │   │   ├── secure-boot.c
│   │   │   ├── secure-boot.h
│   │   │   ├── shim.c
│   │   │   ├── shim.h
│   │   │   ├── splash.c
│   │   │   ├── splash.h
│   │   │   ├── stub.c
│   │   │   ├── test-bcd.c
│   │   │   ├── test-efi-string.c
│   │   │   ├── ticks.c
│   │   │   ├── ticks.h
│   │   │   ├── ubsan.c
│   │   │   ├── util.c
│   │   │   ├── util.h
│   │   │   ├── vmm.c
│   │   │   └── vmm.h
│   │   ├── measure.c
│   │   └── meson.build
│   ├── busctl/
│   │   ├── busctl-introspect.c
│   │   ├── busctl-introspect.h
│   │   ├── busctl.c
│   │   ├── meson.build
│   │   └── test-busctl-introspect.c
│   ├── cgls/
│   │   ├── cgls.c
│   │   └── meson.build
│   ├── cgroups-agent/
│   │   ├── cgroups-agent.c
│   │   └── meson.build
│   ├── cgtop/
│   │   ├── cgtop.c
│   │   └── meson.build
│   ├── core/
│   │   ├── all-units.h
│   │   ├── apparmor-setup.c
│   │   ├── apparmor-setup.h
│   │   ├── audit-fd.c
│   │   ├── audit-fd.h
│   │   ├── automount.c
│   │   ├── automount.h
│   │   ├── bpf/
│   │   │   ├── restrict_fs/
│   │   │   │   ├── meson.build
│   │   │   │   ├── restrict-fs-skel.h
│   │   │   │   └── restrict-fs.bpf.c
│   │   │   ├── restrict_ifaces/
│   │   │   │   ├── meson.build
│   │   │   │   ├── restrict-ifaces-skel.h
│   │   │   │   └── restrict-ifaces.bpf.c
│   │   │   └── socket_bind/
│   │   │       ├── meson.build
│   │   │       ├── socket-bind-api.bpf.h
│   │   │       ├── socket-bind-skel.h
│   │   │       └── socket-bind.bpf.c
│   │   ├── bpf-devices.c
│   │   ├── bpf-devices.h
│   │   ├── bpf-firewall.c
│   │   ├── bpf-firewall.h
│   │   ├── bpf-foreign.c
│   │   ├── bpf-foreign.h
│   │   ├── bpf-lsm.c
│   │   ├── bpf-lsm.h
│   │   ├── bpf-socket-bind.c
│   │   ├── bpf-socket-bind.h
│   │   ├── bpf-util.c
│   │   ├── bpf-util.h
│   │   ├── cgroup.c
│   │   ├── cgroup.h
│   │   ├── core-varlink.c
│   │   ├── core-varlink.h
│   │   ├── crash-handler.c
│   │   ├── crash-handler.h
│   │   ├── dbus-automount.c
│   │   ├── dbus-automount.h
│   │   ├── dbus-cgroup.c
│   │   ├── dbus-cgroup.h
│   │   ├── dbus-device.c
│   │   ├── dbus-device.h
│   │   ├── dbus-execute.c
│   │   ├── dbus-execute.h
│   │   ├── dbus-job.c
│   │   ├── dbus-job.h
│   │   ├── dbus-kill.c
│   │   ├── dbus-kill.h
│   │   ├── dbus-manager.c
│   │   ├── dbus-manager.h
│   │   ├── dbus-mount.c
│   │   ├── dbus-mount.h
│   │   ├── dbus-path.c
│   │   ├── dbus-path.h
│   │   ├── dbus-scope.c
│   │   ├── dbus-scope.h
│   │   ├── dbus-service.c
│   │   ├── dbus-service.h
│   │   ├── dbus-slice.c
│   │   ├── dbus-slice.h
│   │   ├── dbus-socket.c
│   │   ├── dbus-socket.h
│   │   ├── dbus-swap.c
│   │   ├── dbus-swap.h
│   │   ├── dbus-target.c
│   │   ├── dbus-target.h
│   │   ├── dbus-timer.c
│   │   ├── dbus-timer.h
│   │   ├── dbus-unit.c
│   │   ├── dbus-unit.h
│   │   ├── dbus-util.c
│   │   ├── dbus-util.h
│   │   ├── dbus.c
│   │   ├── dbus.h
│   │   ├── device.c
│   │   ├── device.h
│   │   ├── dynamic-user.c
│   │   ├── dynamic-user.h
│   │   ├── efi-random.c
│   │   ├── efi-random.h
│   │   ├── emergency-action.c
│   │   ├── emergency-action.h
│   │   ├── exec-credential.c
│   │   ├── exec-credential.h
│   │   ├── exec-invoke.c
│   │   ├── exec-invoke.h
│   │   ├── execute-serialize.c
│   │   ├── execute-serialize.h
│   │   ├── execute.c
│   │   ├── execute.h
│   │   ├── executor.c
│   │   ├── fuzz-execute-serialize.c
│   │   ├── fuzz-manager-serialize.c
│   │   ├── fuzz-manager-serialize.options
│   │   ├── fuzz-unit-file.c
│   │   ├── fuzz-unit-file.options
│   │   ├── generator-setup.c
│   │   ├── generator-setup.h
│   │   ├── ima-setup.c
│   │   ├── ima-setup.h
│   │   ├── import-creds.c
│   │   ├── import-creds.h
│   │   ├── job.c
│   │   ├── job.h
│   │   ├── kill.c
│   │   ├── kill.h
│   │   ├── kmod-setup.c
│   │   ├── kmod-setup.h
│   │   ├── load-dropin.c
│   │   ├── load-dropin.h
│   │   ├── load-fragment-gperf-nulstr.awk
│   │   ├── load-fragment-gperf.gperf.in
│   │   ├── load-fragment.c
│   │   ├── load-fragment.h
│   │   ├── main.c
│   │   ├── main.h
│   │   ├── manager-dump.c
│   │   ├── manager-dump.h
│   │   ├── manager-serialize.c
│   │   ├── manager-serialize.h
│   │   ├── manager.c
│   │   ├── manager.h
│   │   ├── meson.build
│   │   ├── mount.c
│   │   ├── mount.h
│   │   ├── namespace.c
│   │   ├── namespace.h
│   │   ├── org.freedesktop.systemd1.conf
│   │   ├── org.freedesktop.systemd1.policy.in
│   │   ├── org.freedesktop.systemd1.service
│   │   ├── path.c
│   │   ├── path.h
│   │   ├── restrict-ifaces.c
│   │   ├── restrict-ifaces.h
│   │   ├── scope.c
│   │   ├── scope.h
│   │   ├── selinux-access.c
│   │   ├── selinux-access.h
│   │   ├── selinux-setup.c
│   │   ├── selinux-setup.h
│   │   ├── service.c
│   │   ├── service.h
│   │   ├── show-status.c
│   │   ├── show-status.h
│   │   ├── slice.c
│   │   ├── slice.h
│   │   ├── smack-setup.c
│   │   ├── smack-setup.h
│   │   ├── socket.c
│   │   ├── socket.h
│   │   ├── swap.c
│   │   ├── swap.h
│   │   ├── system.conf.in
│   │   ├── systemd.pc.in
│   │   ├── target.c
│   │   ├── target.h
│   │   ├── timer.c
│   │   ├── timer.h
│   │   ├── transaction.c
│   │   ├── transaction.h
│   │   ├── unit-dependency-atom.c
│   │   ├── unit-dependency-atom.h
│   │   ├── unit-printf.c
│   │   ├── unit-printf.h
│   │   ├── unit-serialize.c
│   │   ├── unit-serialize.h
│   │   ├── unit.c
│   │   ├── unit.h
│   │   └── user.conf.in
│   ├── coredump/
│   │   ├── coredump-vacuum.c
│   │   ├── coredump-vacuum.h
│   │   ├── coredump.c
│   │   ├── coredump.conf
│   │   ├── coredumpctl.c
│   │   ├── meson.build
│   │   └── test-coredump-vacuum.c
│   ├── creds/
│   │   ├── creds.c
│   │   └── meson.build
│   ├── cryptenroll/
│   │   ├── cryptenroll-fido2.c
│   │   ├── cryptenroll-fido2.h
│   │   ├── cryptenroll-list.c
│   │   ├── cryptenroll-list.h
│   │   ├── cryptenroll-password.c
│   │   ├── cryptenroll-password.h
│   │   ├── cryptenroll-pkcs11.c
│   │   ├── cryptenroll-pkcs11.h
│   │   ├── cryptenroll-recovery.c
│   │   ├── cryptenroll-recovery.h
│   │   ├── cryptenroll-tpm2.c
│   │   ├── cryptenroll-tpm2.h
│   │   ├── cryptenroll-wipe.c
│   │   ├── cryptenroll-wipe.h
│   │   ├── cryptenroll.c
│   │   ├── cryptenroll.h
│   │   └── meson.build
│   ├── cryptsetup/
│   │   ├── cryptsetup-generator.c
│   │   ├── cryptsetup-keyfile.c
│   │   ├── cryptsetup-keyfile.h
│   │   ├── cryptsetup-pkcs11.c
│   │   ├── cryptsetup-pkcs11.h
│   │   ├── cryptsetup-tokens/
│   │   │   ├── cryptsetup-token-systemd-fido2.c
│   │   │   ├── cryptsetup-token-systemd-pkcs11.c
│   │   │   ├── cryptsetup-token-systemd-tpm2.c
│   │   │   ├── cryptsetup-token-util.c
│   │   │   ├── cryptsetup-token-util.h
│   │   │   ├── cryptsetup-token.h
│   │   │   ├── cryptsetup-token.sym
│   │   │   ├── luks2-fido2.c
│   │   │   ├── luks2-fido2.h
│   │   │   ├── luks2-pkcs11.c
│   │   │   ├── luks2-pkcs11.h
│   │   │   ├── luks2-tpm2.c
│   │   │   ├── luks2-tpm2.h
│   │   │   └── meson.build
│   │   ├── cryptsetup-tpm2.c
│   │   ├── cryptsetup-tpm2.h
│   │   ├── cryptsetup.c
│   │   └── meson.build
│   ├── debug-generator/
│   │   ├── debug-generator.c
│   │   └── meson.build
│   ├── delta/
│   │   ├── delta.c
│   │   └── meson.build
│   ├── detect-virt/
│   │   ├── detect-virt.c
│   │   └── meson.build
│   ├── dissect/
│   │   ├── dissect.c
│   │   └── meson.build
│   ├── environment-d-generator/
│   │   ├── environment-d-generator.c
│   │   └── meson.build
│   ├── escape/
│   │   ├── escape.c
│   │   └── meson.build
│   ├── firstboot/
│   │   ├── firstboot.c
│   │   └── meson.build
│   ├── fsck/
│   │   ├── fsck.c
│   │   └── meson.build
│   ├── fstab-generator/
│   │   ├── fstab-generator.c
│   │   └── meson.build
│   ├── fundamental/
│   │   ├── bootspec-fundamental.c
│   │   ├── bootspec-fundamental.h
│   │   ├── confidential-virt-fundamental.h
│   │   ├── efivars-fundamental.c
│   │   ├── efivars-fundamental.h
│   │   ├── logarithm.h
│   │   ├── macro-fundamental.h
│   │   ├── memory-util-fundamental.h
│   │   ├── meson.build
│   │   ├── sbat.h
│   │   ├── sha256.c
│   │   ├── sha256.h
│   │   ├── string-util-fundamental.c
│   │   ├── string-util-fundamental.h
│   │   ├── tpm2-pcr.h
│   │   ├── uki.c
│   │   ├── uki.h
│   │   └── unaligned-fundamental.h
│   ├── fuzz/
│   │   ├── fuzz-bootspec-gen.py
│   │   ├── fuzz-bootspec.c
│   │   ├── fuzz-bootspec.options
│   │   ├── fuzz-bus-label.c
│   │   ├── fuzz-calendarspec.c
│   │   ├── fuzz-catalog.c
│   │   ├── fuzz-compress.c
│   │   ├── fuzz-env-file.c
│   │   ├── fuzz-env-file.options
│   │   ├── fuzz-hostname-setup.c
│   │   ├── fuzz-json.c
│   │   ├── fuzz-main.c
│   │   ├── fuzz-time-util.c
│   │   ├── fuzz-udev-database.c
│   │   ├── fuzz-varlink-idl.c
│   │   ├── fuzz-varlink.c
│   │   ├── fuzz.h
│   │   └── meson.build
│   ├── getty-generator/
│   │   ├── getty-generator.c
│   │   └── meson.build
│   ├── gpt-auto-generator/
│   │   ├── gpt-auto-generator.c
│   │   └── meson.build
│   ├── hibernate-resume/
│   │   ├── hibernate-resume-config.c
│   │   ├── hibernate-resume-config.h
│   │   ├── hibernate-resume-generator.c
│   │   ├── hibernate-resume.c
│   │   └── meson.build
│   ├── home/
│   │   ├── home-util.c
│   │   ├── home-util.h
│   │   ├── homectl-fido2.c
│   │   ├── homectl-fido2.h
│   │   ├── homectl-pkcs11.c
│   │   ├── homectl-pkcs11.h
│   │   ├── homectl-recovery-key.c
│   │   ├── homectl-recovery-key.h
│   │   ├── homectl.c
│   │   ├── homed-bus.c
│   │   ├── homed-bus.h
│   │   ├── homed-conf.c
│   │   ├── homed-conf.h
│   │   ├── homed-gperf.gperf
│   │   ├── homed-home-bus.c
│   │   ├── homed-home-bus.h
│   │   ├── homed-home.c
│   │   ├── homed-home.h
│   │   ├── homed-manager-bus.c
│   │   ├── homed-manager-bus.h
│   │   ├── homed-manager.c
│   │   ├── homed-manager.h
│   │   ├── homed-operation.c
│   │   ├── homed-operation.h
│   │   ├── homed-varlink.c
│   │   ├── homed-varlink.h
│   │   ├── homed.c
│   │   ├── homed.conf
│   │   ├── homework-cifs.c
│   │   ├── homework-cifs.h
│   │   ├── homework-directory.c
│   │   ├── homework-directory.h
│   │   ├── homework-fido2.c
│   │   ├── homework-fido2.h
│   │   ├── homework-fscrypt.c
│   │   ├── homework-fscrypt.h
│   │   ├── homework-luks.c
│   │   ├── homework-luks.h
│   │   ├── homework-mount.c
│   │   ├── homework-mount.h
│   │   ├── homework-password-cache.c
│   │   ├── homework-password-cache.h
│   │   ├── homework-pkcs11.c
│   │   ├── homework-pkcs11.h
│   │   ├── homework-quota.c
│   │   ├── homework-quota.h
│   │   ├── homework.c
│   │   ├── homework.h
│   │   ├── meson.build
│   │   ├── org.freedesktop.home1.conf
│   │   ├── org.freedesktop.home1.policy
│   │   ├── org.freedesktop.home1.service
│   │   ├── pam_systemd_home.c
│   │   ├── pam_systemd_home.sym
│   │   ├── user-record-password-quality.c
│   │   ├── user-record-password-quality.h
│   │   ├── user-record-sign.c
│   │   ├── user-record-sign.h
│   │   ├── user-record-util.c
│   │   └── user-record-util.h
│   ├── hostname/
│   │   ├── hostnamectl.c
│   │   ├── hostnamed.c
│   │   ├── meson.build
│   │   ├── org.freedesktop.hostname1.conf
│   │   ├── org.freedesktop.hostname1.policy
│   │   └── org.freedesktop.hostname1.service
│   ├── hwdb/
│   │   ├── hwdb.c
│   │   └── meson.build
│   ├── id128/
│   │   ├── id128.c
│   │   └── meson.build
│   ├── import/
│   │   ├── curl-util.c
│   │   ├── curl-util.h
│   │   ├── export-raw.c
│   │   ├── export-raw.h
│   │   ├── export-tar.c
│   │   ├── export-tar.h
│   │   ├── export.c
│   │   ├── import-common.c
│   │   ├── import-common.h
│   │   ├── import-compress.c
│   │   ├── import-compress.h
│   │   ├── import-fs.c
│   │   ├── import-pubring.gpg
│   │   ├── import-raw.c
│   │   ├── import-raw.h
│   │   ├── import-tar.c
│   │   ├── import-tar.h
│   │   ├── import.c
│   │   ├── importd.c
│   │   ├── meson.build
│   │   ├── org.freedesktop.import1.conf
│   │   ├── org.freedesktop.import1.policy
│   │   ├── org.freedesktop.import1.service
│   │   ├── pull-common.c
│   │   ├── pull-common.h
│   │   ├── pull-job.c
│   │   ├── pull-job.h
│   │   ├── pull-raw.c
│   │   ├── pull-raw.h
│   │   ├── pull-tar.c
│   │   ├── pull-tar.h
│   │   ├── pull.c
│   │   ├── qcow2-util.c
│   │   ├── qcow2-util.h
│   │   └── test-qcow2.c
│   ├── initctl/
│   │   ├── initctl.c
│   │   └── meson.build
│   ├── integritysetup/
│   │   ├── integrity-util.c
│   │   ├── integrity-util.h
│   │   ├── integritysetup-generator.c
│   │   ├── integritysetup.c
│   │   └── meson.build
│   ├── journal/
│   │   ├── bsod.c
│   │   ├── cat.c
│   │   ├── fuzz-journald-audit.c
│   │   ├── fuzz-journald-kmsg.c
│   │   ├── fuzz-journald-native-fd.c
│   │   ├── fuzz-journald-native.c
│   │   ├── fuzz-journald-stream.c
│   │   ├── fuzz-journald-stream.options
│   │   ├── fuzz-journald-syslog.c
│   │   ├── fuzz-journald.c
│   │   ├── fuzz-journald.h
│   │   ├── journalctl.c
│   │   ├── journald-audit.c
│   │   ├── journald-audit.h
│   │   ├── journald-client.c
│   │   ├── journald-client.h
│   │   ├── journald-console.c
│   │   ├── journald-console.h
│   │   ├── journald-context.c
│   │   ├── journald-context.h
│   │   ├── journald-gperf.gperf
│   │   ├── journald-kmsg.c
│   │   ├── journald-kmsg.h
│   │   ├── journald-native.c
│   │   ├── journald-native.h
│   │   ├── journald-rate-limit.c
│   │   ├── journald-rate-limit.h
│   │   ├── journald-server.c
│   │   ├── journald-server.h
│   │   ├── journald-stream.c
│   │   ├── journald-stream.h
│   │   ├── journald-syslog.c
│   │   ├── journald-syslog.h
│   │   ├── journald-wall.c
│   │   ├── journald-wall.h
│   │   ├── journald.c
│   │   ├── journald.conf
│   │   ├── meson.build
│   │   ├── test-journald-config.c
│   │   ├── test-journald-syslog.c
│   │   └── test-journald-tables.c
│   ├── journal-remote/
│   │   ├── browse.html
│   │   ├── fuzz-journal-remote.c
│   │   ├── fuzz-journal-remote.options
│   │   ├── journal-gatewayd.c
│   │   ├── journal-remote-main.c
│   │   ├── journal-remote-parse.c
│   │   ├── journal-remote-parse.h
│   │   ├── journal-remote-write.c
│   │   ├── journal-remote-write.h
│   │   ├── journal-remote.c
│   │   ├── journal-remote.conf.in
│   │   ├── journal-remote.h
│   │   ├── journal-upload-journal.c
│   │   ├── journal-upload.c
│   │   ├── journal-upload.conf.in
│   │   ├── journal-upload.h
│   │   ├── log-generator.py
│   │   ├── meson.build
│   │   ├── microhttpd-util.c
│   │   └── microhttpd-util.h
│   ├── kernel-install/
│   │   ├── 50-depmod.install
│   │   ├── 60-ukify.install.in
│   │   ├── 90-loaderentry.install.in
│   │   ├── 90-uki-copy.install
│   │   ├── install.conf
│   │   ├── kernel-install.c
│   │   ├── meson.build
│   │   └── test-kernel-install.sh
│   ├── libsystemd/
│   │   ├── libsystemd.pc.in
│   │   ├── libsystemd.sym
│   │   ├── meson.build
│   │   ├── sd-bus/
│   │   │   ├── bus-common-errors.c
│   │   │   ├── bus-common-errors.h
│   │   │   ├── bus-container.c
│   │   │   ├── bus-container.h
│   │   │   ├── bus-control.c
│   │   │   ├── bus-control.h
│   │   │   ├── bus-convenience.c
│   │   │   ├── bus-creds.c
│   │   │   ├── bus-creds.h
│   │   │   ├── bus-dump.c
│   │   │   ├── bus-dump.h
│   │   │   ├── bus-error.c
│   │   │   ├── bus-error.h
│   │   │   ├── bus-internal.c
│   │   │   ├── bus-internal.h
│   │   │   ├── bus-introspect.c
│   │   │   ├── bus-introspect.h
│   │   │   ├── bus-kernel.c
│   │   │   ├── bus-kernel.h
│   │   │   ├── bus-match.c
│   │   │   ├── bus-match.h
│   │   │   ├── bus-message.c
│   │   │   ├── bus-message.h
│   │   │   ├── bus-objects.c
│   │   │   ├── bus-objects.h
│   │   │   ├── bus-protocol.h
│   │   │   ├── bus-signature.c
│   │   │   ├── bus-signature.h
│   │   │   ├── bus-slot.c
│   │   │   ├── bus-slot.h
│   │   │   ├── bus-socket.c
│   │   │   ├── bus-socket.h
│   │   │   ├── bus-track.c
│   │   │   ├── bus-track.h
│   │   │   ├── bus-type.c
│   │   │   ├── bus-type.h
│   │   │   ├── fuzz-bus-match.c
│   │   │   ├── fuzz-bus-match.options
│   │   │   ├── fuzz-bus-message.c
│   │   │   ├── sd-bus.c
│   │   │   ├── test-bus-address.c
│   │   │   ├── test-bus-benchmark.c
│   │   │   ├── test-bus-chat.c
│   │   │   ├── test-bus-cleanup.c
│   │   │   ├── test-bus-creds.c
│   │   │   ├── test-bus-error.c
│   │   │   ├── test-bus-introspect.c
│   │   │   ├── test-bus-marshal.c
│   │   │   ├── test-bus-match.c
│   │   │   ├── test-bus-objects.c
│   │   │   ├── test-bus-peersockaddr.c
│   │   │   ├── test-bus-queue-ref-cycle.c
│   │   │   ├── test-bus-server.c
│   │   │   ├── test-bus-signature.c
│   │   │   ├── test-bus-track.c
│   │   │   ├── test-bus-vtable.c
│   │   │   ├── test-bus-watch-bind.c
│   │   │   └── test-vtable-data.h
│   │   ├── sd-daemon/
│   │   │   └── sd-daemon.c
│   │   ├── sd-device/
│   │   │   ├── device-enumerator-private.h
│   │   │   ├── device-enumerator.c
│   │   │   ├── device-filter.c
│   │   │   ├── device-filter.h
│   │   │   ├── device-internal.h
│   │   │   ├── device-monitor-private.h
│   │   │   ├── device-monitor.c
│   │   │   ├── device-private.c
│   │   │   ├── device-private.h
│   │   │   ├── device-util.c
│   │   │   ├── device-util.h
│   │   │   ├── sd-device.c
│   │   │   ├── test-device-util.c
│   │   │   ├── test-sd-device-monitor.c
│   │   │   ├── test-sd-device-thread.c
│   │   │   └── test-sd-device.c
│   │   ├── sd-event/
│   │   │   ├── event-source.h
│   │   │   ├── event-util.c
│   │   │   ├── event-util.h
│   │   │   ├── sd-event.c
│   │   │   └── test-event.c
│   │   ├── sd-hwdb/
│   │   │   ├── hwdb-internal.h
│   │   │   └── sd-hwdb.c
│   │   ├── sd-id128/
│   │   │   ├── id128-util.c
│   │   │   ├── id128-util.h
│   │   │   └── sd-id128.c
│   │   ├── sd-journal/
│   │   │   ├── audit-type.c
│   │   │   ├── audit-type.h
│   │   │   ├── audit_type-to-name.awk
│   │   │   ├── catalog.c
│   │   │   ├── catalog.h
│   │   │   ├── fsprg.c
│   │   │   ├── fsprg.h
│   │   │   ├── generate-audit_type-list.sh
│   │   │   ├── journal-authenticate.c
│   │   │   ├── journal-authenticate.h
│   │   │   ├── journal-def.h
│   │   │   ├── journal-file.c
│   │   │   ├── journal-file.h
│   │   │   ├── journal-internal.h
│   │   │   ├── journal-send.c
│   │   │   ├── journal-send.h
│   │   │   ├── journal-vacuum.c
│   │   │   ├── journal-vacuum.h
│   │   │   ├── journal-verify.c
│   │   │   ├── journal-verify.h
│   │   │   ├── lookup3.c
│   │   │   ├── lookup3.h
│   │   │   ├── mmap-cache.c
│   │   │   ├── mmap-cache.h
│   │   │   ├── sd-journal.c
│   │   │   ├── test-audit-type.c
│   │   │   ├── test-catalog.c
│   │   │   ├── test-journal-append.c
│   │   │   ├── test-journal-enum.c
│   │   │   ├── test-journal-file.c
│   │   │   ├── test-journal-flush.c
│   │   │   ├── test-journal-init.c
│   │   │   ├── test-journal-interleaving.c
│   │   │   ├── test-journal-match.c
│   │   │   ├── test-journal-send.c
│   │   │   ├── test-journal-stream.c
│   │   │   ├── test-journal-verify.c
│   │   │   ├── test-journal.c
│   │   │   └── test-mmap-cache.c
│   │   ├── sd-login/
│   │   │   ├── sd-login.c
│   │   │   └── test-login.c
│   │   ├── sd-netlink/
│   │   │   ├── netlink-genl.c
│   │   │   ├── netlink-genl.h
│   │   │   ├── netlink-internal.h
│   │   │   ├── netlink-message-nfnl.c
│   │   │   ├── netlink-message-rtnl.c
│   │   │   ├── netlink-message.c
│   │   │   ├── netlink-slot.c
│   │   │   ├── netlink-slot.h
│   │   │   ├── netlink-socket.c
│   │   │   ├── netlink-types-genl.c
│   │   │   ├── netlink-types-internal.h
│   │   │   ├── netlink-types-nfnl.c
│   │   │   ├── netlink-types-rtnl.c
│   │   │   ├── netlink-types.c
│   │   │   ├── netlink-types.h
│   │   │   ├── netlink-util.c
│   │   │   ├── netlink-util.h
│   │   │   ├── sd-netlink.c
│   │   │   └── test-netlink.c
│   │   ├── sd-network/
│   │   │   ├── network-util.c
│   │   │   ├── network-util.h
│   │   │   └── sd-network.c
│   │   ├── sd-path/
│   │   │   └── sd-path.c
│   │   └── sd-resolve/
│   │       ├── resolve-private.h
│   │       ├── sd-resolve.c
│   │       └── test-resolve.c
│   ├── libsystemd-network/
│   │   ├── arp-util.c
│   │   ├── arp-util.h
│   │   ├── dhcp-client-internal.h
│   │   ├── dhcp-identifier.c
│   │   ├── dhcp-identifier.h
│   │   ├── dhcp-lease-internal.h
│   │   ├── dhcp-network.c
│   │   ├── dhcp-network.h
│   │   ├── dhcp-option.c
│   │   ├── dhcp-option.h
│   │   ├── dhcp-packet.c
│   │   ├── dhcp-packet.h
│   │   ├── dhcp-protocol.h
│   │   ├── dhcp-server-internal.h
│   │   ├── dhcp6-client-internal.h
│   │   ├── dhcp6-internal.h
│   │   ├── dhcp6-lease-internal.h
│   │   ├── dhcp6-network.c
│   │   ├── dhcp6-option.c
│   │   ├── dhcp6-option.h
│   │   ├── dhcp6-protocol.c
│   │   ├── dhcp6-protocol.h
│   │   ├── fuzz-dhcp-client.c
│   │   ├── fuzz-dhcp-server-relay.c
│   │   ├── fuzz-dhcp-server.c
│   │   ├── fuzz-dhcp6-client.c
│   │   ├── fuzz-dhcp6-client.options
│   │   ├── fuzz-lldp-rx.c
│   │   ├── fuzz-lldp-rx.options
│   │   ├── fuzz-ndisc-rs.c
│   │   ├── fuzz-ndisc-rs.options
│   │   ├── icmp6-util-unix.c
│   │   ├── icmp6-util-unix.h
│   │   ├── icmp6-util.c
│   │   ├── icmp6-util.h
│   │   ├── lldp-neighbor.c
│   │   ├── lldp-neighbor.h
│   │   ├── lldp-network.c
│   │   ├── lldp-network.h
│   │   ├── lldp-rx-internal.h
│   │   ├── meson.build
│   │   ├── ndisc-internal.h
│   │   ├── ndisc-protocol.c
│   │   ├── ndisc-protocol.h
│   │   ├── ndisc-router.c
│   │   ├── ndisc-router.h
│   │   ├── network-common.c
│   │   ├── network-common.h
│   │   ├── network-internal.c
│   │   ├── network-internal.h
│   │   ├── radv-internal.h
│   │   ├── sd-dhcp-client.c
│   │   ├── sd-dhcp-lease.c
│   │   ├── sd-dhcp-server.c
│   │   ├── sd-dhcp6-client.c
│   │   ├── sd-dhcp6-lease.c
│   │   ├── sd-ipv4acd.c
│   │   ├── sd-ipv4ll.c
│   │   ├── sd-lldp-rx.c
│   │   ├── sd-lldp-tx.c
│   │   ├── sd-ndisc.c
│   │   ├── sd-radv.c
│   │   ├── test-acd.c
│   │   ├── test-dhcp-client.c
│   │   ├── test-dhcp-option.c
│   │   ├── test-dhcp-server.c
│   │   ├── test-dhcp6-client.c
│   │   ├── test-ipv4ll-manual.c
│   │   ├── test-ipv4ll.c
│   │   ├── test-lldp-rx.c
│   │   ├── test-ndisc-ra.c
│   │   ├── test-ndisc-rs.c
│   │   └── test-sd-dhcp-lease.c
│   ├── libudev/
│   │   ├── libudev-device-internal.h
│   │   ├── libudev-device.c
│   │   ├── libudev-enumerate.c
│   │   ├── libudev-hwdb.c
│   │   ├── libudev-list-internal.h
│   │   ├── libudev-list.c
│   │   ├── libudev-monitor.c
│   │   ├── libudev-queue.c
│   │   ├── libudev-util.c
│   │   ├── libudev-util.h
│   │   ├── libudev.c
│   │   ├── libudev.h
│   │   ├── libudev.pc.in
│   │   ├── libudev.sym
│   │   ├── meson.build
│   │   ├── test-libudev.c
│   │   └── test-udev-device-thread.c
│   ├── locale/
│   │   ├── kbd-model-map
│   │   ├── language-fallback-map
│   │   ├── localectl.c
│   │   ├── localed-util.c
│   │   ├── localed-util.h
│   │   ├── localed.c
│   │   ├── meson.build
│   │   ├── org.freedesktop.locale1.conf
│   │   ├── org.freedesktop.locale1.policy
│   │   ├── org.freedesktop.locale1.service
│   │   ├── test-localed-util.c
│   │   ├── xkbcommon-util.c
│   │   └── xkbcommon-util.h
│   ├── login/
│   │   ├── inhibit.c
│   │   ├── loginctl.c
│   │   ├── logind-action.c
│   │   ├── logind-action.h
│   │   ├── logind-brightness.c
│   │   ├── logind-brightness.h
│   │   ├── logind-button.c
│   │   ├── logind-button.h
│   │   ├── logind-core.c
│   │   ├── logind-dbus.c
│   │   ├── logind-dbus.h
│   │   ├── logind-device.c
│   │   ├── logind-device.h
│   │   ├── logind-gperf.gperf
│   │   ├── logind-inhibit.c
│   │   ├── logind-inhibit.h
│   │   ├── logind-polkit.c
│   │   ├── logind-polkit.h
│   │   ├── logind-seat-dbus.c
│   │   ├── logind-seat-dbus.h
│   │   ├── logind-seat.c
│   │   ├── logind-seat.h
│   │   ├── logind-session-dbus.c
│   │   ├── logind-session-dbus.h
│   │   ├── logind-session-device.c
│   │   ├── logind-session-device.h
│   │   ├── logind-session.c
│   │   ├── logind-session.h
│   │   ├── logind-user-dbus.c
│   │   ├── logind-user-dbus.h
│   │   ├── logind-user.c
│   │   ├── logind-user.h
│   │   ├── logind-wall.c
│   │   ├── logind.c
│   │   ├── logind.conf.in
│   │   ├── logind.h
│   │   ├── meson.build
│   │   ├── org.freedesktop.login1.conf
│   │   ├── org.freedesktop.login1.policy
│   │   ├── org.freedesktop.login1.service
│   │   ├── pam_systemd.c
│   │   ├── pam_systemd.sym
│   │   ├── pam_systemd_loadkey.c
│   │   ├── pam_systemd_loadkey.sym
│   │   ├── sysfs-show.c
│   │   ├── sysfs-show.h
│   │   ├── systemd-user.in
│   │   ├── test-inhibit.c
│   │   ├── test-login-shared.c
│   │   ├── test-login-tables.c
│   │   ├── test-session-properties.c
│   │   └── user-runtime-dir.c
│   ├── machine/
│   │   ├── image-dbus.c
│   │   ├── image-dbus.h
│   │   ├── machine-dbus.c
│   │   ├── machine-dbus.h
│   │   ├── machine.c
│   │   ├── machine.h
│   │   ├── machinectl.c
│   │   ├── machined-core.c
│   │   ├── machined-dbus.c
│   │   ├── machined-varlink.c
│   │   ├── machined-varlink.h
│   │   ├── machined.c
│   │   ├── machined.h
│   │   ├── meson.build
│   │   ├── operation.c
│   │   ├── operation.h
│   │   ├── org.freedesktop.machine1.conf
│   │   ├── org.freedesktop.machine1.policy
│   │   ├── org.freedesktop.machine1.service
│   │   └── test-machine-tables.c
│   ├── machine-id-setup/
│   │   ├── machine-id-setup-main.c
│   │   └── meson.build
│   ├── modules-load/
│   │   ├── meson.build
│   │   └── modules-load.c
│   ├── mount/
│   │   ├── meson.build
│   │   └── mount-tool.c
│   ├── network/
│   │   ├── fuzz-netdev-parser.c
│   │   ├── fuzz-netdev-parser.options
│   │   ├── fuzz-network-parser.c
│   │   ├── fuzz-network-parser.options
│   │   ├── generator/
│   │   │   ├── main.c
│   │   │   ├── network-generator.c
│   │   │   ├── network-generator.h
│   │   │   └── test-network-generator.c
│   │   ├── meson.build
│   │   ├── netdev/
│   │   │   ├── bareudp.c
│   │   │   ├── bareudp.h
│   │   │   ├── batadv.c
│   │   │   ├── batadv.h
│   │   │   ├── bond.c
│   │   │   ├── bond.h
│   │   │   ├── bridge.c
│   │   │   ├── bridge.h
│   │   │   ├── dummy.c
│   │   │   ├── dummy.h
│   │   │   ├── fou-tunnel.c
│   │   │   ├── fou-tunnel.h
│   │   │   ├── geneve.c
│   │   │   ├── geneve.h
│   │   │   ├── ifb.c
│   │   │   ├── ifb.h
│   │   │   ├── ipoib.c
│   │   │   ├── ipoib.h
│   │   │   ├── ipvlan.c
│   │   │   ├── ipvlan.h
│   │   │   ├── l2tp-tunnel.c
│   │   │   ├── l2tp-tunnel.h
│   │   │   ├── macsec.c
│   │   │   ├── macsec.h
│   │   │   ├── macvlan.c
│   │   │   ├── macvlan.h
│   │   │   ├── netdev-gperf.gperf
│   │   │   ├── netdev-util.c
│   │   │   ├── netdev-util.h
│   │   │   ├── netdev.c
│   │   │   ├── netdev.h
│   │   │   ├── netdevsim.c
│   │   │   ├── netdevsim.h
│   │   │   ├── nlmon.c
│   │   │   ├── nlmon.h
│   │   │   ├── tunnel.c
│   │   │   ├── tunnel.h
│   │   │   ├── tuntap.c
│   │   │   ├── tuntap.h
│   │   │   ├── vcan.c
│   │   │   ├── vcan.h
│   │   │   ├── veth.c
│   │   │   ├── veth.h
│   │   │   ├── vlan.c
│   │   │   ├── vlan.h
│   │   │   ├── vrf.c
│   │   │   ├── vrf.h
│   │   │   ├── vxcan.c
│   │   │   ├── vxcan.h
│   │   │   ├── vxlan.c
│   │   │   ├── vxlan.h
│   │   │   ├── wireguard.c
│   │   │   ├── wireguard.h
│   │   │   ├── wlan.c
│   │   │   ├── wlan.h
│   │   │   ├── xfrm.c
│   │   │   └── xfrm.h
│   │   ├── networkctl.c
│   │   ├── networkd-address-generation.c
│   │   ├── networkd-address-generation.h
│   │   ├── networkd-address-label.c
│   │   ├── networkd-address-label.h
│   │   ├── networkd-address-pool.c
│   │   ├── networkd-address-pool.h
│   │   ├── networkd-address.c
│   │   ├── networkd-address.h
│   │   ├── networkd-bridge-fdb.c
│   │   ├── networkd-bridge-fdb.h
│   │   ├── networkd-bridge-mdb.c
│   │   ├── networkd-bridge-mdb.h
│   │   ├── networkd-bridge-vlan.c
│   │   ├── networkd-bridge-vlan.h
│   │   ├── networkd-can.c
│   │   ├── networkd-can.h
│   │   ├── networkd-conf.c
│   │   ├── networkd-conf.h
│   │   ├── networkd-dhcp-common.c
│   │   ├── networkd-dhcp-common.h
│   │   ├── networkd-dhcp-prefix-delegation.c
│   │   ├── networkd-dhcp-prefix-delegation.h
│   │   ├── networkd-dhcp-server-bus.c
│   │   ├── networkd-dhcp-server-bus.h
│   │   ├── networkd-dhcp-server-static-lease.c
│   │   ├── networkd-dhcp-server-static-lease.h
│   │   ├── networkd-dhcp-server.c
│   │   ├── networkd-dhcp-server.h
│   │   ├── networkd-dhcp4-bus.c
│   │   ├── networkd-dhcp4-bus.h
│   │   ├── networkd-dhcp4.c
│   │   ├── networkd-dhcp4.h
│   │   ├── networkd-dhcp6-bus.c
│   │   ├── networkd-dhcp6-bus.h
│   │   ├── networkd-dhcp6.c
│   │   ├── networkd-dhcp6.h
│   │   ├── networkd-gperf.gperf
│   │   ├── networkd-ipv4acd.c
│   │   ├── networkd-ipv4acd.h
│   │   ├── networkd-ipv4ll.c
│   │   ├── networkd-ipv4ll.h
│   │   ├── networkd-ipv6-proxy-ndp.c
│   │   ├── networkd-ipv6-proxy-ndp.h
│   │   ├── networkd-ipv6ll.c
│   │   ├── networkd-ipv6ll.h
│   │   ├── networkd-json.c
│   │   ├── networkd-json.h
│   │   ├── networkd-link-bus.c
│   │   ├── networkd-link-bus.h
│   │   ├── networkd-link.c
│   │   ├── networkd-link.h
│   │   ├── networkd-lldp-rx.c
│   │   ├── networkd-lldp-rx.h
│   │   ├── networkd-lldp-tx.c
│   │   ├── networkd-lldp-tx.h
│   │   ├── networkd-manager-bus.c
│   │   ├── networkd-manager-bus.h
│   │   ├── networkd-manager.c
│   │   ├── networkd-manager.h
│   │   ├── networkd-ndisc.c
│   │   ├── networkd-ndisc.h
│   │   ├── networkd-neighbor.c
│   │   ├── networkd-neighbor.h
│   │   ├── networkd-netlabel.c
│   │   ├── networkd-netlabel.h
│   │   ├── networkd-network-bus.c
│   │   ├── networkd-network-bus.h
│   │   ├── networkd-network-gperf.gperf
│   │   ├── networkd-network.c
│   │   ├── networkd-network.h
│   │   ├── networkd-nexthop.c
│   │   ├── networkd-nexthop.h
│   │   ├── networkd-queue.c
│   │   ├── networkd-queue.h
│   │   ├── networkd-radv.c
│   │   ├── networkd-radv.h
│   │   ├── networkd-route-util.c
│   │   ├── networkd-route-util.h
│   │   ├── networkd-route.c
│   │   ├── networkd-route.h
│   │   ├── networkd-routing-policy-rule.c
│   │   ├── networkd-routing-policy-rule.h
│   │   ├── networkd-setlink.c
│   │   ├── networkd-setlink.h
│   │   ├── networkd-speed-meter.c
│   │   ├── networkd-speed-meter.h
│   │   ├── networkd-sriov.c
│   │   ├── networkd-sriov.h
│   │   ├── networkd-state-file.c
│   │   ├── networkd-state-file.h
│   │   ├── networkd-sysctl.c
│   │   ├── networkd-sysctl.h
│   │   ├── networkd-util.c
│   │   ├── networkd-util.h
│   │   ├── networkd-wifi.c
│   │   ├── networkd-wifi.h
│   │   ├── networkd-wiphy.c
│   │   ├── networkd-wiphy.h
│   │   ├── networkd.c
│   │   ├── networkd.conf
│   │   ├── org.freedesktop.network1.conf
│   │   ├── org.freedesktop.network1.policy
│   │   ├── org.freedesktop.network1.service
│   │   ├── systemd-networkd.pkla
│   │   ├── systemd-networkd.rules
│   │   ├── tc/
│   │   │   ├── cake.c
│   │   │   ├── cake.h
│   │   │   ├── codel.c
│   │   │   ├── codel.h
│   │   │   ├── drr.c
│   │   │   ├── drr.h
│   │   │   ├── ets.c
│   │   │   ├── ets.h
│   │   │   ├── fifo.c
│   │   │   ├── fifo.h
│   │   │   ├── fq-codel.c
│   │   │   ├── fq-codel.h
│   │   │   ├── fq-pie.c
│   │   │   ├── fq-pie.h
│   │   │   ├── fq.c
│   │   │   ├── fq.h
│   │   │   ├── gred.c
│   │   │   ├── gred.h
│   │   │   ├── hhf.c
│   │   │   ├── hhf.h
│   │   │   ├── htb.c
│   │   │   ├── htb.h
│   │   │   ├── netem.c
│   │   │   ├── netem.h
│   │   │   ├── pie.c
│   │   │   ├── pie.h
│   │   │   ├── qdisc.c
│   │   │   ├── qdisc.h
│   │   │   ├── qfq.c
│   │   │   ├── qfq.h
│   │   │   ├── sfb.c
│   │   │   ├── sfb.h
│   │   │   ├── sfq.c
│   │   │   ├── sfq.h
│   │   │   ├── tbf.c
│   │   │   ├── tbf.h
│   │   │   ├── tc-util.c
│   │   │   ├── tc-util.h
│   │   │   ├── tc.c
│   │   │   ├── tc.h
│   │   │   ├── tclass.c
│   │   │   ├── tclass.h
│   │   │   ├── teql.c
│   │   │   └── teql.h
│   │   ├── test-network-tables.c
│   │   ├── test-network.c
│   │   ├── test-networkd-address.c
│   │   ├── test-networkd-conf.c
│   │   ├── test-networkd-util.c
│   │   └── wait-online/
│   │       ├── link.c
│   │       ├── link.h
│   │       ├── manager.c
│   │       ├── manager.h
│   │       └── wait-online.c
│   ├── notify/
│   │   ├── meson.build
│   │   └── notify.c
│   ├── nspawn/
│   │   ├── fuzz-nspawn-oci.c
│   │   ├── fuzz-nspawn-oci.options
│   │   ├── fuzz-nspawn-settings.c
│   │   ├── fuzz-nspawn-settings.options
│   │   ├── meson.build
│   │   ├── nspawn-bind-user.c
│   │   ├── nspawn-bind-user.h
│   │   ├── nspawn-cgroup.c
│   │   ├── nspawn-cgroup.h
│   │   ├── nspawn-def.h
│   │   ├── nspawn-expose-ports.c
│   │   ├── nspawn-expose-ports.h
│   │   ├── nspawn-gperf.gperf
│   │   ├── nspawn-mount.c
│   │   ├── nspawn-mount.h
│   │   ├── nspawn-network.c
│   │   ├── nspawn-network.h
│   │   ├── nspawn-oci.c
│   │   ├── nspawn-oci.h
│   │   ├── nspawn-patch-uid.c
│   │   ├── nspawn-patch-uid.h
│   │   ├── nspawn-register.c
│   │   ├── nspawn-register.h
│   │   ├── nspawn-seccomp.c
│   │   ├── nspawn-seccomp.h
│   │   ├── nspawn-settings.c
│   │   ├── nspawn-settings.h
│   │   ├── nspawn-setuid.c
│   │   ├── nspawn-setuid.h
│   │   ├── nspawn-stub-pid1.c
│   │   ├── nspawn-stub-pid1.h
│   │   ├── nspawn-util.c
│   │   ├── nspawn-util.h
│   │   ├── nspawn.c
│   │   ├── nspawn.h
│   │   ├── test-nspawn-tables.c
│   │   ├── test-nspawn-util.c
│   │   └── test-patch-uid.c
│   ├── nss-myhostname/
│   │   ├── meson.build
│   │   ├── nss-myhostname.c
│   │   └── nss-myhostname.sym
│   ├── nss-mymachines/
│   │   ├── meson.build
│   │   ├── nss-mymachines.c
│   │   └── nss-mymachines.sym
│   ├── nss-resolve/
│   │   ├── meson.build
│   │   ├── nss-resolve.c
│   │   └── nss-resolve.sym
│   ├── nss-systemd/
│   │   ├── meson.build
│   │   ├── nss-systemd.c
│   │   ├── nss-systemd.h
│   │   ├── nss-systemd.sym
│   │   ├── userdb-glue.c
│   │   └── userdb-glue.h
│   ├── oom/
│   │   ├── meson.build
│   │   ├── oomctl.c
│   │   ├── oomd-manager-bus.c
│   │   ├── oomd-manager-bus.h
│   │   ├── oomd-manager.c
│   │   ├── oomd-manager.h
│   │   ├── oomd-util.c
│   │   ├── oomd-util.h
│   │   ├── oomd.c
│   │   ├── oomd.conf
│   │   ├── org.freedesktop.oom1.conf
│   │   ├── org.freedesktop.oom1.service
│   │   └── test-oomd-util.c
│   ├── partition/
│   │   ├── definitions/
│   │   │   ├── confext.repart.d/
│   │   │   │   ├── 10-root.conf
│   │   │   │   ├── 20-root-verity.conf
│   │   │   │   └── 30-root-verity-sig.conf
│   │   │   ├── portable.repart.d/
│   │   │   │   ├── 10-root.conf
│   │   │   │   ├── 20-root-verity.conf
│   │   │   │   └── 30-root-verity-sig.conf
│   │   │   └── sysext.repart.d/
│   │   │       ├── 10-root.conf
│   │   │       ├── 20-root-verity.conf
│   │   │       └── 30-root-verity-sig.conf
│   │   ├── growfs.c
│   │   ├── makefs.c
│   │   ├── meson.build
│   │   └── repart.c
│   ├── path/
│   │   ├── meson.build
│   │   └── path.c
│   ├── pcrextend/
│   │   ├── meson.build
│   │   └── pcrextend.c
│   ├── pcrlock/
│   │   ├── meson.build
│   │   ├── pcrlock-firmware.c
│   │   ├── pcrlock-firmware.h
│   │   ├── pcrlock.c
│   │   ├── pcrlock.d/
│   │   │   ├── 350-action-efi-application.pcrlock
│   │   │   ├── 400-secureboot-separator.pcrlock.d/
│   │   │   │   ├── 300-0x00000000.pcrlock
│   │   │   │   └── 600-0xffffffff.pcrlock
│   │   │   ├── 500-separator.pcrlock.d/
│   │   │   │   ├── 300-0x00000000.pcrlock
│   │   │   │   └── 600-0xffffffff.pcrlock
│   │   │   ├── 700-action-efi-exit-boot-services.pcrlock.d/
│   │   │   │   ├── 300-present.pcrlock
│   │   │   │   └── 600-absent.pcrlock
│   │   │   ├── 750-enter-initrd.pcrlock
│   │   │   ├── 800-leave-initrd.pcrlock
│   │   │   ├── 850-sysinit.pcrlock
│   │   │   ├── 900-ready.pcrlock
│   │   │   ├── 950-shutdown.pcrlock
│   │   │   └── 990-final.pcrlock
│   │   ├── pehash.c
│   │   └── pehash.h
│   ├── portable/
│   │   ├── meson.build
│   │   ├── org.freedesktop.portable1.conf
│   │   ├── org.freedesktop.portable1.policy
│   │   ├── org.freedesktop.portable1.service
│   │   ├── portable.c
│   │   ├── portable.h
│   │   ├── portablectl.c
│   │   ├── portabled-bus.c
│   │   ├── portabled-bus.h
│   │   ├── portabled-image-bus.c
│   │   ├── portabled-image-bus.h
│   │   ├── portabled-image.c
│   │   ├── portabled-image.h
│   │   ├── portabled-operation.c
│   │   ├── portabled-operation.h
│   │   ├── portabled.c
│   │   ├── portabled.h
│   │   └── profile/
│   │       ├── default/
│   │       │   └── service.conf
│   │       ├── nonetwork/
│   │       │   └── service.conf
│   │       ├── strict/
│   │       │   └── service.conf
│   │       └── trusted/
│   │           └── service.conf
│   ├── pstore/
│   │   ├── meson.build
│   │   ├── pstore.c
│   │   └── pstore.conf
│   ├── quotacheck/
│   │   ├── meson.build
│   │   └── quotacheck.c
│   ├── random-seed/
│   │   ├── meson.build
│   │   └── random-seed.c
│   ├── rc-local-generator/
│   │   ├── meson.build
│   │   └── rc-local-generator.c
│   ├── remount-fs/
│   │   ├── meson.build
│   │   └── remount-fs.c
│   ├── reply-password/
│   │   ├── meson.build
│   │   └── reply-password.c
│   ├── resolve/
│   │   ├── RFCs
│   │   ├── dns-type.c
│   │   ├── dns-type.h
│   │   ├── dns_type-to-name.awk
│   │   ├── fuzz-dns-packet.c
│   │   ├── fuzz-dns-packet.options
│   │   ├── fuzz-etc-hosts.c
│   │   ├── fuzz-resource-record.c
│   │   ├── generate-dns_type-gperf.py
│   │   ├── generate-dns_type-list.sed
│   │   ├── meson.build
│   │   ├── org.freedesktop.resolve1.conf
│   │   ├── org.freedesktop.resolve1.policy
│   │   ├── org.freedesktop.resolve1.service
│   │   ├── resolv.conf
│   │   ├── resolvconf-compat.c
│   │   ├── resolvconf-compat.h
│   │   ├── resolvectl.c
│   │   ├── resolvectl.h
│   │   ├── resolved-bus.c
│   │   ├── resolved-bus.h
│   │   ├── resolved-conf.c
│   │   ├── resolved-conf.h
│   │   ├── resolved-def.h
│   │   ├── resolved-dns-answer.c
│   │   ├── resolved-dns-answer.h
│   │   ├── resolved-dns-cache.c
│   │   ├── resolved-dns-cache.h
│   │   ├── resolved-dns-dnssec.c
│   │   ├── resolved-dns-dnssec.h
│   │   ├── resolved-dns-packet.c
│   │   ├── resolved-dns-packet.h
│   │   ├── resolved-dns-query.c
│   │   ├── resolved-dns-query.h
│   │   ├── resolved-dns-question.c
│   │   ├── resolved-dns-question.h
│   │   ├── resolved-dns-rr.c
│   │   ├── resolved-dns-rr.h
│   │   ├── resolved-dns-scope.c
│   │   ├── resolved-dns-scope.h
│   │   ├── resolved-dns-search-domain.c
│   │   ├── resolved-dns-search-domain.h
│   │   ├── resolved-dns-server.c
│   │   ├── resolved-dns-server.h
│   │   ├── resolved-dns-stream.c
│   │   ├── resolved-dns-stream.h
│   │   ├── resolved-dns-stub.c
│   │   ├── resolved-dns-stub.h
│   │   ├── resolved-dns-synthesize.c
│   │   ├── resolved-dns-synthesize.h
│   │   ├── resolved-dns-transaction.c
│   │   ├── resolved-dns-transaction.h
│   │   ├── resolved-dns-trust-anchor.c
│   │   ├── resolved-dns-trust-anchor.h
│   │   ├── resolved-dns-zone.c
│   │   ├── resolved-dns-zone.h
│   │   ├── resolved-dnssd-bus.c
│   │   ├── resolved-dnssd-bus.h
│   │   ├── resolved-dnssd-gperf.gperf
│   │   ├── resolved-dnssd.c
│   │   ├── resolved-dnssd.h
│   │   ├── resolved-dnstls-gnutls.c
│   │   ├── resolved-dnstls-gnutls.h
│   │   ├── resolved-dnstls-openssl.c
│   │   ├── resolved-dnstls-openssl.h
│   │   ├── resolved-dnstls.h
│   │   ├── resolved-etc-hosts.c
│   │   ├── resolved-etc-hosts.h
│   │   ├── resolved-gperf.gperf
│   │   ├── resolved-link-bus.c
│   │   ├── resolved-link-bus.h
│   │   ├── resolved-link.c
│   │   ├── resolved-link.h
│   │   ├── resolved-llmnr.c
│   │   ├── resolved-llmnr.h
│   │   ├── resolved-manager.c
│   │   ├── resolved-manager.h
│   │   ├── resolved-mdns.c
│   │   ├── resolved-mdns.h
│   │   ├── resolved-resolv-conf.c
│   │   ├── resolved-resolv-conf.h
│   │   ├── resolved-socket-graveyard.c
│   │   ├── resolved-socket-graveyard.h
│   │   ├── resolved-timeouts.h
│   │   ├── resolved-util.c
│   │   ├── resolved-util.h
│   │   ├── resolved-varlink.c
│   │   ├── resolved-varlink.h
│   │   ├── resolved.c
│   │   ├── resolved.conf.in
│   │   ├── test-dns-packet.c
│   │   ├── test-dnssec-complex.c
│   │   ├── test-dnssec.c
│   │   ├── test-resolve-tables.c
│   │   ├── test-resolved-etc-hosts.c
│   │   ├── test-resolved-packet.c
│   │   └── test-resolved-stream.c
│   ├── rfkill/
│   │   ├── meson.build
│   │   └── rfkill.c
│   ├── rpm/
│   │   ├── macros.systemd.in
│   │   ├── meson.build
│   │   ├── systemd-update-helper.in
│   │   ├── triggers.systemd.in
│   │   └── triggers.systemd.sh.in
│   ├── run/
│   │   ├── meson.build
│   │   └── run.c
│   ├── run-generator/
│   │   ├── meson.build
│   │   └── run-generator.c
│   ├── shared/
│   │   ├── acl-util.c
│   │   ├── acl-util.h
│   │   ├── acpi-fpdt.c
│   │   ├── acpi-fpdt.h
│   │   ├── apparmor-util.c
│   │   ├── apparmor-util.h
│   │   ├── ask-password-api.c
│   │   ├── ask-password-api.h
│   │   ├── async.c
│   │   ├── async.h
│   │   ├── barrier.c
│   │   ├── barrier.h
│   │   ├── base-filesystem.c
│   │   ├── base-filesystem.h
│   │   ├── battery-util.c
│   │   ├── battery-util.h
│   │   ├── binfmt-util.c
│   │   ├── binfmt-util.h
│   │   ├── bitmap.c
│   │   ├── bitmap.h
│   │   ├── blkid-util.h
│   │   ├── blockdev-util.c
│   │   ├── blockdev-util.h
│   │   ├── bond-util.c
│   │   ├── bond-util.h
│   │   ├── boot-entry.c
│   │   ├── boot-entry.h
│   │   ├── boot-timestamps.c
│   │   ├── boot-timestamps.h
│   │   ├── bootspec.c
│   │   ├── bootspec.h
│   │   ├── bpf-compat.h
│   │   ├── bpf-dlopen.c
│   │   ├── bpf-dlopen.h
│   │   ├── bpf-link.c
│   │   ├── bpf-link.h
│   │   ├── bpf-program.c
│   │   ├── bpf-program.h
│   │   ├── bridge-util.c
│   │   ├── bridge-util.h
│   │   ├── btrfs-util.c
│   │   ├── btrfs-util.h
│   │   ├── bus-get-properties.c
│   │   ├── bus-get-properties.h
│   │   ├── bus-locator.c
│   │   ├── bus-locator.h
│   │   ├── bus-log-control-api.c
│   │   ├── bus-log-control-api.h
│   │   ├── bus-map-properties.c
│   │   ├── bus-map-properties.h
│   │   ├── bus-message-util.c
│   │   ├── bus-message-util.h
│   │   ├── bus-object.c
│   │   ├── bus-object.h
│   │   ├── bus-polkit.c
│   │   ├── bus-polkit.h
│   │   ├── bus-print-properties.c
│   │   ├── bus-print-properties.h
│   │   ├── bus-unit-procs.c
│   │   ├── bus-unit-procs.h
│   │   ├── bus-unit-util.c
│   │   ├── bus-unit-util.h
│   │   ├── bus-util.c
│   │   ├── bus-util.h
│   │   ├── bus-wait-for-jobs.c
│   │   ├── bus-wait-for-jobs.h
│   │   ├── bus-wait-for-units.c
│   │   ├── bus-wait-for-units.h
│   │   ├── calendarspec.c
│   │   ├── calendarspec.h
│   │   ├── cgroup-setup.c
│   │   ├── cgroup-setup.h
│   │   ├── cgroup-show.c
│   │   ├── cgroup-show.h
│   │   ├── chown-recursive.c
│   │   ├── chown-recursive.h
│   │   ├── clean-ipc.c
│   │   ├── clean-ipc.h
│   │   ├── clock-util.c
│   │   ├── clock-util.h
│   │   ├── common-signal.c
│   │   ├── common-signal.h
│   │   ├── compare-operator.c
│   │   ├── compare-operator.h
│   │   ├── condition.c
│   │   ├── condition.h
│   │   ├── conf-parser.c
│   │   ├── conf-parser.h
│   │   ├── copy.c
│   │   ├── copy.h
│   │   ├── coredump-util.c
│   │   ├── coredump-util.h
│   │   ├── cpu-set-util.c
│   │   ├── cpu-set-util.h
│   │   ├── creds-util.c
│   │   ├── creds-util.h
│   │   ├── cryptsetup-fido2.c
│   │   ├── cryptsetup-fido2.h
│   │   ├── cryptsetup-util.c
│   │   ├── cryptsetup-util.h
│   │   ├── daemon-util.c
│   │   ├── daemon-util.h
│   │   ├── data-fd-util.c
│   │   ├── data-fd-util.h
│   │   ├── dev-setup.c
│   │   ├── dev-setup.h
│   │   ├── device-nodes.c
│   │   ├── device-nodes.h
│   │   ├── devnode-acl.c
│   │   ├── devnode-acl.h
│   │   ├── discover-image.c
│   │   ├── discover-image.h
│   │   ├── dissect-image.c
│   │   ├── dissect-image.h
│   │   ├── dlfcn-util.c
│   │   ├── dlfcn-util.h
│   │   ├── dm-util.c
│   │   ├── dm-util.h
│   │   ├── dns-domain.c
│   │   ├── dns-domain.h
│   │   ├── dropin.c
│   │   ├── dropin.h
│   │   ├── edit-util.c
│   │   ├── edit-util.h
│   │   ├── efi-api.c
│   │   ├── efi-api.h
│   │   ├── efi-loader.c
│   │   ├── efi-loader.h
│   │   ├── elf-util.c
│   │   ├── elf-util.h
│   │   ├── enable-mempool.c
│   │   ├── env-file-label.c
│   │   ├── env-file-label.h
│   │   ├── ethtool-link-mode.py
│   │   ├── ethtool-util.c
│   │   ├── ethtool-util.h
│   │   ├── exec-util.c
│   │   ├── exec-util.h
│   │   ├── exit-status.c
│   │   ├── exit-status.h
│   │   ├── extension-util.c
│   │   ├── extension-util.h
│   │   ├── fdisk-util.c
│   │   ├── fdisk-util.h
│   │   ├── fdset.c
│   │   ├── fdset.h
│   │   ├── fileio-label.c
│   │   ├── fileio-label.h
│   │   ├── find-esp.c
│   │   ├── find-esp.h
│   │   ├── firewall-util-iptables.c
│   │   ├── firewall-util-nft.c
│   │   ├── firewall-util-private.h
│   │   ├── firewall-util.c
│   │   ├── firewall-util.h
│   │   ├── format-table.c
│   │   ├── format-table.h
│   │   ├── fsck-util.h
│   │   ├── fstab-util.c
│   │   ├── fstab-util.h
│   │   ├── generate-ip-protocol-list.sh
│   │   ├── generate-syscall-list.py
│   │   ├── generator.c
│   │   ├── generator.h
│   │   ├── geneve-util.c
│   │   ├── geneve-util.h
│   │   ├── gpt.c
│   │   ├── gpt.h
│   │   ├── group-record.c
│   │   ├── group-record.h
│   │   ├── hibernate-util.c
│   │   ├── hibernate-util.h
│   │   ├── hostname-setup.c
│   │   ├── hostname-setup.h
│   │   ├── hwdb-util.c
│   │   ├── hwdb-util.h
│   │   ├── id128-print.c
│   │   ├── id128-print.h
│   │   ├── idn-util.c
│   │   ├── idn-util.h
│   │   ├── ima-util.c
│   │   ├── ima-util.h
│   │   ├── image-policy.c
│   │   ├── image-policy.h
│   │   ├── import-util.c
│   │   ├── import-util.h
│   │   ├── in-addr-prefix-util.c
│   │   ├── in-addr-prefix-util.h
│   │   ├── initreq.h
│   │   ├── install-file.c
│   │   ├── install-file.h
│   │   ├── install-printf.c
│   │   ├── install-printf.h
│   │   ├── install.c
│   │   ├── install.h
│   │   ├── ip-protocol-list.c
│   │   ├── ip-protocol-list.h
│   │   ├── ip-protocol-to-name.awk
│   │   ├── ipvlan-util.c
│   │   ├── ipvlan-util.h
│   │   ├── journal-file-util.c
│   │   ├── journal-file-util.h
│   │   ├── journal-importer.c
│   │   ├── journal-importer.h
│   │   ├── journal-util.c
│   │   ├── journal-util.h
│   │   ├── json-internal.h
│   │   ├── json.c
│   │   ├── json.h
│   │   ├── kbd-util.c
│   │   ├── kbd-util.h
│   │   ├── kernel-image.c
│   │   ├── kernel-image.h
│   │   ├── keyring-util.c
│   │   ├── keyring-util.h
│   │   ├── killall.c
│   │   ├── killall.h
│   │   ├── label-util.c
│   │   ├── label-util.h
│   │   ├── libcrypt-util.c
│   │   ├── libcrypt-util.h
│   │   ├── libfido2-util.c
│   │   ├── libfido2-util.h
│   │   ├── libmount-util.c
│   │   ├── libmount-util.h
│   │   ├── libshared.sym
│   │   ├── linux/
│   │   │   ├── README
│   │   │   ├── auto_dev-ioctl.h
│   │   │   ├── bpf.h
│   │   │   ├── bpf_common.h
│   │   │   ├── bpf_insn.h
│   │   │   ├── dm-ioctl.h
│   │   │   └── ethtool.h
│   │   ├── local-addresses.c
│   │   ├── local-addresses.h
│   │   ├── locale-setup.c
│   │   ├── locale-setup.h
│   │   ├── log-link.h
│   │   ├── logs-show.c
│   │   ├── logs-show.h
│   │   ├── loop-util.c
│   │   ├── loop-util.h
│   │   ├── loopback-setup.c
│   │   ├── loopback-setup.h
│   │   ├── lsm-util.c
│   │   ├── lsm-util.h
│   │   ├── machine-credential.c
│   │   ├── machine-credential.h
│   │   ├── machine-id-setup.c
│   │   ├── machine-id-setup.h
│   │   ├── machine-pool.c
│   │   ├── machine-pool.h
│   │   ├── macvlan-util.c
│   │   ├── macvlan-util.h
│   │   ├── main-func.h
│   │   ├── meson.build
│   │   ├── mkdir-label.c
│   │   ├── mkdir-label.h
│   │   ├── mkfs-util.c
│   │   ├── mkfs-util.h
│   │   ├── module-util.c
│   │   ├── module-util.h
│   │   ├── mount-setup.c
│   │   ├── mount-setup.h
│   │   ├── mount-util.c
│   │   ├── mount-util.h
│   │   ├── net-condition.c
│   │   ├── net-condition.h
│   │   ├── netif-naming-scheme.c
│   │   ├── netif-naming-scheme.h
│   │   ├── netif-sriov.c
│   │   ├── netif-sriov.h
│   │   ├── netif-util.c
│   │   ├── netif-util.h
│   │   ├── nscd-flush.c
│   │   ├── nscd-flush.h
│   │   ├── nsflags.c
│   │   ├── nsflags.h
│   │   ├── numa-util.c
│   │   ├── numa-util.h
│   │   ├── open-file.c
│   │   ├── open-file.h
│   │   ├── openssl-util.c
│   │   ├── openssl-util.h
│   │   ├── output-mode.c
│   │   ├── output-mode.h
│   │   ├── pager.c
│   │   ├── pager.h
│   │   ├── pam-util.c
│   │   ├── pam-util.h
│   │   ├── parse-argument.c
│   │   ├── parse-argument.h
│   │   ├── parse-helpers.c
│   │   ├── parse-helpers.h
│   │   ├── password-quality-util-passwdqc.c
│   │   ├── password-quality-util-passwdqc.h
│   │   ├── password-quality-util-pwquality.c
│   │   ├── password-quality-util-pwquality.h
│   │   ├── password-quality-util.h
│   │   ├── pcre2-util.c
│   │   ├── pcre2-util.h
│   │   ├── pcrextend-util.c
│   │   ├── pcrextend-util.h
│   │   ├── pe-binary.c
│   │   ├── pe-binary.h
│   │   ├── pkcs11-util.c
│   │   ├── pkcs11-util.h
│   │   ├── plymouth-util.c
│   │   ├── plymouth-util.h
│   │   ├── pretty-print.c
│   │   ├── pretty-print.h
│   │   ├── ptyfwd.c
│   │   ├── ptyfwd.h
│   │   ├── qrcode-util.c
│   │   ├── qrcode-util.h
│   │   ├── quota-util.c
│   │   ├── quota-util.h
│   │   ├── reboot-util.c
│   │   ├── reboot-util.h
│   │   ├── recovery-key.c
│   │   ├── recovery-key.h
│   │   ├── resize-fs.c
│   │   ├── resize-fs.h
│   │   ├── resolve-util.c
│   │   ├── resolve-util.h
│   │   ├── rm-rf.c
│   │   ├── rm-rf.h
│   │   ├── seccomp-util.c
│   │   ├── seccomp-util.h
│   │   ├── securebits-util.c
│   │   ├── securebits-util.h
│   │   ├── selinux-util.c
│   │   ├── selinux-util.h
│   │   ├── serialize.c
│   │   ├── serialize.h
│   │   ├── service-util.c
│   │   ├── service-util.h
│   │   ├── sleep-config.c
│   │   ├── sleep-config.h
│   │   ├── smack-util.c
│   │   ├── smack-util.h
│   │   ├── socket-label.c
│   │   ├── socket-netlink.c
│   │   ├── socket-netlink.h
│   │   ├── spawn-ask-password-agent.c
│   │   ├── spawn-ask-password-agent.h
│   │   ├── spawn-polkit-agent.c
│   │   ├── spawn-polkit-agent.h
│   │   ├── specifier.c
│   │   ├── specifier.h
│   │   ├── switch-root.c
│   │   ├── switch-root.h
│   │   ├── test-tables.h
│   │   ├── tests.c
│   │   ├── tests.h
│   │   ├── tmpfile-util-label.c
│   │   ├── tmpfile-util-label.h
│   │   ├── tomoyo-util.c
│   │   ├── tomoyo-util.h
│   │   ├── tpm2-event-log.c
│   │   ├── tpm2-event-log.h
│   │   ├── tpm2-util.c
│   │   ├── tpm2-util.h
│   │   ├── udev-util.c
│   │   ├── udev-util.h
│   │   ├── user-record-nss.c
│   │   ├── user-record-nss.h
│   │   ├── user-record-show.c
│   │   ├── user-record-show.h
│   │   ├── user-record.c
│   │   ├── user-record.h
│   │   ├── userdb-dropin.c
│   │   ├── userdb-dropin.h
│   │   ├── userdb.c
│   │   ├── userdb.h
│   │   ├── utmp-wtmp.c
│   │   ├── utmp-wtmp.h
│   │   ├── varlink-idl.c
│   │   ├── varlink-idl.h
│   │   ├── varlink-internal.h
│   │   ├── varlink-io.systemd.Journal.c
│   │   ├── varlink-io.systemd.Journal.h
│   │   ├── varlink-io.systemd.ManagedOOM.c
│   │   ├── varlink-io.systemd.ManagedOOM.h
│   │   ├── varlink-io.systemd.PCRExtend.c
│   │   ├── varlink-io.systemd.PCRExtend.h
│   │   ├── varlink-io.systemd.Resolve.Monitor.c
│   │   ├── varlink-io.systemd.Resolve.Monitor.h
│   │   ├── varlink-io.systemd.Resolve.c
│   │   ├── varlink-io.systemd.Resolve.h
│   │   ├── varlink-io.systemd.UserDatabase.c
│   │   ├── varlink-io.systemd.UserDatabase.h
│   │   ├── varlink-io.systemd.c
│   │   ├── varlink-io.systemd.h
│   │   ├── varlink-io.systemd.oom.c
│   │   ├── varlink-io.systemd.oom.h
│   │   ├── varlink-io.systemd.service.c
│   │   ├── varlink-io.systemd.service.h
│   │   ├── varlink-io.systemd.sysext.c
│   │   ├── varlink-io.systemd.sysext.h
│   │   ├── varlink-org.varlink.service.c
│   │   ├── varlink-org.varlink.service.h
│   │   ├── varlink.c
│   │   ├── varlink.h
│   │   ├── verb-log-control.c
│   │   ├── verb-log-control.h
│   │   ├── verbs.c
│   │   ├── verbs.h
│   │   ├── vlan-util.c
│   │   ├── vlan-util.h
│   │   ├── volatile-util.c
│   │   ├── volatile-util.h
│   │   ├── wall.c
│   │   ├── wall.h
│   │   ├── watchdog.c
│   │   ├── watchdog.h
│   │   ├── web-util.c
│   │   ├── web-util.h
│   │   ├── wifi-util.c
│   │   ├── wifi-util.h
│   │   ├── xml.c
│   │   └── xml.h
│   ├── shutdown/
│   │   ├── detach-dm.c
│   │   ├── detach-dm.h
│   │   ├── detach-loopback.c
│   │   ├── detach-loopback.h
│   │   ├── detach-md.c
│   │   ├── detach-md.h
│   │   ├── detach-swap.c
│   │   ├── detach-swap.h
│   │   ├── meson.build
│   │   ├── shutdown.c
│   │   ├── shutdown.h
│   │   ├── test-umount.c
│   │   ├── umount.c
│   │   └── umount.h
│   ├── sleep/
│   │   ├── battery-capacity.c
│   │   ├── battery-capacity.h
│   │   ├── meson.build
│   │   ├── sleep.c
│   │   ├── sleep.conf
│   │   └── test-battery-capacity.c
│   ├── socket-activate/
│   │   ├── meson.build
│   │   └── socket-activate.c
│   ├── socket-proxy/
│   │   ├── meson.build
│   │   └── socket-proxyd.c
│   ├── stdio-bridge/
│   │   ├── meson.build
│   │   └── stdio-bridge.c
│   ├── storagetm/
│   │   ├── meson.build
│   │   └── storagetm.c
│   ├── sulogin-shell/
│   │   ├── meson.build
│   │   └── sulogin-shell.c
│   ├── sysctl/
│   │   ├── meson.build
│   │   └── sysctl.c
│   ├── sysext/
│   │   ├── meson.build
│   │   └── sysext.c
│   ├── system-update-generator/
│   │   ├── meson.build
│   │   └── system-update-generator.c
│   ├── systemctl/
│   │   ├── fuzz-systemctl-parse-argv.c
│   │   ├── meson.build
│   │   ├── systemctl-add-dependency.c
│   │   ├── systemctl-add-dependency.h
│   │   ├── systemctl-cancel-job.c
│   │   ├── systemctl-cancel-job.h
│   │   ├── systemctl-clean-or-freeze.c
│   │   ├── systemctl-clean-or-freeze.h
│   │   ├── systemctl-compat-halt.c
│   │   ├── systemctl-compat-halt.h
│   │   ├── systemctl-compat-runlevel.c
│   │   ├── systemctl-compat-runlevel.h
│   │   ├── systemctl-compat-shutdown.c
│   │   ├── systemctl-compat-shutdown.h
│   │   ├── systemctl-compat-telinit.c
│   │   ├── systemctl-compat-telinit.h
│   │   ├── systemctl-daemon-reload.c
│   │   ├── systemctl-daemon-reload.h
│   │   ├── systemctl-edit.c
│   │   ├── systemctl-edit.h
│   │   ├── systemctl-enable.c
│   │   ├── systemctl-enable.h
│   │   ├── systemctl-is-active.c
│   │   ├── systemctl-is-active.h
│   │   ├── systemctl-is-enabled.c
│   │   ├── systemctl-is-enabled.h
│   │   ├── systemctl-is-system-running.c
│   │   ├── systemctl-is-system-running.h
│   │   ├── systemctl-kill.c
│   │   ├── systemctl-kill.h
│   │   ├── systemctl-list-dependencies.c
│   │   ├── systemctl-list-dependencies.h
│   │   ├── systemctl-list-jobs.c
│   │   ├── systemctl-list-jobs.h
│   │   ├── systemctl-list-machines.c
│   │   ├── systemctl-list-machines.h
│   │   ├── systemctl-list-unit-files.c
│   │   ├── systemctl-list-unit-files.h
│   │   ├── systemctl-list-units.c
│   │   ├── systemctl-list-units.h
│   │   ├── systemctl-log-setting.c
│   │   ├── systemctl-log-setting.h
│   │   ├── systemctl-logind.c
│   │   ├── systemctl-logind.h
│   │   ├── systemctl-mount.c
│   │   ├── systemctl-mount.h
│   │   ├── systemctl-preset-all.c
│   │   ├── systemctl-preset-all.h
│   │   ├── systemctl-reset-failed.c
│   │   ├── systemctl-reset-failed.h
│   │   ├── systemctl-service-watchdogs.c
│   │   ├── systemctl-service-watchdogs.h
│   │   ├── systemctl-set-default.c
│   │   ├── systemctl-set-default.h
│   │   ├── systemctl-set-environment.c
│   │   ├── systemctl-set-environment.h
│   │   ├── systemctl-set-property.c
│   │   ├── systemctl-set-property.h
│   │   ├── systemctl-show.c
│   │   ├── systemctl-show.h
│   │   ├── systemctl-start-special.c
│   │   ├── systemctl-start-special.h
│   │   ├── systemctl-start-unit.c
│   │   ├── systemctl-start-unit.h
│   │   ├── systemctl-switch-root.c
│   │   ├── systemctl-switch-root.h
│   │   ├── systemctl-sysv-compat.c
│   │   ├── systemctl-sysv-compat.h
│   │   ├── systemctl-trivial-method.c
│   │   ├── systemctl-trivial-method.h
│   │   ├── systemctl-util.c
│   │   ├── systemctl-util.h
│   │   ├── systemctl-whoami.c
│   │   ├── systemctl-whoami.h
│   │   ├── systemctl.c
│   │   ├── systemctl.h
│   │   └── systemd-sysv-install.SKELETON
│   ├── systemd/
│   │   ├── _sd-common.h
│   │   ├── meson.build
│   │   ├── sd-bus-protocol.h
│   │   ├── sd-bus-vtable.h
│   │   ├── sd-bus.h
│   │   ├── sd-daemon.h
│   │   ├── sd-device.h
│   │   ├── sd-dhcp-client.h
│   │   ├── sd-dhcp-lease.h
│   │   ├── sd-dhcp-option.h
│   │   ├── sd-dhcp-protocol.h
│   │   ├── sd-dhcp-server.h
│   │   ├── sd-dhcp6-client.h
│   │   ├── sd-dhcp6-lease.h
│   │   ├── sd-dhcp6-option.h
│   │   ├── sd-dhcp6-protocol.h
│   │   ├── sd-event.h
│   │   ├── sd-gpt.h
│   │   ├── sd-hwdb.h
│   │   ├── sd-id128.h
│   │   ├── sd-ipv4acd.h
│   │   ├── sd-ipv4ll.h
│   │   ├── sd-journal.h
│   │   ├── sd-lldp-rx.h
│   │   ├── sd-lldp-tx.h
│   │   ├── sd-lldp.h
│   │   ├── sd-login.h
│   │   ├── sd-messages.h
│   │   ├── sd-ndisc.h
│   │   ├── sd-netlink.h
│   │   ├── sd-network.h
│   │   ├── sd-path.h
│   │   ├── sd-radv.h
│   │   ├── sd-resolve.h
│   │   └── sd-utf8.h
│   ├── sysupdate/
│   │   ├── meson.build
│   │   ├── sysupdate-cache.c
│   │   ├── sysupdate-cache.h
│   │   ├── sysupdate-instance.c
│   │   ├── sysupdate-instance.h
│   │   ├── sysupdate-partition.c
│   │   ├── sysupdate-partition.h
│   │   ├── sysupdate-pattern.c
│   │   ├── sysupdate-pattern.h
│   │   ├── sysupdate-resource.c
│   │   ├── sysupdate-resource.h
│   │   ├── sysupdate-transfer.c
│   │   ├── sysupdate-transfer.h
│   │   ├── sysupdate-update-set.c
│   │   ├── sysupdate-update-set.h
│   │   ├── sysupdate-util.c
│   │   ├── sysupdate.c
│   │   └── sysupdate.h
│   ├── sysusers/
│   │   ├── meson.build
│   │   └── sysusers.c
│   ├── sysv-generator/
│   │   ├── meson.build
│   │   └── sysv-generator.c
│   ├── test/
│   │   ├── generate-sym-test.py
│   │   ├── meson.build
│   │   ├── nss-test-util.c
│   │   ├── nss-test-util.h
│   │   ├── test-acl-util.c
│   │   ├── test-af-list.c
│   │   ├── test-alloc-util.c
│   │   ├── test-architecture.c
│   │   ├── test-argv-util.c
│   │   ├── test-arphrd-util.c
│   │   ├── test-ask-password-api.c
│   │   ├── test-async.c
│   │   ├── test-barrier.c
│   │   ├── test-bitfield.c
│   │   ├── test-bitmap.c
│   │   ├── test-blockdev-util.c
│   │   ├── test-boot-timestamps.c
│   │   ├── test-bootspec.c
│   │   ├── test-bpf-devices.c
│   │   ├── test-bpf-firewall.c
│   │   ├── test-bpf-foreign-programs.c
│   │   ├── test-bpf-lsm.c
│   │   ├── test-btrfs-physical-offset.c
│   │   ├── test-btrfs.c
│   │   ├── test-bus-util.c
│   │   ├── test-calendarspec.c
│   │   ├── test-cap-list.c
│   │   ├── test-capability.c
│   │   ├── test-cgroup-cpu.c
│   │   ├── test-cgroup-mask.c
│   │   ├── test-cgroup-setup.c
│   │   ├── test-cgroup-unit-default.c
│   │   ├── test-cgroup-util.c
│   │   ├── test-cgroup.c
│   │   ├── test-chase-manual.c
│   │   ├── test-chase.c
│   │   ├── test-chown-rec.c
│   │   ├── test-clock.c
│   │   ├── test-compare-operator.c
│   │   ├── test-compress-benchmark.c
│   │   ├── test-compress.c
│   │   ├── test-condition.c
│   │   ├── test-conf-files.c
│   │   ├── test-conf-parser.c
│   │   ├── test-copy.c
│   │   ├── test-core-unit.c
│   │   ├── test-coredump-util.c
│   │   ├── test-cpu-set-util.c
│   │   ├── test-creds.c
│   │   ├── test-cryptolib.c
│   │   ├── test-daemon.c
│   │   ├── test-data-fd-util.c
│   │   ├── test-date.c
│   │   ├── test-dev-setup.c
│   │   ├── test-device-nodes.c
│   │   ├── test-devnum-util.c
│   │   ├── test-dlopen-so.c
│   │   ├── test-dlopen.c
│   │   ├── test-dns-domain.c
│   │   ├── test-ellipsize.c
│   │   ├── test-emergency-action.c
│   │   ├── test-engine.c
│   │   ├── test-env-file.c
│   │   ├── test-env-util.c
│   │   ├── test-errno-list.c
│   │   ├── test-errno-util.c
│   │   ├── test-escape.c
│   │   ├── test-ether-addr-util.c
│   │   ├── test-exec-util.c
│   │   ├── test-execute.c
│   │   ├── test-execve.c
│   │   ├── test-exit-status.c
│   │   ├── test-extract-word.c
│   │   ├── test-fd-util.c
│   │   ├── test-fdset.c
│   │   ├── test-fiemap.c
│   │   ├── test-fileio.c
│   │   ├── test-firewall-util.c
│   │   ├── test-format-table.c
│   │   ├── test-format-util.c
│   │   ├── test-fs-util.c
│   │   ├── test-fstab-util.c
│   │   ├── test-glob-util.c
│   │   ├── test-gpt.c
│   │   ├── test-gunicode.c
│   │   ├── test-hash-funcs.c
│   │   ├── test-hashmap-ordered.awk
│   │   ├── test-hashmap-plain.c
│   │   ├── test-hashmap.c
│   │   ├── test-hexdecoct.c
│   │   ├── test-hmac.c
│   │   ├── test-hostname-setup.c
│   │   ├── test-hostname-util.c
│   │   ├── test-id128.c
│   │   ├── test-image-policy.c
│   │   ├── test-import-util.c
│   │   ├── test-in-addr-prefix-util.c
│   │   ├── test-in-addr-util.c
│   │   ├── test-install-file.c
│   │   ├── test-install-root.c
│   │   ├── test-install.c
│   │   ├── test-io-util.c
│   │   ├── test-ip-protocol-list.c
│   │   ├── test-ipcrm.c
│   │   ├── test-job-type.c
│   │   ├── test-journal-importer.c
│   │   ├── test-json.c
│   │   ├── test-kbd-util.c
│   │   ├── test-libcrypt-util.c
│   │   ├── test-libmount.c
│   │   ├── test-limits-util.c
│   │   ├── test-list.c
│   │   ├── test-load-fragment.c
│   │   ├── test-local-addresses.c
│   │   ├── test-locale-util.c
│   │   ├── test-lock-util.c
│   │   ├── test-log.c
│   │   ├── test-logarithm.c
│   │   ├── test-loop-block.c
│   │   ├── test-loopback.c
│   │   ├── test-macro.c
│   │   ├── test-manager.c
│   │   ├── test-math-util.c
│   │   ├── test-memfd-util.c
│   │   ├── test-memory-util.c
│   │   ├── test-mempool.c
│   │   ├── test-mempress.c
│   │   ├── test-memstream-util.c
│   │   ├── test-mkdir.c
│   │   ├── test-modhex.c
│   │   ├── test-mount-util.c
│   │   ├── test-mountpoint-util.c
│   │   ├── test-namespace.c
│   │   ├── test-net-naming-scheme.c
│   │   ├── test-netlink-manual.c
│   │   ├── test-nft-set.c
│   │   ├── test-ns.c
│   │   ├── test-nscd-flush.c
│   │   ├── test-nss-hosts.c
│   │   ├── test-nss-users.c
│   │   ├── test-nulstr-util.c
│   │   ├── test-open-file.c
│   │   ├── test-openssl.c
│   │   ├── test-ordered-set.c
│   │   ├── test-os-util.c
│   │   ├── test-parse-argument.c
│   │   ├── test-parse-helpers.c
│   │   ├── test-parse-util.c
│   │   ├── test-path-lookup.c
│   │   ├── test-path-util.c
│   │   ├── test-path.c
│   │   ├── test-percent-util.c
│   │   ├── test-pretty-print.c
│   │   ├── test-prioq.c
│   │   ├── test-proc-cmdline.c
│   │   ├── test-process-util.c
│   │   ├── test-procfs-util.c
│   │   ├── test-psi-util.c
│   │   ├── test-qrcode-util.c
│   │   ├── test-random-util.c
│   │   ├── test-ratelimit.c
│   │   ├── test-raw-clone.c
│   │   ├── test-recurse-dir.c
│   │   ├── test-replace-var.c
│   │   ├── test-rlimit-util.c
│   │   ├── test-rm-rf.c
│   │   ├── test-sbat.c
│   │   ├── test-sched-prio.c
│   │   ├── test-sd-hwdb.c
│   │   ├── test-sd-path.c
│   │   ├── test-seccomp.c
│   │   ├── test-secure-bits.c
│   │   ├── test-selinux.c
│   │   ├── test-serialize.c
│   │   ├── test-set-disable-mempool.c
│   │   ├── test-set.c
│   │   ├── test-sha256.c
│   │   ├── test-sigbus.c
│   │   ├── test-signal-util.c
│   │   ├── test-siphash24.c
│   │   ├── test-sizeof.c
│   │   ├── test-sleep-config.c
│   │   ├── test-socket-bind.c
│   │   ├── test-socket-netlink.c
│   │   ├── test-socket-util.c
│   │   ├── test-specifier.c
│   │   ├── test-stat-util.c
│   │   ├── test-static-destruct.c
│   │   ├── test-strbuf.c
│   │   ├── test-string-util.c
│   │   ├── test-strip-tab-ansi.c
│   │   ├── test-strv.c
│   │   ├── test-strxcpyx.c
│   │   ├── test-sysctl-util.c
│   │   ├── test-tables.c
│   │   ├── test-terminal-util.c
│   │   ├── test-time-util.c
│   │   ├── test-tmpfile-util.c
│   │   ├── test-tpm2.c
│   │   ├── test-udev-util.c
│   │   ├── test-uid-alloc-range.c
│   │   ├── test-uid-range.c
│   │   ├── test-umask-util.c
│   │   ├── test-unaligned.c
│   │   ├── test-unit-file.c
│   │   ├── test-unit-name.c
│   │   ├── test-unit-serialize.c
│   │   ├── test-user-util.c
│   │   ├── test-utf8.c
│   │   ├── test-utmp.c
│   │   ├── test-varlink-idl.c
│   │   ├── test-varlink.c
│   │   ├── test-verbs.c
│   │   ├── test-watch-pid.c
│   │   ├── test-watchdog.c
│   │   ├── test-web-util.c
│   │   ├── test-xattr-util.c
│   │   └── test-xml.c
│   ├── timedate/
│   │   ├── meson.build
│   │   ├── org.freedesktop.timedate1.conf
│   │   ├── org.freedesktop.timedate1.policy
│   │   ├── org.freedesktop.timedate1.service
│   │   ├── timedatectl.c
│   │   └── timedated.c
│   ├── timesync/
│   │   ├── 80-systemd-timesync.list
│   │   ├── meson.build
│   │   ├── org.freedesktop.timesync1.conf
│   │   ├── org.freedesktop.timesync1.policy
│   │   ├── org.freedesktop.timesync1.service
│   │   ├── test-timesync.c
│   │   ├── timesyncd-bus.c
│   │   ├── timesyncd-bus.h
│   │   ├── timesyncd-conf.c
│   │   ├── timesyncd-conf.h
│   │   ├── timesyncd-gperf.gperf
│   │   ├── timesyncd-manager.c
│   │   ├── timesyncd-manager.h
│   │   ├── timesyncd-ntp-message.h
│   │   ├── timesyncd-server.c
│   │   ├── timesyncd-server.h
│   │   ├── timesyncd.c
│   │   ├── timesyncd.conf.in
│   │   └── wait-sync.c
│   ├── tmpfiles/
│   │   ├── meson.build
│   │   ├── offline-passwd.c
│   │   ├── offline-passwd.h
│   │   ├── test-offline-passwd.c
│   │   └── tmpfiles.c
│   ├── tpm2-setup/
│   │   ├── meson.build
│   │   └── tpm2-setup.c
│   ├── tty-ask-password-agent/
│   │   ├── meson.build
│   │   └── tty-ask-password-agent.c
│   ├── udev/
│   │   ├── ata_id/
│   │   │   └── ata_id.c
│   │   ├── cdrom_id/
│   │   │   └── cdrom_id.c
│   │   ├── dmi_memory_id/
│   │   │   └── dmi_memory_id.c
│   │   ├── fido_id/
│   │   │   ├── fido_id.c
│   │   │   ├── fido_id_desc.c
│   │   │   ├── fido_id_desc.h
│   │   │   ├── fuzz-fido-id-desc.c
│   │   │   └── test-fido-id-desc.c
│   │   ├── fuzz-udev-rule-parse-value.c
│   │   ├── fuzz-udev-rules.c
│   │   ├── fuzz-udev-rules.options
│   │   ├── generate-keyboard-keys-gperf.sh
│   │   ├── generate-keyboard-keys-list.sh
│   │   ├── iocost/
│   │   │   ├── iocost.c
│   │   │   └── iocost.conf
│   │   ├── meson.build
│   │   ├── mtd_probe/
│   │   │   ├── mtd_probe.c
│   │   │   ├── mtd_probe.h
│   │   │   └── probe_smartmedia.c
│   │   ├── net/
│   │   │   ├── fuzz-link-parser.c
│   │   │   ├── fuzz-link-parser.options
│   │   │   ├── link-config-gperf.gperf
│   │   │   ├── link-config.c
│   │   │   ├── link-config.h
│   │   │   └── test-link-config-tables.c
│   │   ├── scsi_id/
│   │   │   ├── README
│   │   │   ├── scsi.h
│   │   │   ├── scsi_id.c
│   │   │   ├── scsi_id.h
│   │   │   └── scsi_serial.c
│   │   ├── test-udev-builtin.c
│   │   ├── test-udev-format.c
│   │   ├── test-udev-manager.c
│   │   ├── test-udev-node.c
│   │   ├── test-udev-rule-runner.c
│   │   ├── test-udev-rules.c
│   │   ├── test-udev-spawn.c
│   │   ├── udev-builtin-blkid.c
│   │   ├── udev-builtin-btrfs.c
│   │   ├── udev-builtin-hwdb.c
│   │   ├── udev-builtin-input_id.c
│   │   ├── udev-builtin-keyboard.c
│   │   ├── udev-builtin-kmod.c
│   │   ├── udev-builtin-net_driver.c
│   │   ├── udev-builtin-net_id.c
│   │   ├── udev-builtin-net_setup_link.c
│   │   ├── udev-builtin-path_id.c
│   │   ├── udev-builtin-uaccess.c
│   │   ├── udev-builtin-usb_id.c
│   │   ├── udev-builtin.c
│   │   ├── udev-builtin.h
│   │   ├── udev-ctrl.c
│   │   ├── udev-ctrl.h
│   │   ├── udev-event.c
│   │   ├── udev-event.h
│   │   ├── udev-format.c
│   │   ├── udev-format.h
│   │   ├── udev-manager.c
│   │   ├── udev-manager.h
│   │   ├── udev-node.c
│   │   ├── udev-node.h
│   │   ├── udev-rules.c
│   │   ├── udev-rules.h
│   │   ├── udev-spawn.c
│   │   ├── udev-spawn.h
│   │   ├── udev-trace.h
│   │   ├── udev-watch.c
│   │   ├── udev-watch.h
│   │   ├── udev-worker.c
│   │   ├── udev-worker.h
│   │   ├── udev.conf
│   │   ├── udev.pc.in
│   │   ├── udevadm-control.c
│   │   ├── udevadm-hwdb.c
│   │   ├── udevadm-info.c
│   │   ├── udevadm-lock.c
│   │   ├── udevadm-monitor.c
│   │   ├── udevadm-settle.c
│   │   ├── udevadm-test-builtin.c
│   │   ├── udevadm-test.c
│   │   ├── udevadm-trigger.c
│   │   ├── udevadm-util.c
│   │   ├── udevadm-util.h
│   │   ├── udevadm-verify.c
│   │   ├── udevadm-wait.c
│   │   ├── udevadm.c
│   │   ├── udevadm.h
│   │   ├── udevd.c
│   │   ├── udevd.h
│   │   └── v4l_id/
│   │       └── v4l_id.c
│   ├── ukify/
│   │   ├── test/
│   │   │   ├── example.signing.crt.base64
│   │   │   ├── example.signing.key.base64
│   │   │   ├── example.tpm2-pcr-private.pem.base64
│   │   │   ├── example.tpm2-pcr-private2.pem.base64
│   │   │   ├── example.tpm2-pcr-public.pem.base64
│   │   │   ├── example.tpm2-pcr-public2.pem.base64
│   │   │   ├── meson.build
│   │   │   ├── pytest.ini
│   │   │   └── test_ukify.py
│   │   └── ukify.py
│   ├── update-done/
│   │   ├── meson.build
│   │   └── update-done.c
│   ├── update-utmp/
│   │   ├── meson.build
│   │   └── update-utmp.c
│   ├── user-sessions/
│   │   ├── meson.build
│   │   └── user-sessions.c
│   ├── userdb/
│   │   ├── meson.build
│   │   ├── userdbctl.c
│   │   ├── userdbd-manager.c
│   │   ├── userdbd-manager.h
│   │   ├── userdbd.c
│   │   └── userwork.c
│   ├── varlinkctl/
│   │   ├── meson.build
│   │   └── varlinkctl.c
│   ├── vconsole/
│   │   ├── meson.build
│   │   └── vconsole-setup.c
│   ├── veritysetup/
│   │   ├── meson.build
│   │   ├── veritysetup-generator.c
│   │   └── veritysetup.c
│   ├── version/
│   │   └── version.h.in
│   ├── vmspawn/
│   │   ├── meson.build
│   │   ├── vmspawn-settings.c
│   │   ├── vmspawn-settings.h
│   │   ├── vmspawn-util.c
│   │   ├── vmspawn-util.h
│   │   └── vmspawn.c
│   ├── volatile-root/
│   │   ├── meson.build
│   │   └── volatile-root.c
│   └── xdg-autostart-generator/
│       ├── fuzz-xdg-desktop.c
│       ├── fuzz-xdg-desktop.options
│       ├── meson.build
│       ├── test-xdg-autostart.c
│       ├── xdg-autostart-condition.c
│       ├── xdg-autostart-generator.c
│       ├── xdg-autostart-service.c
│       └── xdg-autostart-service.h
├── sysctl.d/
│   ├── 50-coredump.conf.in
│   ├── 50-default.conf
│   ├── 50-pid-max.conf
│   ├── README
│   └── meson.build
├── sysusers.d/
│   ├── README
│   ├── basic.conf.in
│   ├── meson.build
│   ├── systemd-coredump.conf
│   ├── systemd-journal.conf.in
│   ├── systemd-network.conf.in
│   ├── systemd-oom.conf
│   ├── systemd-remote.conf
│   ├── systemd-resolve.conf.in
│   └── systemd-timesync.conf.in
├── test/
│   ├── .gitignore
│   ├── README.testsuite
│   ├── TEST-01-BASIC/
│   │   ├── Makefile
│   │   └── test.sh
│   ├── TEST-02-UNITTESTS/
│   │   └── test.sh
│   ├── TEST-03-JOBS/
│   │   └── test.sh
│   ├── TEST-04-JOURNAL/
│   │   └── test.sh
│   ├── TEST-05-RLIMITS/
│   │   └── test.sh
│   ├── TEST-06-SELINUX/
│   │   └── test.sh
│   ├── TEST-07-PID1/
│   │   └── test.sh
│   ├── TEST-08-INITRD/
│   │   └── test.sh
│   ├── TEST-09-REBOOT/
│   │   └── test.sh
│   ├── TEST-13-NSPAWN/
│   │   └── test.sh
│   ├── TEST-15-DROPIN/
│   │   └── test.sh
│   ├── TEST-16-EXTEND-TIMEOUT/
│   │   └── test.sh
│   ├── TEST-17-UDEV/
│   │   ├── deny-list-ubuntu-ci-ppc64el
│   │   └── test.sh
│   ├── TEST-18-FAILUREACTION/
│   │   └── test.sh
│   ├── TEST-19-CGROUP/
│   │   └── test.sh
│   ├── TEST-21-DFUZZER/
│   │   └── test.sh
│   ├── TEST-22-TMPFILES/
│   │   └── test.sh
│   ├── TEST-23-UNIT-FILE/
│   │   └── test.sh
│   ├── TEST-24-CRYPTSETUP/
│   │   └── test.sh
│   ├── TEST-25-IMPORT/
│   │   └── test.sh
│   ├── TEST-26-SYSTEMCTL/
│   │   └── test.sh
│   ├── TEST-29-PORTABLE/
│   │   └── test.sh
│   ├── TEST-30-ONCLOCKCHANGE/
│   │   └── test.sh
│   ├── TEST-31-DEVICE-ENUMERATION/
│   │   └── test.sh
│   ├── TEST-32-OOMPOLICY/
│   │   └── test.sh
│   ├── TEST-34-DYNAMICUSERMIGRATE/
│   │   └── test.sh
│   ├── TEST-35-LOGIN/
│   │   └── test.sh
│   ├── TEST-36-NUMAPOLICY/
│   │   └── test.sh
│   ├── TEST-38-FREEZER/
│   │   └── test.sh
│   ├── TEST-43-PRIVATEUSER-UNPRIV/
│   │   └── test.sh
│   ├── TEST-44-LOG-NAMESPACE/
│   │   └── test.sh
│   ├── TEST-45-TIMEDATE/
│   │   └── test.sh
│   ├── TEST-46-HOMED/
│   │   └── test.sh
│   ├── TEST-50-DISSECT/
│   │   └── test.sh
│   ├── TEST-52-HONORFIRSTSHUTDOWN/
│   │   └── test.sh
│   ├── TEST-53-ISSUE-16347/
│   │   └── test.sh
│   ├── TEST-54-CREDS/
│   │   └── test.sh
│   ├── TEST-55-OOMD/
│   │   └── test.sh
│   ├── TEST-58-REPART/
│   │   └── test.sh
│   ├── TEST-59-RELOADING-RESTART/
│   │   └── test.sh
│   ├── TEST-60-MOUNT-RATELIMIT/
│   │   └── test.sh
│   ├── TEST-62-RESTRICT-IFACES/
│   │   └── test.sh
│   ├── TEST-63-PATH/
│   │   └── test.sh
│   ├── TEST-64-UDEV-STORAGE/
│   │   ├── deny-list-ubuntu-ci
│   │   └── test.sh
│   ├── TEST-65-ANALYZE/
│   │   └── test.sh
│   ├── TEST-66-DEVICE-ISOLATION/
│   │   └── test.sh
│   ├── TEST-67-INTEGRITY/
│   │   └── test.sh
│   ├── TEST-68-PROPAGATE-EXIT-STATUS/
│   │   └── test.sh
│   ├── TEST-69-SHUTDOWN/
│   │   └── test.sh
│   ├── TEST-70-TPM2/
│   │   └── test.sh
│   ├── TEST-71-HOSTNAME/
│   │   └── test.sh
│   ├── TEST-72-SYSUPDATE/
│   │   └── test.sh
│   ├── TEST-73-LOCALE/
│   │   └── test.sh
│   ├── TEST-74-AUX-UTILS/
│   │   └── test.sh
│   ├── TEST-75-RESOLVED/
│   │   └── test.sh
│   ├── TEST-76-SYSCTL/
│   │   └── test.sh
│   ├── TEST-77-OPENFILE/
│   │   └── test.sh
│   ├── TEST-78-SIGQUEUE/
│   │   └── test.sh
│   ├── TEST-79-MEMPRESS/
│   │   └── test.sh
│   ├── TEST-80-NOTIFYACCESS/
│   │   └── test.sh
│   ├── TEST-81-GENERATORS/
│   │   └── test.sh
│   ├── TEST-82-SOFTREBOOT/
│   │   └── test.sh
│   ├── TEST-83-BTRFS/
│   │   └── test.sh
│   ├── TEST-84-STORAGETM/
│   │   └── test.sh
│   ├── auxv/
│   │   ├── .gitattributes
│   │   ├── bash.riscv64
│   │   ├── cat.s390x
│   │   ├── dbus-broker-launch.aarch64
│   │   ├── dbus-broker-launch.amd64
│   │   ├── polkitd.aarch64
│   │   ├── resolved.arm32
│   │   ├── sleep.i686
│   │   ├── sleep32.i686
│   │   ├── sleep64.amd64
│   │   ├── sudo.aarch64
│   │   └── sudo.amd64
│   ├── create-sys-script.py
│   ├── dmidecode-dumps/
│   │   ├── .gitattributes
│   │   ├── HP-Z600.bin.txt
│   │   ├── Lenovo-ThinkPad-X280.bin.txt
│   │   └── Lenovo-Thinkcentre-m720s.bin.txt
│   ├── fuzz/
│   │   ├── .gitattributes
│   │   ├── fuzz-bootspec/
│   │   │   ├── crash-autoentry
│   │   │   ├── crash-empty-value
│   │   │   ├── crash-json-dispatch
│   │   │   ├── oss-fuzz-53578
│   │   │   ├── sample1
│   │   │   └── sanitizer-overload
│   │   ├── fuzz-bus-match/
│   │   │   ├── bugzilla1935084.input
│   │   │   └── test.input
│   │   ├── fuzz-bus-message/
│   │   │   ├── crash-array
│   │   │   ├── crash-array-field-skip
│   │   │   ├── crash-array-offset
│   │   │   ├── crash-empty-string
│   │   │   ├── crash-empty-struct
│   │   │   ├── crash-mem-overread
│   │   │   ├── crash-nesting
│   │   │   ├── crash-offset-table
│   │   │   ├── crash-return-value
│   │   │   ├── crash-return-value-again
│   │   │   ├── crash-unsigned-wraparound
│   │   │   ├── issue-23486-case-1
│   │   │   ├── issue-23486-case-2
│   │   │   ├── issue-23486-case-3
│   │   │   ├── leak-container-exit
│   │   │   ├── message1
│   │   │   ├── oss-fuzz-14016
│   │   │   ├── oss-fuzz-19446
│   │   │   ├── timeout-empty-struct
│   │   │   └── zero-offset-to-null-pointer
│   │   ├── fuzz-calendarspec/
│   │   │   ├── cant-parse-printed
│   │   │   ├── corpus
│   │   │   ├── crash-parse-star-non-star
│   │   │   ├── input1
│   │   │   ├── oss-fuzz-14108
│   │   │   ├── oss-fuzz-22208
│   │   │   └── print-loses-spec
│   │   ├── fuzz-catalog/
│   │   │   ├── language-too-short
│   │   │   └── systemd.pl.catalog
│   │   ├── fuzz-compress/
│   │   │   └── issue-36472
│   │   ├── fuzz-dhcp-client/
│   │   │   ├── parse-memleak
│   │   │   └── timeout-lease_parse_routes
│   │   ├── fuzz-dhcp-server/
│   │   │   ├── buffer-overflow-1
│   │   │   ├── buffer-overflow-2
│   │   │   ├── discover-existing
│   │   │   ├── discover-new
│   │   │   ├── duplicate-input-data
│   │   │   ├── release
│   │   │   ├── request-existing
│   │   │   ├── request-new
│   │   │   ├── request-reboot
│   │   │   └── request-renew
│   │   ├── fuzz-dhcp-server-relay/
│   │   │   ├── sample1
│   │   │   ├── sample2
│   │   │   └── too-large-packet
│   │   ├── fuzz-dhcp6-client/
│   │   │   ├── crash-13578
│   │   │   ├── crash-13591
│   │   │   ├── crash-buf-size
│   │   │   ├── crash-domainname
│   │   │   ├── crash-initial1
│   │   │   ├── crash-initial2
│   │   │   ├── crash-initial3
│   │   │   ├── oss-fuzz-10746
│   │   │   └── oss-fuzz-11019
│   │   ├── fuzz-dns-packet/
│   │   │   ├── crash-null
│   │   │   ├── issue-7888
│   │   │   ├── oss-fuzz-13422
│   │   │   ├── oss-fuzz-19227
│   │   │   └── oss-fuzz-5465
│   │   ├── fuzz-env-file/
│   │   │   └── simple-env-file
│   │   ├── fuzz-etc-hosts/
│   │   │   ├── oss-fuzz-47708
│   │   │   └── timeout-strv
│   │   ├── fuzz-execute-serialize/
│   │   │   ├── crash-395e
│   │   │   ├── crash-622a
│   │   │   ├── initial
│   │   │   ├── mount-images
│   │   │   └── state
│   │   ├── fuzz-fido-id-desc/
│   │   │   ├── crash0
│   │   │   ├── crash1
│   │   │   ├── report0
│   │   │   └── report1
│   │   ├── fuzz-journal-remote/
│   │   │   ├── crash-nul-in-field-name
│   │   │   ├── crash-source-realtime-ts
│   │   │   ├── invalid-ts.txt
│   │   │   ├── oss-fuzz-21122
│   │   │   ├── oss-fuzz-25353
│   │   │   ├── oss-fuzz-28817
│   │   │   ├── oss-fuzz-8658
│   │   │   ├── oss-fuzz-8659
│   │   │   ├── oss-fuzz-8686
│   │   │   ├── oss-fuzz-9341
│   │   │   └── sample.txt
│   │   ├── fuzz-journald-audit/
│   │   │   ├── basic
│   │   │   └── crash
│   │   ├── fuzz-journald-kmsg/
│   │   │   ├── basic
│   │   │   ├── crash-ident-with-spaces
│   │   │   ├── dev-null
│   │   │   ├── leak-missing-cleanup
│   │   │   ├── loopback
│   │   │   ├── oss-fuzz-33881
│   │   │   └── subsystem-loopback
│   │   ├── fuzz-journald-native-fd/
│   │   │   └── basic
│   │   ├── fuzz-journald-stream/
│   │   │   └── basic
│   │   ├── fuzz-journald-syslog/
│   │   │   ├── github-9795
│   │   │   ├── github-9820
│   │   │   ├── github-9827
│   │   │   └── github-9829
│   │   ├── fuzz-json/
│   │   │   ├── crash-5639441482252288
│   │   │   ├── github-15907
│   │   │   ├── leak-normalize-fail
│   │   │   ├── leak-normalize-object
│   │   │   ├── leak-sort
│   │   │   └── oss-fuzz-10908
│   │   ├── fuzz-link-parser/
│   │   │   ├── 99-default.link
│   │   │   ├── advertise-segv.link
│   │   │   ├── condition-memleak.link
│   │   │   ├── oss-fuzz-13878
│   │   │   └── oss-fuzz-13882
│   │   ├── fuzz-lldp-rx/
│   │   │   ├── basic
│   │   │   ├── incomplete
│   │   │   └── oui
│   │   ├── fuzz-manager-serialize/
│   │   │   ├── activation-details
│   │   │   ├── bogus-unit-type
│   │   │   ├── empty-attachment-path
│   │   │   ├── invalid-varlink-sock
│   │   │   ├── netns-invalid-socket
│   │   │   ├── service-accept-socket
│   │   │   ├── socket-int-max
│   │   │   └── state
│   │   ├── fuzz-ndisc-rs/
│   │   │   ├── infinite-loop-recv
│   │   │   └── infinite-loop-timeout
│   │   ├── fuzz-netdev-parser/
│   │   │   ├── 6rd-tunnel.netdev
│   │   │   ├── batadv.netdev
│   │   │   ├── bond-backup.netdev
│   │   │   ├── bond.netdev
│   │   │   ├── bridge-2.netdev
│   │   │   ├── bridge.netdev
│   │   │   ├── crash-null-address
│   │   │   ├── dummy-2.netdev
│   │   │   ├── dummy.netdev
│   │   │   ├── erspan-tunnel.netdev
│   │   │   ├── geneve.netdev
│   │   │   ├── github-10615
│   │   │   ├── github-10629
│   │   │   ├── github-15968
│   │   │   ├── gre-tunnel.netdev
│   │   │   ├── gretap-tunnel.netdev
│   │   │   ├── ip6gre-tunnel.netdev
│   │   │   ├── ip6tnl-tunnel.netdev
│   │   │   ├── ipip-tunnel.netdev
│   │   │   ├── ipip-tunnel2.netdev
│   │   │   ├── ipvlan.netdev
│   │   │   ├── macvlan.netdev
│   │   │   ├── macvtap.netdev
│   │   │   ├── oss-fuzz-11279
│   │   │   ├── oss-fuzz-11280
│   │   │   ├── oss-fuzz-11286
│   │   │   ├── oss-fuzz-11287
│   │   │   ├── oss-fuzz-11296
│   │   │   ├── oss-fuzz-11297
│   │   │   ├── oss-fuzz-11299
│   │   │   ├── oss-fuzz-11324
│   │   │   ├── oss-fuzz-11344
│   │   │   ├── oss-fuzz-13719
│   │   │   ├── oss-fuzz-13884
│   │   │   ├── oss-fuzz-13886
│   │   │   ├── oss-fuzz-14157
│   │   │   ├── oss-fuzz-14158
│   │   │   ├── oss-fuzz-22547
│   │   │   ├── oss-fuzz-62556
│   │   │   ├── sit-tunnel.netdev
│   │   │   ├── tap.netdev
│   │   │   ├── tun.netdev
│   │   │   ├── vcan.netdev
│   │   │   ├── veth.netdev
│   │   │   ├── vlan.netdev
│   │   │   ├── vrf.netdev
│   │   │   ├── vti-tunnel.netdev
│   │   │   ├── vti6-tunnel.netdev
│   │   │   ├── vxlan.netdev
│   │   │   ├── wg-dup-endpoint
│   │   │   ├── wireguard.netdev
│   │   │   └── xfrm.netdev
│   │   ├── fuzz-network-parser/
│   │   │   ├── active-slave
│   │   │   ├── address-link-section
│   │   │   ├── address-section
│   │   │   ├── address-section-misc
│   │   │   ├── bond199
│   │   │   ├── bridge-slave-interface-1
│   │   │   ├── bridge-slave-interface-2
│   │   │   ├── bridge99
│   │   │   ├── configure-no-carrier
│   │   │   ├── dhcp-client
│   │   │   ├── dhcp-client-anonymize
│   │   │   ├── dhcp-client-ipv4-no-ipv6
│   │   │   ├── dhcp-client-ipv4-only
│   │   │   ├── dhcp-client-ipv6-only
│   │   │   ├── dhcp-client-listen-port
│   │   │   ├── dhcp-client-route-metric
│   │   │   ├── dhcp-client-route-table
│   │   │   ├── dhcp-client-tz-router
│   │   │   ├── dhcp-critical-connection
│   │   │   ├── dhcp-option
│   │   │   ├── dhcp-server
│   │   │   ├── dhcp-server-static-lease
│   │   │   ├── dhcp-server-tz-router
│   │   │   ├── dhcp-server-veth-peer
│   │   │   ├── dhcp-v4-server-veth-peer
│   │   │   ├── dhcpv4-client-settings
│   │   │   ├── dhcpv6-rapid-commit
│   │   │   ├── dns-trust-dup-anchor
│   │   │   ├── emit-lldp
│   │   │   ├── fibrule-port-range
│   │   │   ├── github-10639
│   │   │   ├── github-13938
│   │   │   ├── github-15885
│   │   │   ├── github-15951
│   │   │   ├── gretap
│   │   │   ├── gretun
│   │   │   ├── ip6gretap
│   │   │   ├── ip6tnl
│   │   │   ├── ipip
│   │   │   ├── ipv6-address-label
│   │   │   ├── ipv6-prefix
│   │   │   ├── ipv6-prefix-veth
│   │   │   ├── ipvlan
│   │   │   ├── link-section-unmanaged
│   │   │   ├── lldp
│   │   │   ├── macvlan
│   │   │   ├── macvtap
│   │   │   ├── neighbor-section
│   │   │   ├── oss-fuzz-11285
│   │   │   ├── oss-fuzz-11302
│   │   │   ├── oss-fuzz-11314
│   │   │   ├── oss-fuzz-11345
│   │   │   ├── oss-fuzz-13059
│   │   │   ├── oss-fuzz-13354
│   │   │   ├── oss-fuzz-13433
│   │   │   ├── oss-fuzz-13888
│   │   │   ├── oss-fuzz-15678
│   │   │   ├── oss-fuzz-20548
│   │   │   ├── oss-fuzz-23895
│   │   │   ├── oss-fuzz-23950
│   │   │   ├── primary-slave
│   │   │   ├── route-section
│   │   │   ├── route-type
│   │   │   ├── routing-policy-rule
│   │   │   ├── search-domain
│   │   │   ├── sit
│   │   │   ├── sysctl
│   │   │   ├── tcp-window-settings
│   │   │   ├── test-static
│   │   │   ├── test1-bond199
│   │   │   ├── vlan
│   │   │   ├── vti
│   │   │   ├── vti6
│   │   │   ├── vxlan
│   │   │   └── xfrm
│   │   ├── fuzz-nspawn-oci/
│   │   │   ├── basic.json
│   │   │   ├── double-free
│   │   │   ├── invalid-read-magic-string
│   │   │   ├── invalid-read-magic-string2
│   │   │   └── no-mount-source
│   │   ├── fuzz-nspawn-settings/
│   │   │   ├── basic-config
│   │   │   ├── leak-bind-mount
│   │   │   └── oss-fuzz-13691
│   │   ├── fuzz-resource-record/
│   │   │   ├── just-slash
│   │   │   ├── oss-fuzz-54059
│   │   │   ├── oss-fuzz-54065
│   │   │   ├── oss-fuzz-54080
│   │   │   ├── oss-fuzz-54090
│   │   │   └── ub-zero-length-rdata
│   │   ├── fuzz-systemctl-parse-argv/
│   │   │   ├── help.input
│   │   │   ├── missing-strv-free
│   │   │   ├── oss-fuzz-31055
│   │   │   ├── oss-fuzz-31714
│   │   │   └── oss-fuzz-56915
│   │   ├── fuzz-udev-database/
│   │   │   └── sample.txt
│   │   ├── fuzz-udev-rules/
│   │   │   ├── block.rules
│   │   │   ├── btrfs.rules
│   │   │   ├── cdrom_id.rules
│   │   │   ├── drivers.rules
│   │   │   ├── drm.rules
│   │   │   ├── evdev.rules
│   │   │   ├── input-id.rules
│   │   │   ├── joystick.rules
│   │   │   ├── line-too-long
│   │   │   ├── mouse.rules
│   │   │   ├── net-description.rules
│   │   │   ├── net-setup-link.rules
│   │   │   ├── oss-fuzz-12980
│   │   │   ├── persistent-alsa.rules
│   │   │   ├── persistent-input.rules
│   │   │   ├── persistent-storage.rules
│   │   │   ├── persistent-v4l.rules
│   │   │   ├── probe_mtd.rules
│   │   │   ├── sensor.rules
│   │   │   ├── serial.rules
│   │   │   ├── sound-card.rules
│   │   │   ├── storage-tape.rules
│   │   │   ├── systemd.rules
│   │   │   ├── touchpad.rules
│   │   │   └── udev-default.rules
│   │   ├── fuzz-unit-file/
│   │   │   ├── ask-password-console.path
│   │   │   ├── binfmt_misc.automount
│   │   │   ├── directives-all.service
│   │   │   ├── dm-back\x2dslash.swap
│   │   │   ├── empty.scope
│   │   │   ├── github-19178
│   │   │   ├── machine.slice
│   │   │   ├── oss-fuzz-10007
│   │   │   ├── oss-fuzz-11569
│   │   │   ├── oss-fuzz-13125
│   │   │   ├── oss-fuzz-32991
│   │   │   ├── oss-fuzz-33270
│   │   │   ├── oss-fuzz-33876
│   │   │   ├── oss-fuzz-6884
│   │   │   ├── oss-fuzz-6885
│   │   │   ├── oss-fuzz-6886
│   │   │   ├── oss-fuzz-6892
│   │   │   ├── oss-fuzz-6897
│   │   │   ├── oss-fuzz-6897-evverx
│   │   │   ├── oss-fuzz-6908
│   │   │   ├── oss-fuzz-6917
│   │   │   ├── oss-fuzz-6977
│   │   │   ├── oss-fuzz-6977-unminimized
│   │   │   ├── oss-fuzz-7004
│   │   │   ├── oss-fuzz-8064
│   │   │   ├── oss-fuzz-8827
│   │   │   ├── syslog.socket
│   │   │   ├── systemd-machined.service
│   │   │   ├── systemd-resolved.service
│   │   │   ├── timers.target
│   │   │   ├── tmpfiles-clean.timer
│   │   │   └── var-lib-machines.mount
│   │   ├── fuzz-varlink/
│   │   │   ├── array
│   │   │   ├── do-something
│   │   │   ├── huge-method
│   │   │   ├── method-call
│   │   │   ├── method-error
│   │   │   ├── method-reply
│   │   │   ├── oss-fuzz-14688
│   │   │   ├── oss-fuzz-14708
│   │   │   └── timeout
│   │   ├── fuzz-varlink-idl/
│   │   │   ├── crash-d1860f2b
│   │   │   └── interface1
│   │   ├── fuzz-xdg-desktop/
│   │   │   ├── SettingsDaemon.desktop
│   │   │   ├── full.desktop
│   │   │   ├── oss-fuzz-22812
│   │   │   └── valid.desktop
│   │   ├── generate-directives.py
│   │   └── meson.build
│   ├── hwdb-test.sh
│   ├── hwdb.d/
│   │   └── 10-bad.hwdb
│   ├── journal-data/
│   │   ├── .gitattributes
│   │   ├── journal-1.txt
│   │   └── journal-2.txt
│   ├── knot-data/
│   │   ├── knot.conf
│   │   └── zones/
│   │       ├── onlinesign.test.zone
│   │       ├── root.zone
│   │       ├── signed.test.zone
│   │       ├── test.zone
│   │       ├── unsigned.test.zone
│   │       └── untrusted.test.zone
│   ├── meson.build
│   ├── networkd-test.py
│   ├── rule-syntax-check.py
│   ├── run-integration-tests.sh
│   ├── run-unit-tests.py
│   ├── sd-script.py
│   ├── sys-script.py
│   ├── sysv-generator-test.py
│   ├── test-bcd/
│   │   ├── .gitattributes
│   │   ├── corrupt.bcd.zst
│   │   ├── description-bad-type.bcd.zst
│   │   ├── description-empty.bcd.zst
│   │   ├── description-missing.bcd.zst
│   │   ├── description-too-small.bcd.zst
│   │   ├── displayorder-bad-name.bcd.zst
│   │   ├── displayorder-bad-size.bcd.zst
│   │   ├── displayorder-bad-type.bcd.zst
│   │   ├── empty.bcd.zst
│   │   └── win10.bcd.zst
│   ├── test-bootctl-json.sh
│   ├── test-compare-versions.sh
│   ├── test-exec-deserialization.py
│   ├── test-execute/
│   │   ├── exec-ambientcapabilities-dynuser.service
│   │   ├── exec-ambientcapabilities-merge-nfsnobody.service
│   │   ├── exec-ambientcapabilities-merge-nobody.service
│   │   ├── exec-ambientcapabilities-merge.service
│   │   ├── exec-ambientcapabilities-nfsnobody.service
│   │   ├── exec-ambientcapabilities-nobody.service
│   │   ├── exec-ambientcapabilities.service
│   │   ├── exec-basic.service
│   │   ├── exec-bindpaths.service
│   │   ├── exec-capabilityboundingset-invert.service
│   │   ├── exec-capabilityboundingset-merge.service
│   │   ├── exec-capabilityboundingset-reset.service
│   │   ├── exec-capabilityboundingset-simple.service
│   │   ├── exec-condition-failed.service
│   │   ├── exec-condition-skip.service
│   │   ├── exec-cpuaffinity1.service
│   │   ├── exec-cpuaffinity2.service
│   │   ├── exec-cpuaffinity3.service
│   │   ├── exec-credentials-dir-specifier.service
│   │   ├── exec-dynamicuser-fixeduser-adm.service
│   │   ├── exec-dynamicuser-fixeduser-games.service
│   │   ├── exec-dynamicuser-fixeduser-one-supplementarygroup.service
│   │   ├── exec-dynamicuser-fixeduser.service
│   │   ├── exec-dynamicuser-runtimedirectory1.service
│   │   ├── exec-dynamicuser-runtimedirectory2.service
│   │   ├── exec-dynamicuser-runtimedirectory3.service
│   │   ├── exec-dynamicuser-statedir-migrate-step1.service
│   │   ├── exec-dynamicuser-statedir-migrate-step2.service
│   │   ├── exec-dynamicuser-statedir.service
│   │   ├── exec-dynamicuser-supplementarygroups.service
│   │   ├── exec-environment-empty.service
│   │   ├── exec-environment-multiple.service
│   │   ├── exec-environment-no-substitute.service
│   │   ├── exec-environment.service
│   │   ├── exec-environmentfile.service
│   │   ├── exec-execsearchpath-environment-path-set.service
│   │   ├── exec-execsearchpath-environment.service
│   │   ├── exec-execsearchpath-environmentfile-set.service
│   │   ├── exec-execsearchpath-environmentfile.service
│   │   ├── exec-execsearchpath-passenvironment-set.service
│   │   ├── exec-execsearchpath-passenvironment.service
│   │   ├── exec-execsearchpath-unit-specifier.service
│   │   ├── exec-execsearchpath.service
│   │   ├── exec-group-nfsnobody.service
│   │   ├── exec-group-nobody.service
│   │   ├── exec-group-nogroup.service
│   │   ├── exec-group.service
│   │   ├── exec-ignoresigpipe-no.service
│   │   ├── exec-ignoresigpipe-yes.service
│   │   ├── exec-inaccessiblepaths-mount-propagation.service
│   │   ├── exec-inaccessiblepaths-sys.service
│   │   ├── exec-ioschedulingclass-best-effort.service
│   │   ├── exec-ioschedulingclass-idle.service
│   │   ├── exec-ioschedulingclass-none.service
│   │   ├── exec-ioschedulingclass-realtime.service
│   │   ├── exec-load-credential.service
│   │   ├── exec-mount-apivfs-no.service
│   │   ├── exec-networknamespacepath-privatemounts-no.service
│   │   ├── exec-networknamespacepath-privatemounts-yes.service
│   │   ├── exec-noexecpaths-simple.service
│   │   ├── exec-oomscoreadjust-negative.service
│   │   ├── exec-oomscoreadjust-positive.service
│   │   ├── exec-passenvironment-absent.service
│   │   ├── exec-passenvironment-empty.service
│   │   ├── exec-passenvironment-repeated.service
│   │   ├── exec-passenvironment.service
│   │   ├── exec-personality-aarch64.service
│   │   ├── exec-personality-loongarch64.service
│   │   ├── exec-personality-ppc64.service
│   │   ├── exec-personality-ppc64le.service
│   │   ├── exec-personality-s390.service
│   │   ├── exec-personality-x86-64.service
│   │   ├── exec-personality-x86.service
│   │   ├── exec-privatedevices-bind.service
│   │   ├── exec-privatedevices-disabled-by-prefix.service
│   │   ├── exec-privatedevices-no-capability-mknod.service
│   │   ├── exec-privatedevices-no-capability-sys-rawio.service
│   │   ├── exec-privatedevices-no.service
│   │   ├── exec-privatedevices-yes-capability-mknod.service
│   │   ├── exec-privatedevices-yes-capability-sys-rawio.service
│   │   ├── exec-privatedevices-yes-with-group.service
│   │   ├── exec-privatedevices-yes.service
│   │   ├── exec-privatenetwork-yes-privatemounts-no.service
│   │   ├── exec-privatenetwork-yes-privatemounts-yes.service
│   │   ├── exec-privatetmp-disabled-by-prefix.service
│   │   ├── exec-privatetmp-no.service
│   │   ├── exec-privatetmp-yes.service
│   │   ├── exec-protecthome-tmpfs-vs-protectsystem-strict.service
│   │   ├── exec-protectkernellogs-no-capabilities.service
│   │   ├── exec-protectkernellogs-yes-capabilities.service
│   │   ├── exec-protectkernelmodules-no-capabilities.service
│   │   ├── exec-protectkernelmodules-yes-capabilities.service
│   │   ├── exec-protectkernelmodules-yes-mount-propagation.service
│   │   ├── exec-readonlypaths-mount-propagation.service
│   │   ├── exec-readonlypaths-simple.service
│   │   ├── exec-readonlypaths-with-bindpaths.service
│   │   ├── exec-readonlypaths.service
│   │   ├── exec-readwritepaths-mount-propagation.service
│   │   ├── exec-restrictnamespaces-merge-all.service
│   │   ├── exec-restrictnamespaces-merge-and.service
│   │   ├── exec-restrictnamespaces-merge-or.service
│   │   ├── exec-restrictnamespaces-mnt-deny-list.service
│   │   ├── exec-restrictnamespaces-mnt.service
│   │   ├── exec-restrictnamespaces-no.service
│   │   ├── exec-restrictnamespaces-yes.service
│   │   ├── exec-runtimedirectory-mode.service
│   │   ├── exec-runtimedirectory-owner-nfsnobody.service
│   │   ├── exec-runtimedirectory-owner-nobody.service
│   │   ├── exec-runtimedirectory-owner-nogroup.service
│   │   ├── exec-runtimedirectory-owner.service
│   │   ├── exec-runtimedirectory.service
│   │   ├── exec-set-credential.service
│   │   ├── exec-specifier-interpolation.service
│   │   ├── exec-specifier-system.service
│   │   ├── exec-specifier-user.service
│   │   ├── exec-specifier.service
│   │   ├── exec-specifier@.service
│   │   ├── exec-standardinput-data.service
│   │   ├── exec-standardinput-file-cat.service
│   │   ├── exec-standardinput-file.service
│   │   ├── exec-standardoutput-append.service
│   │   ├── exec-standardoutput-file.service
│   │   ├── exec-standardoutput-truncate.service
│   │   ├── exec-supplementarygroups-multiple-groups-default-group-user.service
│   │   ├── exec-supplementarygroups-multiple-groups-withgid.service
│   │   ├── exec-supplementarygroups-multiple-groups-withuid.service
│   │   ├── exec-supplementarygroups-single-group-user.service
│   │   ├── exec-supplementarygroups-single-group.service
│   │   ├── exec-supplementarygroups.service
│   │   ├── exec-systemcallerrornumber-name.service
│   │   ├── exec-systemcallerrornumber-number.service
│   │   ├── exec-systemcallfilter-failing.service
│   │   ├── exec-systemcallfilter-failing2.service
│   │   ├── exec-systemcallfilter-failing3.service
│   │   ├── exec-systemcallfilter-nonewprivileges-bounding1.service
│   │   ├── exec-systemcallfilter-nonewprivileges-bounding2.service
│   │   ├── exec-systemcallfilter-nonewprivileges-protectclock.service
│   │   ├── exec-systemcallfilter-nonewprivileges.service
│   │   ├── exec-systemcallfilter-not-failing.service
│   │   ├── exec-systemcallfilter-not-failing2.service
│   │   ├── exec-systemcallfilter-not-failing3.service
│   │   ├── exec-systemcallfilter-override-error-action.service
│   │   ├── exec-systemcallfilter-override-error-action2.service
│   │   ├── exec-systemcallfilter-system-user-nfsnobody.service
│   │   ├── exec-systemcallfilter-system-user-nobody.service
│   │   ├── exec-systemcallfilter-system-user.service
│   │   ├── exec-systemcallfilter-with-errno-in-allow-list.service
│   │   ├── exec-systemcallfilter-with-errno-multi.service
│   │   ├── exec-systemcallfilter-with-errno-name.service
│   │   ├── exec-systemcallfilter-with-errno-number.service
│   │   ├── exec-temporaryfilesystem-options.service
│   │   ├── exec-temporaryfilesystem-ro.service
│   │   ├── exec-temporaryfilesystem-rw.service
│   │   ├── exec-temporaryfilesystem-usr.service
│   │   ├── exec-umask-0177.service
│   │   ├── exec-umask-default.service
│   │   ├── exec-umask-namespace.service
│   │   ├── exec-unsetenvironment.service
│   │   ├── exec-user-nfsnobody.service
│   │   ├── exec-user-nobody.service
│   │   ├── exec-user.service
│   │   ├── exec-workingdirectory-trailing-dot.service
│   │   └── exec-workingdirectory.service
│   ├── test-fstab-generator/
│   │   ├── .gitattributes
│   │   ├── test-01-dev-nfs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-01-dev-nfs.input
│   │   ├── test-02-dhcp.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-02-dhcp.input
│   │   ├── test-03-dhcp6.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-03-dhcp6.input
│   │   ├── test-04-nfs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-04-nfs.input
│   │   ├── test-05-nfs4.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-05-nfs4.input
│   │   ├── test-06-ipv4.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-06-ipv4.input
│   │   ├── test-07-ipv6.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-07-ipv6.input
│   │   ├── test-08-implicit-nfs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-08-implicit-nfs.input
│   │   ├── test-09-cifs.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-09-cifs.input
│   │   ├── test-10-iscsi.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-10-iscsi.input
│   │   ├── test-11-live.expected/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-11-live.input
│   │   ├── test-12-dev-sdx.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-12-dev-sdx.input
│   │   ├── test-13-label.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-13-label.input
│   │   ├── test-14-uuid.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-14-uuid.input
│   │   ├── test-15-partuuid.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-fsck-root.service
│   │   ├── test-15-partuuid.input
│   │   ├── test-16-tmpfs.expected/
│   │   │   └── sysroot.mount
│   │   ├── test-16-tmpfs.input
│   │   ├── test-17-initrd-sysroot.fstab.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot-usr.mount
│   │   │   ├── sysroot.mount
│   │   │   ├── systemd-fsck-root.service
│   │   │   └── sysusr-usr.mount
│   │   ├── test-17-initrd-sysroot.fstab.expected.sysroot/
│   │   │   ├── local-fs.target.wants/
│   │   │   │   └── systemd-remount-fs.service
│   │   │   ├── sysroot-usr.mount
│   │   │   └── sysroot.mount
│   │   ├── test-17-initrd-sysroot.fstab.input
│   │   ├── test-18-options.fstab.expected/
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── local-fs.target.d/
│   │   │   │   └── 50-order-systemd-growfs@mnt-growfs.service.conf
│   │   │   ├── mnt-after.mount
│   │   │   ├── mnt-automount1.automount
│   │   │   ├── mnt-automount1.mount
│   │   │   ├── mnt-automount2.automount
│   │   │   ├── mnt-automount2.mount
│   │   │   ├── mnt-before.mount
│   │   │   ├── mnt-growfs.mount
│   │   │   ├── mnt-growfs.mount.wants/
│   │   │   │   └── systemd-growfs@mnt-growfs.service
│   │   │   ├── mnt-mkfs.mount
│   │   │   ├── mnt-noauto.mount
│   │   │   ├── mnt-nofail.mount
│   │   │   ├── mnt-pcrfs.mount
│   │   │   ├── mnt-reqmounts.mount
│   │   │   ├── mnt-requiredby.mount
│   │   │   ├── mnt-requires.mount
│   │   │   ├── mnt-rwonly.mount
│   │   │   ├── mnt-timeout.mount
│   │   │   ├── mnt-wantedby.mount
│   │   │   ├── sysroot.mount
│   │   │   ├── systemd-fsck-root.service
│   │   │   └── systemd-makefs@dev-sdx12.service
│   │   ├── test-18-options.fstab.expected.sysroot/
│   │   │   ├── local-fs.target.d/
│   │   │   │   └── 50-order-systemd-growfs@mnt-growfs.service.conf
│   │   │   ├── local-fs.target.wants/
│   │   │   │   └── systemd-remount-fs.service
│   │   │   ├── mnt-after.mount
│   │   │   ├── mnt-automount1.automount
│   │   │   ├── mnt-automount1.mount
│   │   │   ├── mnt-automount2.automount
│   │   │   ├── mnt-automount2.mount
│   │   │   ├── mnt-before.mount
│   │   │   ├── mnt-growfs.mount
│   │   │   ├── mnt-growfs.mount.wants/
│   │   │   │   └── systemd-growfs@mnt-growfs.service
│   │   │   ├── mnt-mkfs.mount
│   │   │   ├── mnt-noauto.mount
│   │   │   ├── mnt-nofail.mount
│   │   │   ├── mnt-pcrfs.mount
│   │   │   ├── mnt-reqmounts.mount
│   │   │   ├── mnt-requiredby.mount
│   │   │   ├── mnt-requires.mount
│   │   │   ├── mnt-rwonly.mount
│   │   │   ├── mnt-timeout.mount
│   │   │   ├── mnt-wantedby.mount
│   │   │   ├── sysroot.mount
│   │   │   └── systemd-makefs@dev-sdx12.service
│   │   ├── test-18-options.fstab.input
│   │   ├── test-19-mounts-from-cmdline.expected/
│   │   │   ├── hoge-without_fstype.mount
│   │   │   ├── hoge-without_options.mount
│   │   │   ├── hoge-withx20space.mount
│   │   │   ├── initrd-root-device.target.d/
│   │   │   │   └── 50-root-device.conf
│   │   │   ├── sysroot-foo-also_in_initrd.mount
│   │   │   ├── sysroot-usr.mount
│   │   │   ├── sysroot.mount
│   │   │   ├── systemd-fsck-root.service
│   │   │   ├── systemd-fsck-usr.service
│   │   │   └── sysusr-usr.mount
│   │   ├── test-19-mounts-from-cmdline.expected.sysroot/
│   │   │   ├── foo-also_in_initrd.mount
│   │   │   ├── foo-not_in_initrd.mount
│   │   │   └── usr.mount
│   │   ├── test-19-mounts-from-cmdline.input
│   │   ├── test-20-swap-from-cmdline.expected/
│   │   │   ├── dev-sdy1.swap
│   │   │   ├── dev-sdy2.swap
│   │   │   ├── dev-sdy3.swap
│   │   │   ├── dev-sdy4.swap
│   │   │   ├── dev-sdy5.swap
│   │   │   ├── initrd-usr-fs.target.requires/
│   │   │   │   └── sysroot.mount
│   │   │   ├── systemd-mkswap@dev-sdy2.service
│   │   │   └── systemd-mkswap@dev-sdy3.service
│   │   ├── test-20-swap-from-cmdline.expected.container/
│   │   │   └── initrd-usr-fs.target.requires/
│   │   │       └── sysroot.mount
│   │   ├── test-20-swap-from-cmdline.expected.sysroot/
│   │   │   ├── dev-sdy5.swap
│   │   │   └── dev-sdy6.swap
│   │   └── test-20-swap-from-cmdline.input
│   ├── test-fstab-generator.sh
│   ├── test-functions
│   ├── test-journals/
│   │   ├── afl-corrupted-journals.tar.zst
│   │   ├── corrupted/
│   │   │   ├── id:000000,sig:06,src:000711,time:110015157,execs:33104794,op:MOpt_havoc,rep:2.zst
│   │   │   └── id:000000,src:000031,time:210669947,execs:34191940,op:havoc,rep:32.zst
│   │   └── no-rtc/
│   │       ├── system.journal.zst
│   │       ├── system@0005ebbfd42fc981-39a8842ec948769a.journal~.zst
│   │       ├── system@0005ebbfd4346b9f-43185b46162d9fa5.journal~.zst
│   │       ├── system@0005ebbfd4385848-2e5dff5354ab9bcf.journal~.zst
│   │       ├── user-1000.journal.zst
│   │       ├── user-1000@0005ebbfd660bcbe-dbef2eee11f4b575.journal~.zst
│   │       └── user-1000@0005ebbfe89faec4-a5e890e7b00bedd1.journal~.zst
│   ├── test-network/
│   │   ├── .gitattributes
│   │   ├── conf/
│   │   │   ├── 00-debug-net.rules
│   │   │   ├── 10-dropin-test.netdev
│   │   │   ├── 10-dropin-test.netdev.d/
│   │   │   │   ├── mac.conf
│   │   │   │   └── name.conf
│   │   │   ├── 11-dummy-mtu.netdev
│   │   │   ├── 11-dummy.netdev
│   │   │   ├── 11-dummy.network
│   │   │   ├── 12-dummy-altname.link
│   │   │   ├── 12-dummy-mac.netdev
│   │   │   ├── 12-dummy-match-altname.network
│   │   │   ├── 12-dummy-match-mac-01.network
│   │   │   ├── 12-dummy-match-mac-02.network
│   │   │   ├── 12-dummy-match-renamed.network
│   │   │   ├── 12-dummy-mtu.link
│   │   │   ├── 12-dummy-mtu.netdev
│   │   │   ├── 12-dummy-no-address.network
│   │   │   ├── 12-dummy-rename-to-altname.link
│   │   │   ├── 12-dummy.link
│   │   │   ├── 12-dummy.netdev
│   │   │   ├── 12-dummy.network
│   │   │   ├── 12-dummy.network.d/
│   │   │   │   ├── ipv6-mtu-1400.conf
│   │   │   │   ├── ipv6-mtu-1550.conf
│   │   │   │   └── mtu.conf
│   │   │   ├── 13-dummy.netdev
│   │   │   ├── 13-not-match-udev-property.network
│   │   │   ├── 14-match-udev-property.network
│   │   │   ├── 15-name-conflict-test.netdev
│   │   │   ├── 21-bond-802.3ad.netdev
│   │   │   ├── 21-bond-802.3ad.network
│   │   │   ├── 21-dummy-bond-slave.network
│   │   │   ├── 21-macvlan.netdev
│   │   │   ├── 21-macvtap.netdev
│   │   │   ├── 21-vlan-on-bond.netdev
│   │   │   ├── 21-vlan-on-bond.network
│   │   │   ├── 21-vlan-test1.network
│   │   │   ├── 21-vlan-test1.network.d/
│   │   │   │   └── override.conf
│   │   │   ├── 21-vlan.netdev
│   │   │   ├── 21-vlan.netdev.d/
│   │   │   │   └── override.conf
│   │   │   ├── 21-vlan.network
│   │   │   ├── 23-active-slave.network
│   │   │   ├── 23-bond199.network
│   │   │   ├── 23-emit-lldp.network
│   │   │   ├── 23-keep-master.network
│   │   │   ├── 23-primary-slave.network
│   │   │   ├── 24-keep-configuration-static.network
│   │   │   ├── 24-lldp.network
│   │   │   ├── 24-search-domain.network
│   │   │   ├── 25-6rd-tunnel.netdev
│   │   │   ├── 25-6rd.network
│   │   │   ├── 25-activation-policy.network
│   │   │   ├── 25-activation-policy.network.d/
│   │   │   │   ├── always-down.conf
│   │   │   │   ├── always-up.conf
│   │   │   │   ├── bound.conf
│   │   │   │   ├── down.conf
│   │   │   │   ├── manual.conf
│   │   │   │   ├── required-no.conf
│   │   │   │   ├── required-yes.conf
│   │   │   │   └── up.conf
│   │   │   ├── 25-address-ipv4acd-veth99.network
│   │   │   ├── 25-address-ipv4acd-veth99.network.d/
│   │   │   │   └── conflict-address.conf
│   │   │   ├── 25-address-link-section.network
│   │   │   ├── 25-address-peer-ipv4.network
│   │   │   ├── 25-address-static.network
│   │   │   ├── 25-address-static.network.d/
│   │   │   │   ├── 10-many-address.conf
│   │   │   │   └── 10-override.conf
│   │   │   ├── 25-agent-client-peer.network
│   │   │   ├── 25-agent-client.network
│   │   │   ├── 25-agent-server-peer.network
│   │   │   ├── 25-agent-server.network
│   │   │   ├── 25-agent-veth-client.netdev
│   │   │   ├── 25-agent-veth-server.netdev
│   │   │   ├── 25-bareudp.netdev
│   │   │   ├── 25-batadv.netdev
│   │   │   ├── 25-bind-carrier.network
│   │   │   ├── 25-bond-active-backup-slave.netdev
│   │   │   ├── 25-bond-balanced-tlb.netdev
│   │   │   ├── 25-bond-slave.network
│   │   │   ├── 25-bond.netdev
│   │   │   ├── 25-bond99.network
│   │   │   ├── 25-bridge-configure-without-carrier.network
│   │   │   ├── 25-bridge.netdev
│   │   │   ├── 25-bridge.network
│   │   │   ├── 25-bridge99-ignore-carrier-loss.network
│   │   │   ├── 25-bridge99.network
│   │   │   ├── 25-dhcp-client-allow-list.network
│   │   │   ├── 25-dhcp-client-allow-list.network.d/
│   │   │   │   ├── 00-allow-list.conf
│   │   │   │   └── 10-deny-list.conf
│   │   │   ├── 25-dhcp-client-anonymize.network
│   │   │   ├── 25-dhcp-client-gateway-onlink-implicit.network
│   │   │   ├── 25-dhcp-client-ipv4-only.network
│   │   │   ├── 25-dhcp-client-ipv4-use-routes-use-gateway.network
│   │   │   ├── 25-dhcp-client-ipv4-use-routes-use-gateway.network.d/
│   │   │   │   ├── use-dns-and-ntp-routes-False.conf
│   │   │   │   ├── use-dns-and-ntp-routes-True.conf
│   │   │   │   ├── use-gateway-False.conf
│   │   │   │   ├── use-gateway-True.conf
│   │   │   │   ├── use-routes-False.conf
│   │   │   │   └── use-routes-True.conf
│   │   │   ├── 25-dhcp-client-ipv6-only-custom-client-identifier.network
│   │   │   ├── 25-dhcp-client-ipv6-only-mode.network
│   │   │   ├── 25-dhcp-client-ipv6-only.network
│   │   │   ├── 25-dhcp-client-keep-configuration-dhcp-on-stop.network
│   │   │   ├── 25-dhcp-client-keep-configuration-dhcp.network
│   │   │   ├── 25-dhcp-client-static-lease.network
│   │   │   ├── 25-dhcp-client-timezone-router.network
│   │   │   ├── 25-dhcp-client-use-dns-ipv4-and-ra.network
│   │   │   ├── 25-dhcp-client-use-dns-ipv4.network
│   │   │   ├── 25-dhcp-client-use-dns-no.network
│   │   │   ├── 25-dhcp-client-use-dns-yes.network
│   │   │   ├── 25-dhcp-client-vrf.network
│   │   │   ├── 25-dhcp-client-with-ipv4ll.network
│   │   │   ├── 25-dhcp-client.network
│   │   │   ├── 25-dhcp-pd-downstream-dummy97.network
│   │   │   ├── 25-dhcp-pd-downstream-dummy98.network
│   │   │   ├── 25-dhcp-pd-downstream-dummy99.network
│   │   │   ├── 25-dhcp-pd-downstream-test1.network
│   │   │   ├── 25-dhcp-pd-downstream-veth97-peer.network
│   │   │   ├── 25-dhcp-pd-downstream-veth97.network
│   │   │   ├── 25-dhcp-pd-downstream-veth98-peer.network
│   │   │   ├── 25-dhcp-pd-downstream-veth98.network
│   │   │   ├── 25-dhcp-server-downstream.network
│   │   │   ├── 25-dhcp-server-ipv6-only-mode.network
│   │   │   ├── 25-dhcp-server-null-server-address.network
│   │   │   ├── 25-dhcp-server-static-lease.network
│   │   │   ├── 25-dhcp-server-timezone-router.network
│   │   │   ├── 25-dhcp-server-uplink.network
│   │   │   ├── 25-dhcp-server-veth-peer.network
│   │   │   ├── 25-dhcp-server.network
│   │   │   ├── 25-dhcp4-6rd-server.network
│   │   │   ├── 25-dhcp4-6rd-upstream.network
│   │   │   ├── 25-dhcp6pd-server.network
│   │   │   ├── 25-dhcp6pd-upstream-no-address.network
│   │   │   ├── 25-dhcp6pd-upstream-no-assign.network
│   │   │   ├── 25-dhcp6pd-upstream.network
│   │   │   ├── 25-erspan.network
│   │   │   ├── 25-erspan0-tunnel-local-any.netdev
│   │   │   ├── 25-erspan0-tunnel.netdev
│   │   │   ├── 25-erspan1-tunnel-local-any.netdev
│   │   │   ├── 25-erspan1-tunnel.netdev
│   │   │   ├── 25-erspan2-tunnel-local-any.netdev
│   │   │   ├── 25-erspan2-tunnel.netdev
│   │   │   ├── 25-fibrule-invert.network
│   │   │   ├── 25-fibrule-port-range.network
│   │   │   ├── 25-fibrule-uidrange.network
│   │   │   ├── 25-fou-gre.netdev
│   │   │   ├── 25-fou-gretap.netdev
│   │   │   ├── 25-fou-ipip.netdev
│   │   │   ├── 25-fou-ipproto-gre.netdev
│   │   │   ├── 25-fou-ipproto-ipip.netdev
│   │   │   ├── 25-fou-sit.netdev
│   │   │   ├── 25-gateway-next-static.network
│   │   │   ├── 25-gateway-static.network
│   │   │   ├── 25-geneve.netdev
│   │   │   ├── 25-global-ipv6-privacy-extensions.conf
│   │   │   ├── 25-gre-tunnel-any-any.netdev
│   │   │   ├── 25-gre-tunnel-local-any.netdev
│   │   │   ├── 25-gre-tunnel-remote-any.netdev
│   │   │   ├── 25-gre-tunnel.netdev
│   │   │   ├── 25-gretap-tunnel-local-any.netdev
│   │   │   ├── 25-gretap-tunnel.netdev
│   │   │   ├── 25-gretap.network
│   │   │   ├── 25-gretun.network
│   │   │   ├── 25-ifb.netdev
│   │   │   ├── 25-ip6gre-tunnel-any-any.netdev
│   │   │   ├── 25-ip6gre-tunnel-local-any.netdev
│   │   │   ├── 25-ip6gre-tunnel-remote-any.netdev
│   │   │   ├── 25-ip6gre-tunnel.netdev
│   │   │   ├── 25-ip6gretap-tunnel-local-any.netdev
│   │   │   ├── 25-ip6gretap-tunnel.netdev
│   │   │   ├── 25-ip6gretap.network
│   │   │   ├── 25-ip6gretun.network
│   │   │   ├── 25-ip6tnl-slaac.network
│   │   │   ├── 25-ip6tnl-tunnel-external.netdev
│   │   │   ├── 25-ip6tnl-tunnel-local-any.netdev
│   │   │   ├── 25-ip6tnl-tunnel-local-slaac.netdev
│   │   │   ├── 25-ip6tnl-tunnel-local-slaac.network
│   │   │   ├── 25-ip6tnl-tunnel-remote-any.netdev
│   │   │   ├── 25-ip6tnl-tunnel.netdev
│   │   │   ├── 25-ip6tnl.network
│   │   │   ├── 25-ipip-tunnel-any-any.netdev
│   │   │   ├── 25-ipip-tunnel-independent-loopback.netdev
│   │   │   ├── 25-ipip-tunnel-independent.netdev
│   │   │   ├── 25-ipip-tunnel-local-any.netdev
│   │   │   ├── 25-ipip-tunnel-remote-any.netdev
│   │   │   ├── 25-ipip-tunnel.netdev
│   │   │   ├── 25-ipip.network
│   │   │   ├── 25-ipv6-address-label-section.network
│   │   │   ├── 25-ipv6-prefix-veth-token-prefixstable-without-address.network
│   │   │   ├── 25-ipv6-prefix-veth-token-prefixstable.network
│   │   │   ├── 25-ipv6-prefix-veth-token-static.network
│   │   │   ├── 25-ipv6-prefix-veth.network
│   │   │   ├── 25-ipv6-prefix.network
│   │   │   ├── 25-ipv6-proxy-ndp.network
│   │   │   ├── 25-ipv6ra-prefix-client-deny-list.network
│   │   │   ├── 25-ipv6ra-prefix-client.network
│   │   │   ├── 25-ipv6ra-prefix.network
│   │   │   ├── 25-ipv6ra-uplink.network
│   │   │   ├── 25-ipvlan.netdev
│   │   │   ├── 25-ipvlan.network
│   │   │   ├── 25-ipvtap.netdev
│   │   │   ├── 25-ipvtap.network
│   │   │   ├── 25-isatap-tunnel.netdev
│   │   │   ├── 25-isatap.network
│   │   │   ├── 25-l2tp-dummy.network
│   │   │   ├── 25-l2tp-ip.netdev
│   │   │   ├── 25-l2tp-udp.netdev
│   │   │   ├── 25-l2tp.network
│   │   │   ├── 25-link-local-addressing-no.network
│   │   │   ├── 25-link-local-addressing-yes.network
│   │   │   ├── 25-link-section-unmanaged.network
│   │   │   ├── 25-macsec.key
│   │   │   ├── 25-macsec.netdev
│   │   │   ├── 25-macsec.network
│   │   │   ├── 25-macvlan.network
│   │   │   ├── 25-macvtap.network
│   │   │   ├── 25-neighbor-ip-dummy.network
│   │   │   ├── 25-neighbor-ip.network
│   │   │   ├── 25-neighbor-ipv6.network
│   │   │   ├── 25-neighbor-next.network
│   │   │   ├── 25-neighbor-section.network
│   │   │   ├── 25-neighbor-section.network.d/
│   │   │   │   └── override.conf
│   │   │   ├── 25-netdevsim.link
│   │   │   ├── 25-nexthop-dummy.network
│   │   │   ├── 25-nexthop-nothing.network
│   │   │   ├── 25-nexthop.network
│   │   │   ├── 25-nlmon.netdev
│   │   │   ├── 25-prefix-route-with-vrf.network
│   │   │   ├── 25-prefix-route-without-vrf.network
│   │   │   ├── 25-qdisc-cake.network
│   │   │   ├── 25-qdisc-clsact.network
│   │   │   ├── 25-qdisc-codel.network
│   │   │   ├── 25-qdisc-drr.network
│   │   │   ├── 25-qdisc-ets.network
│   │   │   ├── 25-qdisc-fq.network
│   │   │   ├── 25-qdisc-fq_codel.network
│   │   │   ├── 25-qdisc-fq_pie.network
│   │   │   ├── 25-qdisc-gred.network
│   │   │   ├── 25-qdisc-hhf.network
│   │   │   ├── 25-qdisc-htb-fifo.network
│   │   │   ├── 25-qdisc-ingress.network
│   │   │   ├── 25-qdisc-netem-compat.network
│   │   │   ├── 25-qdisc-netem.network
│   │   │   ├── 25-qdisc-pie.network
│   │   │   ├── 25-qdisc-qfq.network
│   │   │   ├── 25-qdisc-sfb.network
│   │   │   ├── 25-qdisc-sfq.network
│   │   │   ├── 25-qdisc-tbf.network
│   │   │   ├── 25-qdisc-teql.network
│   │   │   ├── 25-route-congctl.network
│   │   │   ├── 25-route-ipv6-src.network
│   │   │   ├── 25-route-preferred-source.network
│   │   │   ├── 25-route-static-test1.network
│   │   │   ├── 25-route-static.network
│   │   │   ├── 25-route-via-ipv6.network
│   │   │   ├── 25-route-vrf.network
│   │   │   ├── 25-routing-policy-rule-dummy98.network
│   │   │   ├── 25-routing-policy-rule-manual.network
│   │   │   ├── 25-routing-policy-rule-reconfigure1.network
│   │   │   ├── 25-routing-policy-rule-reconfigure2.network
│   │   │   ├── 25-routing-policy-rule-test1.network
│   │   │   ├── 25-sit-tunnel-any-any.netdev
│   │   │   ├── 25-sit-tunnel-local-any.netdev
│   │   │   ├── 25-sit-tunnel-remote-any.netdev
│   │   │   ├── 25-sit-tunnel.netdev
│   │   │   ├── 25-sit.network
│   │   │   ├── 25-sriov-udev.network
│   │   │   ├── 25-sriov.link
│   │   │   ├── 25-sriov.network
│   │   │   ├── 25-state-file-tests.network
│   │   │   ├── 25-sysctl-disable-ipv6.network
│   │   │   ├── 25-sysctl.network
│   │   │   ├── 25-sysctl.network.d/
│   │   │   │   └── 25-ipv6-privacy-extensions.conf
│   │   │   ├── 25-tap.netdev
│   │   │   ├── 25-test1.network
│   │   │   ├── 25-test1.network.d/
│   │   │   │   ├── configure-without-carrier.conf
│   │   │   │   └── ignore-carrier-loss-no.conf
│   │   │   ├── 25-tun.netdev
│   │   │   ├── 25-tunnel-any-any.network
│   │   │   ├── 25-tunnel-local-any.network
│   │   │   ├── 25-tunnel-remote-any.network
│   │   │   ├── 25-tunnel.network
│   │   │   ├── 25-vcan.netdev
│   │   │   ├── 25-vcan98.netdev
│   │   │   ├── 25-vcan98.network
│   │   │   ├── 25-veth-bridge-captive.network
│   │   │   ├── 25-veth-bridge.network
│   │   │   ├── 25-veth-client-captive.network
│   │   │   ├── 25-veth-client.netdev
│   │   │   ├── 25-veth-client.network
│   │   │   ├── 25-veth-downstream-veth97.netdev
│   │   │   ├── 25-veth-downstream-veth98.netdev
│   │   │   ├── 25-veth-mtu.netdev
│   │   │   ├── 25-veth-peer.network
│   │   │   ├── 25-veth-router-captive.netdev
│   │   │   ├── 25-veth-router-captive.network
│   │   │   ├── 25-veth-router-high.netdev
│   │   │   ├── 25-veth-router-high.network
│   │   │   ├── 25-veth-router-low.netdev
│   │   │   ├── 25-veth-router-low.network
│   │   │   ├── 25-veth.netdev
│   │   │   ├── 25-vrf.netdev
│   │   │   ├── 25-vrf.network
│   │   │   ├── 25-vti-tunnel-any-any.netdev
│   │   │   ├── 25-vti-tunnel-local-any.netdev
│   │   │   ├── 25-vti-tunnel-remote-any.netdev
│   │   │   ├── 25-vti-tunnel.netdev
│   │   │   ├── 25-vti.network
│   │   │   ├── 25-vti6-tunnel-local-any.netdev
│   │   │   ├── 25-vti6-tunnel-remote-any.netdev
│   │   │   ├── 25-vti6-tunnel.netdev
│   │   │   ├── 25-vti6.network
│   │   │   ├── 25-vxcan.netdev
│   │   │   ├── 25-vxlan-independent.netdev
│   │   │   ├── 25-vxlan-ipv6.netdev
│   │   │   ├── 25-vxlan-ipv6.network
│   │   │   ├── 25-vxlan-local-slaac.netdev
│   │   │   ├── 25-vxlan-local-slaac.network
│   │   │   ├── 25-vxlan-test1.network
│   │   │   ├── 25-vxlan-veth99.network
│   │   │   ├── 25-vxlan.netdev
│   │   │   ├── 25-vxlan.network
│   │   │   ├── 25-wireguard-23-peers.netdev
│   │   │   ├── 25-wireguard-23-peers.network
│   │   │   ├── 25-wireguard-no-peer.netdev
│   │   │   ├── 25-wireguard-no-peer.network
│   │   │   ├── 25-wireguard-preshared-key.txt
│   │   │   ├── 25-wireguard-private-key.txt
│   │   │   ├── 25-wireguard.netdev
│   │   │   ├── 25-wireguard.netdev.d/
│   │   │   │   ├── peer.conf
│   │   │   │   ├── peer1.conf
│   │   │   │   ├── peer2.conf
│   │   │   │   └── private-key.conf
│   │   │   ├── 25-wireguard.network
│   │   │   ├── 25-xfrm-independent.netdev
│   │   │   ├── 25-xfrm.netdev
│   │   │   ├── 25-xfrm.network
│   │   │   ├── 26-bridge-configure-without-carrier.network
│   │   │   ├── 26-bridge-issue-20373.netdev
│   │   │   ├── 26-bridge-mdb-master.network
│   │   │   ├── 26-bridge-mdb-slave.network
│   │   │   ├── 26-bridge-slave-interface-1.network
│   │   │   ├── 26-bridge-slave-interface-2.network
│   │   │   ├── 26-bridge-vlan-master-issue-20373.network
│   │   │   ├── 26-bridge-vlan-master.network
│   │   │   ├── 26-bridge-vlan-slave-issue-20373.network
│   │   │   ├── 26-bridge-vlan-slave.network
│   │   │   ├── 26-bridge.netdev
│   │   │   ├── 26-link-local-addressing-ipv6.network
│   │   │   ├── 26-macsec.network
│   │   │   ├── 26-netdev-link-local-addressing-yes.network
│   │   │   ├── 80-6rd-tunnel.network
│   │   │   ├── isc-dhcpd-dhcp6pd-no-range.conf
│   │   │   ├── isc-dhcpd-dhcp6pd.conf
│   │   │   ├── networkd-manage-foreign-routes-no.conf
│   │   │   └── radvd/
│   │   │       └── captive-portal.conf
│   │   └── systemd-networkd-tests.py
│   ├── test-network-generator-conversion/
│   │   ├── .gitattributes
│   │   ├── test-01-dhcp.expected/
│   │   │   └── 71-default.network
│   │   ├── test-01-dhcp.input
│   │   ├── test-02-bridge.expected/
│   │   │   ├── 70-bridge99.netdev
│   │   │   ├── 70-bridge99.network
│   │   │   ├── 70-eth0.network
│   │   │   └── 70-eth1.network
│   │   ├── test-02-bridge.input
│   │   ├── test-03-issue-14319.expected/
│   │   │   └── 70-enp3s0.network
│   │   └── test-03-issue-14319.input
│   ├── test-network-generator-conversion.sh
│   ├── test-path/
│   │   ├── basic.target
│   │   ├── path-changed.path
│   │   ├── path-changed.service
│   │   ├── path-directorynotempty.path
│   │   ├── path-directorynotempty.service
│   │   ├── path-exists.path
│   │   ├── path-exists.service
│   │   ├── path-existsglob.path
│   │   ├── path-existsglob.service
│   │   ├── path-makedirectory.path
│   │   ├── path-makedirectory.service
│   │   ├── path-modified.path
│   │   ├── path-modified.service
│   │   ├── path-mycustomunit.service
│   │   ├── path-unit.path
│   │   ├── paths.target
│   │   └── sysinit.target
│   ├── test-path-util/
│   │   └── script.sh
│   ├── test-resolve/
│   │   ├── .gitattributes
│   │   ├── _443._tcp.fedoraproject.org.pkts
│   │   ├── _openpgpkey.fedoraproject.org.pkts
│   │   ├── com~20200417.pkts
│   │   ├── fake-caa.pkts
│   │   ├── fedoraproject.org.pkts
│   │   ├── gandi.net.pkts
│   │   ├── google.com~20160131.pkts
│   │   ├── google.com~20200417.pkts
│   │   ├── kyhwana.org.pkts
│   │   ├── michigan.gov~20200417.pkts
│   │   ├── org~20200417.pkts
│   │   ├── root.pkts
│   │   ├── selfsigned.cert
│   │   ├── selfsigned.key
│   │   ├── sw1a1aa-sw1a2aa-sw1a2ab-sw1a2ac.find.me.uk.pkts
│   │   ├── teamits.com.pkts
│   │   ├── vdwaa.nl~20200417.pkts
│   │   └── zbyszek@fedoraproject.org.pkts
│   ├── test-rpm-macros.sh
│   ├── test-shutdown.py
│   ├── test-systemctl-enable.sh
│   ├── test-systemd-tmpfiles.py
│   ├── test-sysusers/
│   │   ├── .gitattributes
│   │   ├── inline.expected-group
│   │   ├── inline.expected-passwd
│   │   ├── test-00-basic.expected-group
│   │   ├── test-00-basic.expected-passwd
│   │   ├── test-00-basic.input
│   │   ├── test-1.expected-group
│   │   ├── test-1.expected-passwd
│   │   ├── test-1.input
│   │   ├── test-10.expected-group
│   │   ├── test-10.expected-passwd
│   │   ├── test-10.input
│   │   ├── test-11.expected-group
│   │   ├── test-11.expected-passwd
│   │   ├── test-11.initial-group
│   │   ├── test-11.initial-passwd
│   │   ├── test-11.input
│   │   ├── test-12.expected-group
│   │   ├── test-12.expected-passwd
│   │   ├── test-12.initial-group
│   │   ├── test-12.initial-passwd
│   │   ├── test-12.input
│   │   ├── test-13.expected-group
│   │   ├── test-13.expected-passwd
│   │   ├── test-13.input
│   │   ├── test-14.expected-group
│   │   ├── test-14.expected-passwd
│   │   ├── test-14.initial-group
│   │   ├── test-14.input
│   │   ├── test-15.expected-group
│   │   ├── test-15.expected-passwd
│   │   ├── test-15.initial-passwd
│   │   ├── test-15.input
│   │   ├── test-16.expected-group
│   │   ├── test-16.expected-passwd
│   │   ├── test-16.input
│   │   ├── test-2.expected-group
│   │   ├── test-2.expected-passwd
│   │   ├── test-2.input
│   │   ├── test-3.expected-group
│   │   ├── test-3.expected-passwd
│   │   ├── test-3.input
│   │   ├── test-4.expected-group
│   │   ├── test-4.expected-passwd
│   │   ├── test-4.input
│   │   ├── test-5.expected-group
│   │   ├── test-5.expected-passwd
│   │   ├── test-5.input
│   │   ├── test-6.expected-group
│   │   ├── test-6.expected-passwd
│   │   ├── test-6.input
│   │   ├── test-7.expected-group
│   │   ├── test-7.expected-passwd
│   │   ├── test-7.input
│   │   ├── test-8.expected-group
│   │   ├── test-8.expected-passwd
│   │   ├── test-8.input
│   │   ├── test-9.expected-group
│   │   ├── test-9.expected-passwd
│   │   ├── test-9.input
│   │   ├── unhappy-1.expected-err
│   │   ├── unhappy-1.input
│   │   ├── unhappy-2.expected-err
│   │   ├── unhappy-2.input
│   │   ├── unhappy-3.expected-err
│   │   └── unhappy-3.input
│   ├── test-sysusers.sh.in
│   ├── test-udev.py
│   ├── test-umount/
│   │   ├── .gitattributes
│   │   ├── empty.mountinfo
│   │   ├── example.swaps
│   │   ├── garbled.mountinfo
│   │   └── rhbug-1554943.mountinfo
│   ├── testsuite-03.units/
│   │   ├── always-activating.service
│   │   ├── always-activating.socket
│   │   ├── fails-on-restart-restartdirect.service
│   │   ├── fails-on-restart-restartdirect.target
│   │   ├── fails-on-restart.service
│   │   ├── fails-on-restart.target
│   │   ├── hello-after-sleep.target
│   │   ├── hello.service
│   │   ├── propagatestopto-and-pullin.target
│   │   ├── propagatestopto-indirect.target
│   │   ├── propagatestopto-only.target
│   │   ├── sleep-infinity-simple.service
│   │   ├── sleep.service
│   │   ├── succeeds-on-restart-restartdirect.service
│   │   ├── succeeds-on-restart-restartdirect.target
│   │   ├── succeeds-on-restart.service
│   │   ├── succeeds-on-restart.sh
│   │   ├── succeeds-on-restart.target
│   │   └── unstoppable.service
│   ├── testsuite-04.units/
│   │   ├── delegated-cgroup-filtering.service
│   │   ├── forever-print-hola.service
│   │   ├── logs-filtering.service
│   │   └── silent-success.service
│   ├── testsuite-06.units/
│   │   └── hola.service
│   ├── testsuite-07.units/
│   │   ├── issue14566-repro.service
│   │   ├── issue14566-repro.sh
│   │   ├── issue16115-repro-1.service
│   │   ├── issue16115-repro-2.service
│   │   ├── issue16115-repro-3.service
│   │   ├── issue2467.service
│   │   ├── issue2467.socket
│   │   ├── issue27953.service
│   │   └── issue3166-fail-on-restart.service
│   ├── testsuite-16.units/
│   │   ├── extend-timeout.sh
│   │   ├── fail-runtime.service
│   │   ├── fail-start.service
│   │   ├── fail-stop.service
│   │   ├── success-all.service
│   │   ├── success-runtime.service
│   │   ├── success-start.service
│   │   └── success-stop.service
│   ├── testsuite-23.units/
│   │   ├── testsuite-23-binds-to.service
│   │   ├── testsuite-23-bound-by.service
│   │   ├── testsuite-23-fail.service
│   │   ├── testsuite-23-joins-namespace-of-1.service
│   │   ├── testsuite-23-joins-namespace-of-2.service
│   │   ├── testsuite-23-joins-namespace-of-3.service
│   │   ├── testsuite-23-joins-namespace-of-4.service
│   │   ├── testsuite-23-joins-namespace-of-5.service
│   │   ├── testsuite-23-joins-namespace-of-6.service
│   │   ├── testsuite-23-joins-namespace-of-7.service
│   │   ├── testsuite-23-joins-namespace-of-8.service
│   │   ├── testsuite-23-joins-namespace-of-9.service
│   │   ├── testsuite-23-namespaced.service
│   │   ├── testsuite-23-non-namespaced.service
│   │   ├── testsuite-23-prop-stop-one.service
│   │   ├── testsuite-23-prop-stop-two.service
│   │   ├── testsuite-23-retry-fail.service
│   │   ├── testsuite-23-retry-upheld.service
│   │   ├── testsuite-23-retry-uphold.service
│   │   ├── testsuite-23-short-lived.service
│   │   ├── testsuite-23-specifier-j-depends-wants.service
│   │   ├── testsuite-23-specifier-j-wants.service
│   │   ├── testsuite-23-success.service
│   │   ├── testsuite-23-upheldby-install.service
│   │   └── testsuite-23-uphold.service
│   ├── testsuite-30.units/
│   │   └── systemd-timedated.service.d/
│   │       └── watchdog.conf
│   ├── testsuite-52.units/
│   │   ├── test-honor-first-shutdown.service
│   │   └── test-honor-first-shutdown.sh
│   ├── testsuite-63.units/
│   │   ├── test63-glob.path
│   │   ├── test63-glob.service
│   │   ├── test63-issue-24577-dep.service
│   │   ├── test63-issue-24577.path
│   │   ├── test63-issue-24577.service
│   │   ├── test63-pr-30768.path
│   │   ├── test63-pr-30768.service
│   │   ├── test63.path
│   │   └── test63.service
│   ├── testsuite-80.units/
│   │   ├── fdstore-nopin.service
│   │   ├── fdstore-pin.service
│   │   ├── fdstore-pin.sh
│   │   ├── fdstore-pin.target
│   │   ├── notify.service
│   │   └── test.sh
│   ├── udev-dmi-memory-id-test.sh
│   └── units/
│       ├── a-conj.service
│       ├── a.service
│       ├── autorelabel.service
│       ├── b.service
│       ├── basic.target
│       ├── c.service
│       ├── d.service
│       ├── daughter.service
│       ├── delegated_cgroup_filtering_payload.sh
│       ├── delegated_cgroup_filtering_payload_child.sh
│       ├── dml-discard-empty.service
│       ├── dml-discard-set-ml.service
│       ├── dml-discard.slice
│       ├── dml-override-empty.service
│       ├── dml-override.slice
│       ├── dml-passthrough-empty.service
│       ├── dml-passthrough-set-dml.service
│       ├── dml-passthrough-set-ml.service
│       ├── dml-passthrough.slice
│       ├── dml.slice
│       ├── e.service
│       ├── end.service
│       ├── end.sh
│       ├── f.service
│       ├── g.service
│       ├── generator-utils.sh
│       ├── grandchild.service
│       ├── h.service
│       ├── i.service
│       ├── loopy.service
│       ├── loopy.service.d/
│       │   └── compat.conf
│       ├── loopy2.service
│       ├── loopy3.service
│       ├── loopy4.service
│       ├── nomem.slice
│       ├── nomemleaf.service
│       ├── parent-deep.slice
│       ├── parent.slice
│       ├── sched_idle_bad.service
│       ├── sched_idle_ok.service
│       ├── sched_rr_bad.service
│       ├── sched_rr_change.service
│       ├── sched_rr_ok.service
│       ├── shutdown.target
│       ├── sockets.target
│       ├── son.service
│       ├── success-failure-test-failure.service
│       ├── success-failure-test-success.service
│       ├── success-failure-test.service
│       ├── sysinit.target
│       ├── test-control.sh
│       ├── testsuite-01.service
│       ├── testsuite-01.sh
│       ├── testsuite-02.service
│       ├── testsuite-02.sh
│       ├── testsuite-03.service
│       ├── testsuite-03.sh
│       ├── testsuite-04.LogFilterPatterns.sh
│       ├── testsuite-04.SYSTEMD_JOURNAL_COMPRESS.sh
│       ├── testsuite-04.bsod.sh
│       ├── testsuite-04.corrupted-journals.sh
│       ├── testsuite-04.fss.sh
│       ├── testsuite-04.journal-append.sh
│       ├── testsuite-04.journal-corrupt.sh
│       ├── testsuite-04.journal-gatewayd.sh
│       ├── testsuite-04.journal-remote.sh
│       ├── testsuite-04.journal.sh
│       ├── testsuite-04.service
│       ├── testsuite-04.sh
│       ├── testsuite-05.service
│       ├── testsuite-05.sh
│       ├── testsuite-06.service
│       ├── testsuite-06.sh
│       ├── testsuite-07.exec-context.sh
│       ├── testsuite-07.issue-14566.sh
│       ├── testsuite-07.issue-16115.sh
│       ├── testsuite-07.issue-1981.sh
│       ├── testsuite-07.issue-2467.sh
│       ├── testsuite-07.issue-27953.sh
│       ├── testsuite-07.issue-30412.sh
│       ├── testsuite-07.issue-3166.sh
│       ├── testsuite-07.issue-3171.sh
│       ├── testsuite-07.issue-31752.sh
│       ├── testsuite-07.issue-33672.sh
│       ├── testsuite-07.main-PID-change.sh
│       ├── testsuite-07.mount-invalid-chars.sh
│       ├── testsuite-07.poll-limit.sh
│       ├── testsuite-07.private-network.sh
│       ├── testsuite-07.service
│       ├── testsuite-07.sh
│       ├── testsuite-08.service
│       ├── testsuite-08.sh
│       ├── testsuite-09.journal.sh
│       ├── testsuite-09.service
│       ├── testsuite-09.sh
│       ├── testsuite-13.machinectl.sh
│       ├── testsuite-13.nspawn-oci.sh
│       ├── testsuite-13.nspawn.sh
│       ├── testsuite-13.nss-mymachines.sh
│       ├── testsuite-13.service
│       ├── testsuite-13.sh
│       ├── testsuite-15.service
│       ├── testsuite-15.sh
│       ├── testsuite-16.service
│       ├── testsuite-16.sh
│       ├── testsuite-17.00.sh
│       ├── testsuite-17.01.sh
│       ├── testsuite-17.02.sh
│       ├── testsuite-17.03.sh
│       ├── testsuite-17.04.sh
│       ├── testsuite-17.05.sh
│       ├── testsuite-17.06.sh
│       ├── testsuite-17.07.sh
│       ├── testsuite-17.08.sh
│       ├── testsuite-17.09.sh
│       ├── testsuite-17.10.sh
│       ├── testsuite-17.11.sh
│       ├── testsuite-17.12.sh
│       ├── testsuite-17.13.sh
│       ├── testsuite-17.14.sh
│       ├── testsuite-17.service
│       ├── testsuite-17.sh
│       ├── testsuite-18.service
│       ├── testsuite-18.sh
│       ├── testsuite-19.ExitType-cgroup.sh
│       ├── testsuite-19.IPAddressAllow-Deny.sh
│       ├── testsuite-19.cleanup-slice.sh
│       ├── testsuite-19.delegate.sh
│       ├── testsuite-19.keyed-properties.sh
│       ├── testsuite-19.service
│       ├── testsuite-19.sh
│       ├── testsuite-21.service
│       ├── testsuite-21.sh
│       ├── testsuite-22.01.sh
│       ├── testsuite-22.02.sh
│       ├── testsuite-22.03.sh
│       ├── testsuite-22.04.sh
│       ├── testsuite-22.05.sh
│       ├── testsuite-22.06.sh
│       ├── testsuite-22.07.sh
│       ├── testsuite-22.08.sh
│       ├── testsuite-22.09.sh
│       ├── testsuite-22.10.sh
│       ├── testsuite-22.11.sh
│       ├── testsuite-22.12.sh
│       ├── testsuite-22.13.sh
│       ├── testsuite-22.14.sh
│       ├── testsuite-22.15.sh
│       ├── testsuite-22.16.sh
│       ├── testsuite-22.17.sh
│       ├── testsuite-22.service
│       ├── testsuite-22.sh
│       ├── testsuite-23-short-lived.sh
│       ├── testsuite-23.ExecReload.sh
│       ├── testsuite-23.ExecStopPost.sh
│       ├── testsuite-23.JoinsNamespaceOf.sh
│       ├── testsuite-23.RuntimeDirectoryPreserve.sh
│       ├── testsuite-23.StandardOutput.sh
│       ├── testsuite-23.Upholds.sh
│       ├── testsuite-23.clean-unit.sh
│       ├── testsuite-23.exec-command-ex.sh
│       ├── testsuite-23.oneshot-restart.sh
│       ├── testsuite-23.percentj-wantedby.sh
│       ├── testsuite-23.runtime-bind-paths.sh
│       ├── testsuite-23.service
│       ├── testsuite-23.sh
│       ├── testsuite-23.start-stop-no-reload.sh
│       ├── testsuite-23.statedir.sh
│       ├── testsuite-23.success-failure.sh
│       ├── testsuite-23.type-exec.sh
│       ├── testsuite-23.utmp.sh
│       ├── testsuite-23.whoami.sh
│       ├── testsuite-24.service
│       ├── testsuite-24.sh
│       ├── testsuite-25.service
│       ├── testsuite-25.sh
│       ├── testsuite-26.service
│       ├── testsuite-26.sh
│       ├── testsuite-29.service
│       ├── testsuite-29.sh
│       ├── testsuite-30.service
│       ├── testsuite-30.sh
│       ├── testsuite-31.service
│       ├── testsuite-31.sh
│       ├── testsuite-32.service
│       ├── testsuite-32.sh
│       ├── testsuite-34.service
│       ├── testsuite-34.sh
│       ├── testsuite-35.service
│       ├── testsuite-35.sh
│       ├── testsuite-36.service
│       ├── testsuite-36.sh
│       ├── testsuite-38-sleep.service
│       ├── testsuite-38.service
│       ├── testsuite-38.sh
│       ├── testsuite-43.service
│       ├── testsuite-43.sh
│       ├── testsuite-44.service
│       ├── testsuite-44.sh
│       ├── testsuite-45.service
│       ├── testsuite-45.sh
│       ├── testsuite-46.service
│       ├── testsuite-46.sh
│       ├── testsuite-50.service
│       ├── testsuite-50.sh
│       ├── testsuite-52.service
│       ├── testsuite-52.sh
│       ├── testsuite-53.service
│       ├── testsuite-53.sh
│       ├── testsuite-54.service
│       ├── testsuite-54.sh
│       ├── testsuite-55-testbloat.service
│       ├── testsuite-55-testchill.service
│       ├── testsuite-55-testmunch.service
│       ├── testsuite-55-workload.slice
│       ├── testsuite-55.service
│       ├── testsuite-55.sh
│       ├── testsuite-58.service
│       ├── testsuite-58.sh
│       ├── testsuite-59.service
│       ├── testsuite-59.sh
│       ├── testsuite-60.service
│       ├── testsuite-60.sh
│       ├── testsuite-62-1.service
│       ├── testsuite-62-2.service
│       ├── testsuite-62-3.service
│       ├── testsuite-62-4.service
│       ├── testsuite-62-5.service
│       ├── testsuite-62.service
│       ├── testsuite-62.sh
│       ├── testsuite-63.service
│       ├── testsuite-63.sh
│       ├── testsuite-64.service
│       ├── testsuite-64.sh
│       ├── testsuite-65.service
│       ├── testsuite-65.sh
│       ├── testsuite-66-deviceisolation.service
│       ├── testsuite-66.service
│       ├── testsuite-66.sh
│       ├── testsuite-67.service
│       ├── testsuite-67.sh
│       ├── testsuite-68.service
│       ├── testsuite-68.sh
│       ├── testsuite-69.service
│       ├── testsuite-70.creds.sh
│       ├── testsuite-70.cryptenroll.sh
│       ├── testsuite-70.cryptsetup.sh
│       ├── testsuite-70.measure.sh
│       ├── testsuite-70.pcrextend.sh
│       ├── testsuite-70.pcrlock.sh
│       ├── testsuite-70.service
│       ├── testsuite-70.sh
│       ├── testsuite-70.tpm2-setup.sh
│       ├── testsuite-71.service
│       ├── testsuite-71.sh
│       ├── testsuite-72.service
│       ├── testsuite-72.sh
│       ├── testsuite-73.service
│       ├── testsuite-73.sh
│       ├── testsuite-74.battery-check.sh
│       ├── testsuite-74.bootctl.sh
│       ├── testsuite-74.busctl.sh
│       ├── testsuite-74.cgls.sh
│       ├── testsuite-74.cgtop.sh
│       ├── testsuite-74.coredump.sh
│       ├── testsuite-74.delta.sh
│       ├── testsuite-74.escape.sh
│       ├── testsuite-74.firstboot.sh
│       ├── testsuite-74.id128.sh
│       ├── testsuite-74.machine-id-setup.sh
│       ├── testsuite-74.modules-load.sh
│       ├── testsuite-74.mount.sh
│       ├── testsuite-74.networkctl.sh
│       ├── testsuite-74.path.sh
│       ├── testsuite-74.pstore.sh
│       ├── testsuite-74.run.sh
│       ├── testsuite-74.service
│       ├── testsuite-74.sh
│       ├── testsuite-74.sysusers.sh
│       ├── testsuite-74.varlinkctl.sh
│       ├── testsuite-75.service
│       ├── testsuite-75.sh
│       ├── testsuite-76.service
│       ├── testsuite-76.sh
│       ├── testsuite-77-client.sh
│       ├── testsuite-77-run.sh
│       ├── testsuite-77-server.socket
│       ├── testsuite-77-server@.service
│       ├── testsuite-77.service
│       ├── testsuite-77.sh
│       ├── testsuite-78.service
│       ├── testsuite-78.sh
│       ├── testsuite-79.service
│       ├── testsuite-79.sh
│       ├── testsuite-80.service
│       ├── testsuite-80.sh
│       ├── testsuite-81.debug-generator.sh
│       ├── testsuite-81.environment-d-generator.sh
│       ├── testsuite-81.fstab-generator.sh
│       ├── testsuite-81.getty-generator.sh
│       ├── testsuite-81.run-generator.sh
│       ├── testsuite-81.service
│       ├── testsuite-81.sh
│       ├── testsuite-81.system-update-generator.sh
│       ├── testsuite-82.service
│       ├── testsuite-82.sh
│       ├── testsuite-83.service
│       ├── testsuite-83.sh
│       ├── testsuite-84.service
│       ├── testsuite-84.sh
│       ├── testsuite.target
│       ├── timers.target
│       ├── unit-.service.d/
│       │   └── 10-override.conf
│       ├── unit-with-.service.d/
│       │   └── 20-override.conf
│       ├── unit-with-multiple-.service.d/
│       │   ├── 20-override.conf
│       │   └── 30-override.conf
│       ├── unit-with-multiple-dashes.service
│       ├── unit-with-multiple-dashes.service.d/
│       │   └── 10-override.conf
│       └── util.sh
├── tmpfiles.d/
│   ├── README
│   ├── credstore.conf
│   ├── etc.conf.in
│   ├── home.conf
│   ├── journal-nocow.conf
│   ├── legacy.conf.in
│   ├── meson.build
│   ├── portables.conf
│   ├── provision.conf
│   ├── static-nodes-permissions.conf.in
│   ├── systemd-network.conf
│   ├── systemd-nologin.conf
│   ├── systemd-nspawn.conf
│   ├── systemd-pstore.conf
│   ├── systemd-resolve.conf
│   ├── systemd-tmp.conf
│   ├── systemd.conf.in
│   ├── tmp.conf
│   ├── var.conf.in
│   └── x11.conf
├── tools/
│   ├── add-git-hook.sh
│   ├── analyze-dump-sort.py
│   ├── catalog-report.py
│   ├── check-api-docs.sh
│   ├── check-efi-alignment.py
│   ├── check-help.sh
│   ├── check-includes.py
│   ├── check-version-history.py
│   ├── check-version.sh
│   ├── chromiumos/
│   │   └── gen_autosuspend_rules.py
│   ├── command_ignorelist
│   ├── coverity.sh
│   ├── dbus_exporter.py
│   ├── dbus_ignorelist
│   ├── debug-sd-boot.sh
│   ├── dump-auxv.py
│   ├── elf2efi.py
│   ├── find-build-dir.sh
│   ├── find-double-newline.sh
│   ├── find-tabs.sh
│   ├── function_ignorelist
│   ├── gdb-sd_dump_hashmaps.py
│   ├── generate-gperfs.py
│   ├── git-contrib.sh
│   ├── list-discoverable-partitions.py
│   ├── make-autosuspend-rules.py
│   ├── make-directive-index.py
│   ├── make-man-index.py
│   ├── meson-build.sh
│   ├── meson-render-jinja2.py
│   ├── meson-vcs-tag.sh
│   ├── oss-fuzz.sh
│   ├── sync-docs.py
│   ├── update-dbus-docs.py
│   ├── update-hwdb-autosuspend.sh
│   ├── update-hwdb.sh
│   ├── update-man-rules.py
│   ├── update-syscall-tables.sh
│   └── xml_helper.py
├── units/
│   ├── basic.target
│   ├── blockdev@.target
│   ├── bluetooth.target
│   ├── boot-complete.target
│   ├── console-getty.service.in
│   ├── container-getty@.service.in
│   ├── cryptsetup-pre.target
│   ├── cryptsetup.target
│   ├── debug-shell.service.in
│   ├── dev-hugepages.mount
│   ├── dev-mqueue.mount
│   ├── emergency.service.in
│   ├── emergency.target
│   ├── exit.target
│   ├── factory-reset.target
│   ├── final.target
│   ├── first-boot-complete.target
│   ├── getty-pre.target
│   ├── getty.target
│   ├── getty@.service.in
│   ├── graphical.target
│   ├── halt.target
│   ├── hibernate.target
│   ├── hybrid-sleep.target
│   ├── initrd-cleanup.service
│   ├── initrd-fs.target
│   ├── initrd-parse-etc.service.in
│   ├── initrd-root-device.target
│   ├── initrd-root-fs.target
│   ├── initrd-switch-root.service
│   ├── initrd-switch-root.target
│   ├── initrd-udevadm-cleanup-db.service
│   ├── initrd-usr-fs.target
│   ├── initrd.target
│   ├── integritysetup-pre.target
│   ├── integritysetup.target
│   ├── kexec.target
│   ├── kmod-static-nodes.service.in
│   ├── ldconfig.service
│   ├── local-fs-pre.target
│   ├── local-fs.target
│   ├── machine.slice
│   ├── machines.target
│   ├── meson.build
│   ├── modprobe@.service
│   ├── multi-user.target
│   ├── network-online.target
│   ├── network-pre.target
│   ├── network.target
│   ├── nss-lookup.target
│   ├── nss-user-lookup.target
│   ├── paths.target
│   ├── poweroff.target
│   ├── printer.target
│   ├── proc-sys-fs-binfmt_misc.automount
│   ├── proc-sys-fs-binfmt_misc.mount
│   ├── quotaon.service.in
│   ├── rc-local.service.in
│   ├── reboot.target
│   ├── remote-cryptsetup.target
│   ├── remote-fs-pre.target
│   ├── remote-fs.target
│   ├── remote-veritysetup.target
│   ├── rescue.service.in
│   ├── rescue.target
│   ├── rpcbind.target
│   ├── serial-getty@.service.in
│   ├── shutdown.target
│   ├── sigpwr.target
│   ├── sleep.target
│   ├── slices.target
│   ├── smartcard.target
│   ├── sockets.target
│   ├── soft-reboot.target
│   ├── sound.target
│   ├── storage-target-mode.target
│   ├── suspend-then-hibernate.target
│   ├── suspend.target
│   ├── swap.target
│   ├── sys-fs-fuse-connections.mount
│   ├── sys-kernel-config.mount
│   ├── sys-kernel-debug.mount
│   ├── sys-kernel-tracing.mount
│   ├── sysinit.target
│   ├── syslog.socket
│   ├── system-systemd\x2dcryptsetup.slice
│   ├── system-systemd\x2dveritysetup.slice
│   ├── system-update-cleanup.service
│   ├── system-update-pre.target
│   ├── system-update.target
│   ├── systemd-ask-password-console.path
│   ├── systemd-ask-password-console.service
│   ├── systemd-ask-password-wall.path
│   ├── systemd-ask-password-wall.service
│   ├── systemd-backlight@.service.in
│   ├── systemd-battery-check.service.in
│   ├── systemd-binfmt.service.in
│   ├── systemd-bless-boot.service.in
│   ├── systemd-boot-check-no-failures.service.in
│   ├── systemd-boot-random-seed.service
│   ├── systemd-boot-update.service
│   ├── systemd-bsod.service.in
│   ├── systemd-confext.service
│   ├── systemd-coredump.socket
│   ├── systemd-coredump@.service.in
│   ├── systemd-exit.service
│   ├── systemd-firstboot.service
│   ├── systemd-fsck-root.service.in
│   ├── systemd-fsck@.service.in
│   ├── systemd-growfs-root.service.in
│   ├── systemd-growfs@.service.in
│   ├── systemd-halt.service
│   ├── systemd-hibernate-resume.service.in
│   ├── systemd-hibernate.service.in
│   ├── systemd-homed-activate.service
│   ├── systemd-homed.service.in
│   ├── systemd-hostnamed.service.in
│   ├── systemd-hwdb-update.service.in
│   ├── systemd-hybrid-sleep.service.in
│   ├── systemd-importd.service.in
│   ├── systemd-initctl.service.in
│   ├── systemd-initctl.socket
│   ├── systemd-journal-catalog-update.service
│   ├── systemd-journal-flush.service
│   ├── systemd-journal-gatewayd.service.in
│   ├── systemd-journal-gatewayd.socket
│   ├── systemd-journal-remote.service.in
│   ├── systemd-journal-remote.socket
│   ├── systemd-journal-upload.service.in
│   ├── systemd-journald-audit.socket
│   ├── systemd-journald-dev-log.socket
│   ├── systemd-journald-varlink@.socket
│   ├── systemd-journald.service.in
│   ├── systemd-journald.socket
│   ├── systemd-journald@.service.in
│   ├── systemd-journald@.socket
│   ├── systemd-kexec.service
│   ├── systemd-localed.service.in
│   ├── systemd-logind.service.in
│   ├── systemd-machine-id-commit.service
│   ├── systemd-machined.service.in
│   ├── systemd-modules-load.service.in
│   ├── systemd-network-generator.service.in
│   ├── systemd-networkd-wait-online.service.in
│   ├── systemd-networkd-wait-online@.service.in
│   ├── systemd-networkd.service.in
│   ├── systemd-networkd.socket
│   ├── systemd-nspawn@.service.in
│   ├── systemd-oomd.service.in
│   ├── systemd-oomd.socket
│   ├── systemd-pcrextend.socket
│   ├── systemd-pcrextend@.service.in
│   ├── systemd-pcrfs-root.service.in
│   ├── systemd-pcrfs@.service.in
│   ├── systemd-pcrlock-file-system.service.in
│   ├── systemd-pcrlock-firmware-code.service.in
│   ├── systemd-pcrlock-firmware-config.service.in
│   ├── systemd-pcrlock-machine-id.service.in
│   ├── systemd-pcrlock-make-policy.service.in
│   ├── systemd-pcrlock-secureboot-authority.service.in
│   ├── systemd-pcrlock-secureboot-policy.service.in
│   ├── systemd-pcrmachine.service.in
│   ├── systemd-pcrphase-initrd.service.in
│   ├── systemd-pcrphase-sysinit.service.in
│   ├── systemd-pcrphase.service.in
│   ├── systemd-portabled.service.in
│   ├── systemd-poweroff.service
│   ├── systemd-pstore.service.in
│   ├── systemd-quotacheck.service.in
│   ├── systemd-random-seed.service.in
│   ├── systemd-reboot.service
│   ├── systemd-remount-fs.service.in
│   ├── systemd-repart.service.in
│   ├── systemd-resolved.service.in
│   ├── systemd-rfkill.service.in
│   ├── systemd-rfkill.socket
│   ├── systemd-soft-reboot.service
│   ├── systemd-storagetm.service.in
│   ├── systemd-suspend-then-hibernate.service.in
│   ├── systemd-suspend.service.in
│   ├── systemd-sysctl.service.in
│   ├── systemd-sysext.service
│   ├── systemd-sysext.socket
│   ├── systemd-sysext@.service
│   ├── systemd-sysupdate-reboot.service.in
│   ├── systemd-sysupdate-reboot.timer
│   ├── systemd-sysupdate.service.in
│   ├── systemd-sysupdate.timer
│   ├── systemd-sysusers.service
│   ├── systemd-time-wait-sync.service.in
│   ├── systemd-timedated.service.in
│   ├── systemd-timesyncd.service.in
│   ├── systemd-tmpfiles-clean.service
│   ├── systemd-tmpfiles-clean.timer
│   ├── systemd-tmpfiles-setup-dev-early.service
│   ├── systemd-tmpfiles-setup-dev.service
│   ├── systemd-tmpfiles-setup.service
│   ├── systemd-tpm2-setup-early.service.in
│   ├── systemd-tpm2-setup.service.in
│   ├── systemd-udev-settle.service
│   ├── systemd-udev-trigger.service
│   ├── systemd-udevd-control.socket
│   ├── systemd-udevd-kernel.socket
│   ├── systemd-udevd.service.in
│   ├── systemd-update-done.service.in
│   ├── systemd-update-utmp-runlevel.service.in
│   ├── systemd-update-utmp.service.in
│   ├── systemd-user-sessions.service.in
│   ├── systemd-userdbd.service.in
│   ├── systemd-userdbd.socket
│   ├── systemd-vconsole-setup.service.in
│   ├── systemd-volatile-root.service.in
│   ├── time-set.target
│   ├── time-sync.target
│   ├── timers.target
│   ├── tmp.mount
│   ├── umount.target
│   ├── usb-gadget.target
│   ├── user/
│   │   ├── app.slice
│   │   ├── background.slice
│   │   ├── basic.target
│   │   ├── bluetooth.target
│   │   ├── default.target
│   │   ├── exit.target
│   │   ├── graphical-session-pre.target
│   │   ├── graphical-session.target
│   │   ├── meson.build
│   │   ├── paths.target
│   │   ├── printer.target
│   │   ├── session.slice
│   │   ├── shutdown.target
│   │   ├── smartcard.target
│   │   ├── sockets.target
│   │   ├── sound.target
│   │   ├── systemd-exit.service
│   │   ├── systemd-tmpfiles-clean.service
│   │   ├── systemd-tmpfiles-clean.timer
│   │   ├── systemd-tmpfiles-setup.service
│   │   ├── timers.target
│   │   └── xdg-desktop-autostart.target
│   ├── user-.slice.d/
│   │   └── 10-defaults.conf
│   ├── user-runtime-dir@.service.in
│   ├── user.slice
│   ├── user@.service.d/
│   │   └── 10-login-barrier.conf
│   ├── user@.service.in
│   ├── user@0.service.d/
│   │   └── 10-login-barrier.conf
│   ├── var-lib-machines.mount
│   ├── veritysetup-pre.target
│   └── veritysetup.target
└── xorg/
    └── 50-systemd-user.sh
Download .txt
Showing preview only (2,239K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (23971 symbols across 2117 files)

FILE: .ycm_extra_conf.py
  function DirectoryOfThisScript (line 53) | def DirectoryOfThisScript():
  function GuessBuildDirectory (line 61) | def GuessBuildDirectory():
  function TraverseByDepth (line 89) | def TraverseByDepth(root, include_extensions):
  function MakeRelativePathsInFlagsAbsolute (line 158) | def MakeRelativePathsInFlagsAbsolute(flags, working_directory):
  function IsHeaderFile (line 192) | def IsHeaderFile(filename):
  function GetCompilationInfoForFile (line 200) | def GetCompilationInfoForFile(filename):
  function FlagsForFile (line 224) | def FlagsForFile(filename, **kwargs):

FILE: hwdb.d/acpi-update.py
  function read_table (line 8) | def read_table(filename):

FILE: hwdb.d/ids_parser.py
  function klass_grammar (line 25) | def klass_grammar():
  function usb_ids_grammar (line 37) | def usb_ids_grammar():
  function pci_ids_grammar (line 62) | def pci_ids_grammar():
  function sdio_ids_grammar (line 82) | def sdio_ids_grammar():
  function oui_grammar (line 98) | def oui_grammar(type):
  function header (line 123) | def header(file, *sources):
  function add_item (line 131) | def add_item(items, key, value):
  function usb_vendor_model (line 137) | def usb_vendor_model(p):
  function usb_classes (line 163) | def usb_classes(p):
  function pci_vendor_model (line 200) | def pci_vendor_model(p):
  function pci_classes (line 238) | def pci_classes(p):
  function sdio_vendor_model (line 271) | def sdio_vendor_model(p):
  function sdio_classes (line 297) | def sdio_classes(p):
  function oui (line 319) | def oui(p1, p2, p3):

FILE: hwdb.d/parse_hwdb.py
  function upperhex_word (line 111) | def upperhex_word(length):
  function hwdb_grammar (line 115) | def hwdb_grammar():
  function property_grammar (line 141) | def property_grammar():
  function error (line 220) | def error(fmt, *args, **kwargs):
  function convert_properties (line 225) | def convert_properties(group):
  function parse (line 230) | def parse(fname):
  function check_matches (line 240) | def check_matches(groups):
  function check_one_default (line 270) | def check_one_default(prop, settings):
  function check_one_mount_matrix (line 275) | def check_one_mount_matrix(prop, value):
  function check_one_keycode (line 289) | def check_one_keycode(value):
  function check_wheel_clicks (line 298) | def check_wheel_clicks(properties):
  function check_properties (line 307) | def check_properties(groups):
  function print_summary (line 333) | def print_summary(fname, groups):

FILE: man/90-rearrange-path.py
  function rearrange_bin_sbin (line 20) | def rearrange_bin_sbin(path):

FILE: man/check-os-release.py
  function read_os_release (line 8) | def read_os_release():

FILE: man/event-quick-child.c
  function main (line 8) | int main(int argc, char **argv) {

FILE: man/glib-event-glue.c
  type SDEventSource (line 7) | typedef struct SDEventSource {
  function gboolean (line 13) | static gboolean event_prepare(GSource *source, gint *timeout_) {
  function gboolean (line 17) | static gboolean event_check(GSource *source) {
  function gboolean (line 21) | static gboolean event_dispatch(GSource *source, GSourceFunc callback, gp...
  function event_finalize (line 25) | static void event_finalize(GSource *source) {
  function GSource (line 36) | GSource *g_sd_event_create_source(sd_event *event) {

FILE: man/hwdb-usb-device.c
  function print_usb_properties (line 7) | int print_usb_properties(uint16_t vid, uint16_t pid) {
  function main (line 27) | int main(int argc, char **argv) {

FILE: man/id128-app-specific.c
  function main (line 8) | int main(int argc, char *argv[]) {

FILE: man/inotify-watch-tmp.c
  function inotify_handler (line 11) | static int inotify_handler(sd_event_source *source,
  function main (line 36) | int main(int argc, char **argv) {

FILE: man/journal-enumerate-fields.c
  function main (line 7) | int main(int argc, char *argv[]) {

FILE: man/journal-iterate-foreach.c
  function main (line 7) | int main(int argc, char *argv[]) {

FILE: man/journal-iterate-poll.c
  function wait_for_changes (line 7) | int wait_for_changes(sd_journal *j) {

FILE: man/journal-iterate-unique.c
  function main (line 7) | int main(int argc, char *argv[]) {

FILE: man/journal-iterate-wait.c
  function main (line 7) | int main(int argc, char *argv[]) {

FILE: man/journal-stream-fd.c
  function main (line 10) | int main(int argc, char *argv[]) {

FILE: man/logcontrol-example.c
  type LogTarget (line 54) | typedef enum LogTarget {
  type object (line 80) | typedef struct object {
  function property_get (line 86) | static int property_get(
  function property_set (line 112) | static int property_set(
  function main (line 184) | int main(int argc, char **argv) {

FILE: man/notify-selfcontained-example.c
  function closep (line 24) | static void closep(int *fd) {
  function notify (line 32) | static int notify(const char *message) {
  function notify_ready (line 83) | static int notify_ready(void) {
  function notify_reloading (line 87) | static int notify_reloading(void) {
  function signal_handler (line 114) | static void signal_handler(int sig) {
  function main (line 121) | int main(int argc, char **argv) {

FILE: man/path-documents.c
  function main (line 7) | int main(void) {

FILE: man/print-unit-path-call-method.c
  function log_error (line 23) | static int log_error(int error, const char *message) {
  function main (line 29) | int main(int argc, char **argv) {

FILE: man/print-unit-path.c
  function log_error (line 23) | static int log_error(int error, const char *message) {
  function main (line 29) | int main(int argc, char **argv) {

FILE: man/sd-bus-container-append.c
  function append_strings_to_message (line 5) | int append_strings_to_message(sd_bus_message *m, const char *const *arr) {

FILE: man/sd-bus-container-read.c
  function read_strings_from_message (line 7) | int read_strings_from_message(sd_bus_message *m) {

FILE: man/sd_bus_error-example.c
  function writer_with_negative_errno_return (line 8) | int writer_with_negative_errno_return(int fd, sd_bus_error *error) {

FILE: man/sd_bus_service_reconnect.c
  type object (line 52) | typedef struct object {
  function property_get (line 58) | static int property_get(
  function on_disconnect (line 91) | static int on_disconnect(sd_bus_message *message, void *userdata, sd_bus...
  function request_name_callback (line 97) | static int request_name_callback(sd_bus_message *m, void *userdata, sd_b...
  function setup (line 113) | static int setup(object *o) {
  function main (line 187) | int main(int argc, char **argv) {

FILE: man/send-unit-files-changed.c
  function send_unit_files_changed (line 6) | int send_unit_files_changed(sd_bus *bus) {

FILE: man/vtable-example.c
  type object (line 20) | typedef struct object {
  function method (line 25) | static int method(sd_bus_message *m, void *userdata, sd_bus_error *error) {
  function main (line 85) | int main(int argc, char **argv) {

FILE: src/ac-power/ac-power.c
  function help (line 16) | static void help(void) {
  function parse_argv (line 26) | static int parse_argv(int argc, char *argv[]) {
  function run (line 80) | static int run(int argc, char *argv[]) {

FILE: src/analyze/analyze-blame.c
  function verb_blame (line 8) | int verb_blame(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-calendar.c
  function test_calendar_one (line 9) | static int test_calendar_one(usec_t n, const char *p) {
  function verb_calendar (line 119) | int verb_calendar(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-capability.c
  function verb_capabilities (line 9) | int verb_capabilities(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-cat-config.c
  function verb_cat_config (line 12) | int verb_cat_config(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-compare-versions.c
  function verb_compare_versions (line 11) | int verb_compare_versions(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-condition.c
  function parse_condition (line 13) | static int parse_condition(Unit *u, const char *line) {
  function log_helper (line 55) | static int log_helper(void *userdata, int level, int error, const char *...
  function verify_conditions (line 75) | static int verify_conditions(char **lines, RuntimeScope scope, const cha...
  function verb_condition (line 129) | int verb_condition(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-critical-chain.c
  function list_dependencies_print (line 18) | static int list_dependencies_print(
  function list_dependencies_get_dependencies (line 47) | static int list_dependencies_get_dependencies(sd_bus *bus, const char *n...
  function list_dependencies_compare (line 61) | static int list_dependencies_compare(char *const *a, char *const *b) {
  function times_in_range (line 75) | static bool times_in_range(const UnitTimes *times, const BootTimes *boot) {
  function list_dependencies_one (line 79) | static int list_dependencies_one(sd_bus *bus, const char *name, unsigned...
  function list_dependencies (line 147) | static int list_dependencies(sd_bus *bus, const char *name) {
  function verb_critical_chain (line 199) | int verb_critical_chain(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-dot.c
  function graph_one_property (line 11) | static int graph_one_property(
  function graph_one (line 54) | static int graph_one(sd_bus *bus, const UnitInfo *u, char *patterns[], c...
  function expand_patterns (line 84) | static int expand_patterns(sd_bus *bus, char **patterns, char ***ret) {
  function verb_dot (line 124) | int verb_dot(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-dump.c
  function dump_fallback (line 12) | static int dump_fallback(sd_bus *bus) {
  function dump (line 32) | static int dump(sd_bus *bus) {
  function dump_patterns_fallback (line 48) | static int dump_patterns_fallback(sd_bus *bus, char **patterns) {
  function dump_patterns (line 75) | static int dump_patterns(sd_bus *bus, char **patterns) {
  function mangle_patterns (line 96) | static int mangle_patterns(char **args, char ***ret) {
  function verb_dump (line 119) | int verb_dump(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-exit-status.c
  function verb_exit_status (line 8) | int verb_exit_status(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-fdstore.c
  function dump_fdstore (line 10) | static int dump_fdstore(sd_bus *bus, const char *arg) {
  function verb_fdstore (line 95) | int verb_fdstore(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-filesystems.c
  function load_available_kernel_filesystems (line 11) | static int load_available_kernel_filesystems(Set **ret) {
  function filesystem_set_remove (line 52) | static void filesystem_set_remove(Set *s, const FilesystemSet *set) {
  function dump_filesystem_set (line 61) | static void dump_filesystem_set(const FilesystemSet *set) {
  function verb_filesystems (line 108) | int verb_filesystems(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-image-policy.c
  function table_add_designator_line (line 8) | static int table_add_designator_line(Table *table, PartitionDesignator d...
  function verb_image_policy (line 78) | int verb_image_policy(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-inspect-elf.c
  function analyze_elf (line 14) | static int analyze_elf(char **filenames, JsonFormatFlags json_flags) {
  function verb_elf_inspection (line 112) | int verb_elf_inspection(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-log-control.c
  function verb_log_control (line 7) | int verb_log_control(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-malloc.c
  function dump_malloc_info (line 10) | static int dump_malloc_info(sd_bus *bus, char *service) {
  function verb_malloc (line 32) | int verb_malloc(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-pcrs.c
  function get_pcr_alg (line 11) | static int get_pcr_alg(const char **ret) {
  function get_current_pcr (line 34) | static int get_current_pcr(const char *alg, uint32_t pcr, void **ret, si...
  function add_pcr_to_table (line 60) | static int add_pcr_to_table(Table *table, const char *alg, uint32_t pcr) {
  function verb_pcrs (line 94) | int verb_pcrs(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-plot.c
  type HostInfo (line 34) | typedef struct HostInfo {
  function HostInfo (line 44) | static HostInfo *free_host_info(HostInfo *hi) {
  function acquire_host_info (line 60) | static int acquire_host_info(sd_bus *bus, HostInfo **hi) {
  function compare_unit_start (line 126) | static int compare_unit_start(const UnitTimes *a, const UnitTimes *b) {
  function svg_graph_box (line 130) | static void svg_graph_box(double height, double begin, double end) {
  function plot_tooltip (line 164) | static void plot_tooltip(const UnitTimes *ut) {
  function plot_unit_times (line 181) | static int plot_unit_times(UnitTimes *u, double width, int y) {
  function limit_times_to_boot (line 207) | static void limit_times_to_boot(const BootTimes *boot, UnitTimes *u) {
  function produce_plot_as_svg (line 219) | static int produce_plot_as_svg(
  function show_table (line 401) | static int show_table(Table *table, const char *word) {
  function produce_plot_as_text (line 428) | static int produce_plot_as_text(UnitTimes *times, const BootTimes *boot) {
  function verb_plot (line 454) | int verb_plot(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-security.c
  type SecurityInfo (line 40) | typedef struct SecurityInfo {
  type security_assessor (line 112) | struct security_assessor {
  function SecurityInfo (line 132) | static SecurityInfo *security_info_new(void) {
  function SecurityInfo (line 147) | static SecurityInfo *security_info_free(SecurityInfo *i) {
  function security_info_runs_privileged (line 181) | static bool security_info_runs_privileged(const SecurityInfo *i)  {
  function assess_bool (line 193) | static int assess_bool(
  function assess_user (line 211) | static int assess_user(
  function assess_protect_home (line 248) | static int assess_protect_home(
  function assess_protect_system (line 290) | static int assess_protect_system(
  function assess_root_directory (line 332) | static int assess_root_directory(
  function assess_capability_bounding_set (line 350) | static int assess_capability_bounding_set(
  function assess_umask (line 366) | static int assess_umask(
  function assess_keyring_mode (line 407) | static int assess_keyring_mode(
  function assess_protect_proc (line 423) | static int assess_protect_proc(
  function assess_proc_subset (line 445) | static int assess_proc_subset(
  function assess_notify_access (line 461) | static int assess_notify_access(
  function assess_remove_ipc (line 477) | static int assess_remove_ipc(
  function assess_supplementary_groups (line 496) | static int assess_supplementary_groups(
  function assess_restrict_namespaces (line 515) | static int assess_restrict_namespaces(
  function assess_system_call_architectures (line 533) | static int assess_system_call_architectures(
  function syscall_names_in_filter (line 567) | static bool syscall_names_in_filter(Set *s, bool allow_list, const Sysca...
  function assess_system_call_filter (line 595) | static int assess_system_call_filter(
  function assess_ip_address_allow (line 660) | static int assess_ip_address_allow(
  function assess_device_allow (line 700) | static int assess_device_allow(
  function assess_ambient_capabilities (line 743) | static int assess_ambient_capabilities(
  type security_assessor (line 759) | struct security_assessor
  function JsonVariant (line 1626) | static JsonVariant* security_assessor_find_in_policy(const struct securi...
  function access_weight (line 1648) | static uint64_t access_weight(const struct security_assessor *a, JsonVar...
  function access_range (line 1663) | static uint64_t access_range(const struct security_assessor *a, JsonVari...
  type security_assessor (line 1678) | struct security_assessor
  type security_assessor (line 1693) | struct security_assessor
  type security_assessor (line 1708) | struct security_assessor
  function assess (line 1723) | static int assess(const SecurityInfo *info,
  function property_read_restrict_namespaces (line 1962) | static int property_read_restrict_namespaces(
  function property_read_umask (line 1986) | static int property_read_umask(
  function property_read_restrict_address_families (line 2010) | static int property_read_restrict_address_families(
  function property_read_syscall_archs (line 2070) | static int property_read_syscall_archs(
  function property_read_system_call_filter (line 2105) | static int property_read_system_call_filter(
  function property_read_ip_address_allow (line 2155) | static int property_read_ip_address_allow(
  function property_read_ip_filters (line 2233) | static int property_read_ip_filters(
  function property_read_device_allow (line 2260) | static int property_read_device_allow(
  function acquire_security_info (line 2295) | static int acquire_security_info(sd_bus *bus, const char *name, Security...
  function analyze_security_one (line 2419) | static int analyze_security_one(sd_bus *bus,
  function get_security_info (line 2451) | static int get_security_info(Unit *u, ExecContext *c, CGroupContext *g, ...
  function offline_security_check (line 2654) | static int offline_security_check(Unit *u,
  function offline_security_checks (line 2677) | static int offline_security_checks(
  function analyze_security (line 2781) | static int analyze_security(sd_bus *bus,
  function verb_security (line 2909) | int verb_security(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-security.h
  type AnalyzeSecurityFlags (line 4) | typedef enum AnalyzeSecurityFlags {

FILE: src/analyze/analyze-service-watchdogs.c
  function verb_service_watchdogs (line 9) | int verb_service_watchdogs(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-srk.c
  function verb_srk (line 8) | int verb_srk(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-syscall-filter.c
  function load_kernel_syscalls (line 15) | static int load_kernel_syscalls(Set **ret) {
  function syscall_set_add (line 61) | static int syscall_set_add(Set **s, const SyscallFilterSet *set) {
  function syscall_set_remove (line 81) | static void syscall_set_remove(Set *s, const SyscallFilterSet *set) {
  function dump_syscall_filter (line 93) | static void dump_syscall_filter(const SyscallFilterSet *set) {
  function verb_syscall_filters (line 105) | int verb_syscall_filters(int argc, char *argv[], void *userdata) {
  function verb_syscall_filters (line 199) | int verb_syscall_filters(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-time-data.c
  function subtract_timestamp (line 13) | static void subtract_timestamp(usec_t *a, usec_t b) {
  function log_not_finished (line 22) | static int log_not_finished(usec_t finish_time) {
  function acquire_boot_times (line 31) | int acquire_boot_times(sd_bus *bus, bool require_finished, BootTimes **r...
  function bus_get_uint64_property (line 117) | static int bus_get_uint64_property(sd_bus *bus, const char *path, const ...
  function pretty_boot_time (line 141) | int pretty_boot_time(sd_bus *bus, char **ret) {
  function unit_times_clear (line 220) | void unit_times_clear(UnitTimes *t) {
  function UnitTimes (line 230) | UnitTimes* unit_times_free_array(UnitTimes *t) {
  function acquire_time_data (line 242) | int acquire_time_data(sd_bus *bus, bool require_finished, UnitTimes **ou...

FILE: src/analyze/analyze-time-data.h
  type BootTimes (line 9) | typedef struct BootTimes {
  type UnitTimes (line 41) | typedef struct UnitTimes {

FILE: src/analyze/analyze-time.c
  function verb_time (line 7) | int verb_time(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-timespan.c
  function verb_timespan (line 11) | int verb_timespan(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-timestamp.c
  function test_timestamp_one (line 8) | static int test_timestamp_one(const char *p) {
  function verb_timestamp (line 75) | int verb_timestamp(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-unit-files.c
  function strv_fnmatch_strv_or_empty (line 8) | static bool strv_fnmatch_strv_or_empty(char* const* patterns, char **str...
  function verb_unit_files (line 16) | int verb_unit_files(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-unit-paths.c
  function verb_unit_paths (line 8) | int verb_unit_paths(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze-verify-util.c
  function log_syntax_callback (line 19) | static void log_syntax_callback(const char *unit, int level, void *userd...
  function verify_prepare_filename (line 38) | int verify_prepare_filename(const char *filename, char **ret) {
  function find_unit_directory (line 75) | static int find_unit_directory(const char *p, char **ret) {
  function verify_set_unit_path (line 123) | int verify_set_unit_path(char **filenames) {
  function verify_socket (line 162) | static int verify_socket(Unit *u) {
  function verify_executable (line 183) | int verify_executable(Unit *u, const ExecCommand *exec, const char *root) {
  function verify_executables (line 199) | static int verify_executables(Unit *u, const char *root) {
  function verify_documentation (line 221) | static int verify_documentation(Unit *u, bool check_man) {
  function verify_unit (line 247) | static int verify_unit(Unit *u, bool check_man, const char *root) {
  function set_destroy_ignore_pointer_max (line 268) | static void set_destroy_ignore_pointer_max(Set **s) {
  function verify_units (line 274) | int verify_units(

FILE: src/analyze/analyze-verify-util.h
  type RecursiveErrors (line 9) | typedef enum RecursiveErrors {

FILE: src/analyze/analyze-verify.c
  function process_aliases (line 10) | static int process_aliases(char *argv[], char *tempdir, char ***ret) {
  function verb_verify (line 56) | int verb_verify(int argc, char *argv[], void *userdata) {

FILE: src/analyze/analyze.c
  function acquire_bus (line 126) | int acquire_bus(sd_bus **bus, bool *use_full_bus) {
  function bus_get_unit_property_strv (line 140) | int bus_get_unit_property_strv(sd_bus *bus, const char *path, const char...
  function time_parsing_hint (line 163) | void time_parsing_hint(const char *p, bool calendar, bool timestamp, boo...
  function dump_fd_reply (line 175) | int dump_fd_reply(sd_bus_message *message) {
  function help (line 192) | static int help(int argc, char *argv[], void *userdata) {
  function parse_argv (line 294) | static int parse_argv(int argc, char *argv[]) {
  function run (line 612) | static int run(int argc, char *argv[]) {

FILE: src/analyze/analyze.h
  type DotMode (line 14) | typedef enum DotMode {

FILE: src/analyze/test-verify.c
  function TEST (line 6) | TEST(verify_nonexistent) {

FILE: src/ask-password/ask-password.c
  function help (line 32) | static int help(void) {
  function parse_argv (line 70) | static int parse_argv(int argc, char *argv[]) {
  function run (line 224) | static int run(int argc, char *argv[]) {

FILE: src/backlight/backlight.c
  function help (line 26) | static int help(void) {
  function has_multiple_graphics_cards (line 49) | static int has_multiple_graphics_cards(void) {
  function find_pci_or_platform_parent (line 93) | static int find_pci_or_platform_parent(sd_device *device, sd_device **re...
  function same_device (line 148) | static int same_device(sd_device *a, sd_device *b) {
  function validate_device (line 177) | static int validate_device(sd_device *device) {
  function get_max_brightness (line 316) | static int get_max_brightness(sd_device *device, unsigned *ret) {
  function clamp_brightness (line 334) | static int clamp_brightness(
  function shall_clamp (line 375) | static bool shall_clamp(sd_device *d, unsigned *ret) {
  function read_brightness (line 407) | static int read_brightness(sd_device *device, unsigned max_brightness, u...
  function run (line 466) | static int run(int argc, char *argv[]) {

FILE: src/basic/MurmurHash2.c
  function MurmurHash2 (line 42) | uint32_t MurmurHash2 ( const void * key, int len, uint32_t seed )

FILE: src/basic/af-list.c
  type af_name (line 10) | struct af_name
  function af_from_name (line 26) | int af_from_name(const char *name) {
  function af_max (line 38) | int af_max(void) {
  function af_from_ipv4_ipv6 (line 49) | int af_from_ipv4_ipv6(const char *af) {

FILE: src/basic/alloc-util.h
  function unsetp (line 98) | static inline void unsetp(void *p) {
  function freep (line 105) | static inline void freep(void *p) {
  function size_multiply_overflow (line 111) | static inline bool size_multiply_overflow(size_t size, size_t need) {
  function _malloc_ (line 115) | _malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t need, ...
  function malloc_sizeof_safe (line 202) | static inline size_t malloc_sizeof_safe(void **xp) {
  function free_many (line 247) | static inline void free_many(void **p, size_t n) {
  function free_many_charp (line 255) | static inline void free_many_charp(char **c, size_t n) {

FILE: src/basic/architecture.c
  function Architecture (line 10) | Architecture uname_architecture(void) {

FILE: src/basic/architecture.h
  type Architecture (line 12) | typedef enum {

FILE: src/basic/argv-util.c
  function invoked_as (line 21) | bool invoked_as(char *argv[], const char *token) {
  function invoked_by_systemd (line 31) | bool invoked_by_systemd(void) {
  function argv_looks_like_help (line 55) | bool argv_looks_like_help(int argc, char **argv) {
  function update_argv (line 80) | static int update_argv(const char name[], size_t l) {
  function rename_process (line 165) | int rename_process(const char name[]) {

FILE: src/basic/argv-util.h
  function save_argc_argv (line 11) | static inline void save_argc_argv(int argc, char **argv) {

FILE: src/basic/arphrd-util.c
  type arphrd_name (line 12) | struct arphrd_name
  function arphrd_from_name (line 17) | int arphrd_from_name(const char *name) {
  function arphrd_to_hw_addr_len (line 29) | size_t arphrd_to_hw_addr_len(uint16_t arphrd) {

FILE: src/basic/audit-util.c
  function audit_session_from_pid (line 20) | int audit_session_from_pid(pid_t pid, uint32_t *id) {
  function audit_loginuid_from_pid (line 50) | int audit_loginuid_from_pid(pid_t pid, uid_t *uid) {
  function try_audit_request (line 74) | static int try_audit_request(int fd) {
  function use_audit (line 112) | bool use_audit(void) {

FILE: src/basic/audit-util.h
  function audit_session_is_valid (line 15) | static inline bool audit_session_is_valid(uint32_t id) {

FILE: src/basic/btrfs.c
  function btrfs_validate_subvolume_name (line 11) | int btrfs_validate_subvolume_name(const char *name) {
  function extract_subvolume_name (line 22) | static int extract_subvolume_name(const char *path, char **ret) {
  function btrfs_subvol_make (line 41) | int btrfs_subvol_make(int dir_fd, const char *path) {
  function btrfs_subvol_make_fallback (line 75) | int btrfs_subvol_make_fallback(int dir_fd, const char *path, mode_t mode) {

FILE: src/basic/build.c
  function version (line 273) | int version(void) {

FILE: src/basic/cap-list.c
  type capability_name (line 16) | struct capability_name
  function capability_from_name (line 46) | int capability_from_name(const char *name) {
  function capability_list_length (line 74) | int capability_list_length(void) {
  function capability_set_to_string (line 78) | int capability_set_to_string(uint64_t set, char **ret) {
  function capability_set_to_string_negative (line 106) | int capability_set_to_string_negative(uint64_t set, char **ret) {
  function capability_set_to_strv (line 137) | int capability_set_to_strv(uint64_t set, char ***ret) {
  function capability_set_from_string (line 161) | int capability_set_from_string(const char *s, uint64_t *ret) {

FILE: src/basic/capability-util.c
  function have_effective_cap (line 21) | int have_effective_cap(int value) {
  function cap_last_cap (line 36) | unsigned cap_last_cap(void) {
  function capability_update_inherited_set (line 90) | int capability_update_inherited_set(cap_t caps, uint64_t set) {
  function capability_ambient_set_apply (line 107) | int capability_ambient_set_apply(uint64_t set, bool also_inherit) {
  function capability_gain_cap_setpcap (line 168) | int capability_gain_cap_setpcap(cap_t *ret_before_caps) {
  function capability_bounding_set_drop (line 202) | int capability_bounding_set_drop(uint64_t keep, bool right_now) {
  function drop_from_file (line 268) | static int drop_from_file(const char *fn, uint64_t keep) {
  function capability_bounding_set_drop_usermode (line 294) | int capability_bounding_set_drop_usermode(uint64_t keep) {
  function drop_privileges (line 308) | int drop_privileges(uid_t uid, gid_t gid, uint64_t keep_capabilities) {
  function change_capability (line 371) | static int change_capability(cap_value_t cv, cap_flag_value_t flag) {
  function drop_capability (line 389) | int drop_capability(cap_value_t cv) {
  function keep_capability (line 393) | int keep_capability(cap_value_t cv) {
  function ambient_capabilities_supported (line 397) | bool ambient_capabilities_supported(void) {
  function capability_quintet_mangle (line 412) | bool capability_quintet_mangle(CapabilityQuintet *q) {
  function capability_quintet_enforce (line 448) | int capability_quintet_enforce(const CapabilityQuintet *q) {
  function capability_get_ambient (line 619) | int capability_get_ambient(uint64_t *ret) {

FILE: src/basic/capability-util.h
  function cap_free_charpp (line 39) | static inline void cap_free_charpp(char **p) {
  function all_capabilities (line 45) | static inline uint64_t all_capabilities(void) {
  function cap_test_all (line 49) | static inline bool cap_test_all(uint64_t caps) {
  type CapabilityQuintet (line 59) | typedef struct CapabilityQuintet {
  function capability_quintet_is_set (line 73) | static inline bool capability_quintet_is_set(const CapabilityQuintet *q) {

FILE: src/basic/cgroup-util.c
  function cg_enumerate_items (line 42) | static int cg_enumerate_items(const char *controller, const char *path, ...
  function cg_enumerate_processes (line 61) | int cg_enumerate_processes(const char *controller, const char *path, FIL...
  function cg_read_pid (line 65) | int cg_read_pid(FILE *f, pid_t *ret, CGroupFlags flags) {
  function cg_read_pidref (line 99) | int cg_read_pidref(FILE *f, PidRef *ret, CGroupFlags flags) {
  function cg_read_event (line 136) | int cg_read_event(
  function cg_ns_supported (line 182) | bool cg_ns_supported(void) {
  function cg_freezer_supported (line 198) | bool cg_freezer_supported(void) {
  function cg_kill_supported (line 209) | bool cg_kill_supported(void) {
  function cg_enumerate_subgroups (line 227) | int cg_enumerate_subgroups(const char *controller, const char *path, DIR...
  function cg_read_subgroup (line 248) | int cg_read_subgroup(DIR *d, char **ret) {
  function cg_rmdir (line 273) | int cg_rmdir(const char *controller, const char *path) {
  function cg_kill_items (line 298) | static int cg_kill_items(
  function cg_kill (line 393) | int cg_kill(
  function cg_kill_kernel_sigkill (line 429) | int cg_kill_kernel_sigkill(const char *path) {
  function cg_kill_recursive (line 452) | int cg_kill_recursive(
  function join_path_legacy (line 536) | static int join_path_legacy(const char *controller, const char *path, co...
  function join_path_unified (line 560) | static int join_path_unified(const char *path, const char *suffix, char ...
  function cg_get_path (line 580) | int cg_get_path(const char *controller, const char *path, const char *su...
  function controller_is_v1_accessible (line 624) | static int controller_is_v1_accessible(const char *root, const char *con...
  function cg_get_path_and_check (line 639) | int cg_get_path_and_check(const char *controller, const char *path, cons...
  function cg_set_xattr (line 666) | int cg_set_xattr(const char *path, const char *name, const void *value, ...
  function cg_get_xattr (line 681) | int cg_get_xattr(const char *path, const char *name, void *value, size_t...
  function cg_get_xattr_malloc (line 700) | int cg_get_xattr_malloc(const char *path, const char *name, char **ret) {
  function cg_get_xattr_bool (line 714) | int cg_get_xattr_bool(const char *path, const char *name) {
  function cg_remove_xattr (line 728) | int cg_remove_xattr(const char *path, const char *name) {
  function cg_pid_get_path (line 742) | int cg_pid_get_path(const char *controller, pid_t pid, char **ret_path) {
  function cg_pidref_get_path (line 830) | int cg_pidref_get_path(const char *controller, const PidRef *pidref, cha...
  function cg_install_release_agent (line 852) | int cg_install_release_agent(const char *controller, const char *agent) {
  function cg_uninstall_release_agent (line 906) | int cg_uninstall_release_agent(const char *controller) {
  function cg_is_empty (line 937) | int cg_is_empty(const char *controller, const char *path) {
  function cg_is_empty_recursive (line 957) | int cg_is_empty_recursive(const char *controller, const char *path) {
  function cg_split_spec (line 1015) | int cg_split_spec(const char *spec, char **ret_controller, char **ret_pa...
  function cg_mangle_path (line 1073) | int cg_mangle_path(const char *path, char **ret) {
  function cg_get_root_path (line 1092) | int cg_get_root_path(char **ret_path) {
  function cg_shift_path (line 1114) | int cg_shift_path(const char *cgroup, const char *root, const char **ret...
  function cg_pid_get_path_shifted (line 1142) | int cg_pid_get_path_shifted(pid_t pid, const char *root, char **ret_cgro...
  function cg_path_decode_unit (line 1173) | int cg_path_decode_unit(const char *cgroup, char **ret_unit) {
  function valid_slice_name (line 1198) | static bool valid_slice_name(const char *p, size_t n) {
  function cg_path_get_unit (line 1238) | int cg_path_get_unit(const char *path, char **ret) {
  function cg_path_get_unit_path (line 1260) | int cg_path_get_unit_path(const char *path, char **ret) {
  function cg_pid_get_unit (line 1282) | int cg_pid_get_unit(pid_t pid, char **ret_unit) {
  function cg_pidref_get_unit (line 1295) | int cg_pidref_get_unit(const PidRef *pidref, char **ret) {
  function cg_path_get_user_unit (line 1408) | int cg_path_get_user_unit(const char *path, char **ret) {
  function cg_pid_get_user_unit (line 1423) | int cg_pid_get_user_unit(pid_t pid, char **ret_unit) {
  function cg_path_get_machine_name (line 1436) | int cg_path_get_machine_name(const char *path, char **ret_machine) {
  function cg_pid_get_machine_name (line 1449) | int cg_pid_get_machine_name(pid_t pid, char **ret_machine) {
  function cg_path_get_cgroupid (line 1462) | int cg_path_get_cgroupid(const char *path, uint64_t *ret) {
  function cg_path_get_session (line 1478) | int cg_path_get_session(const char *path, char **ret_session) {
  function cg_pid_get_session (line 1513) | int cg_pid_get_session(pid_t pid, char **ret_session) {
  function cg_path_get_owner_uid (line 1524) | int cg_path_get_owner_uid(const char *path, uid_t *ret_uid) {
  function cg_pid_get_owner_uid (line 1550) | int cg_pid_get_owner_uid(pid_t pid, uid_t *ret_uid) {
  function cg_path_get_slice (line 1561) | int cg_path_get_slice(const char *p, char **ret_slice) {
  function cg_pid_get_slice (line 1597) | int cg_pid_get_slice(pid_t pid, char **ret_slice) {
  function cg_path_get_user_slice (line 1610) | int cg_path_get_user_slice(const char *p, char **ret_slice) {
  function cg_pid_get_user_slice (line 1624) | int cg_pid_get_user_slice(pid_t pid, char **ret_slice) {
  function cg_needs_escape (line 1637) | bool cg_needs_escape(const char *p) {
  function cg_escape (line 1670) | int cg_escape(const char *p, char **ret) {
  function cg_controller_is_valid (line 1713) | bool cg_controller_is_valid(const char *p) {
  function cg_slice_to_path (line 1739) | int cg_slice_to_path(const char *unit, char **ret) {
  function cg_is_threaded (line 1814) | int cg_is_threaded(const char *path) {
  function cg_set_attribute (line 1838) | int cg_set_attribute(const char *controller, const char *path, const cha...
  function cg_get_attribute (line 1849) | int cg_get_attribute(const char *controller, const char *path, const cha...
  function cg_get_attribute_as_uint64 (line 1860) | int cg_get_attribute_as_uint64(const char *controller, const char *path,...
  function cg_get_attribute_as_bool (line 1886) | int cg_get_attribute_as_bool(const char *controller, const char *path, c...
  function cg_get_owner (line 1906) | int cg_get_owner(const char *path, uid_t *ret_uid) {
  function cg_get_keyed_attribute_full (line 1928) | int cg_get_keyed_attribute_full(
  function cg_mask_to_string (line 2012) | int cg_mask_to_string(CGroupMask mask, char **ret) {
  function cg_mask_from_string (line 2054) | int cg_mask_from_string(const char *value, CGroupMask *ret) {
  function cg_mask_supported_subtree (line 2082) | int cg_mask_supported_subtree(const char *root, CGroupMask *ret) {
  function cg_mask_supported (line 2137) | int cg_mask_supported(CGroupMask *ret) {
  function cg_kernel_controllers (line 2148) | int cg_kernel_controllers(Set **ret) {
  function cg_unified_cached (line 2214) | int cg_unified_cached(bool flush) {
  function cg_unified_controller (line 2275) | int cg_unified_controller(const char *controller) {
  function cg_all_unified (line 2291) | int cg_all_unified(void) {
  function cg_hybrid_unified (line 2301) | int cg_hybrid_unified(void) {
  function cg_is_delegated (line 2311) | int cg_is_delegated(const char *path) {
  function cg_is_delegated_fd (line 2327) | int cg_is_delegated_fd(int fd) {
  function cg_has_coredump_receive (line 2340) | int cg_has_coredump_receive(const char *path) {
  function is_cgroup_fs (line 2368) | bool is_cgroup_fs(const struct statfs *s) {
  function fd_is_cgroup_fs (line 2373) | bool fd_is_cgroup_fs(int fd) {
  function CGroupMask (line 2400) | CGroupMask get_cpu_accounting_mask(void) {
  function cpu_accounting_is_cheap (line 2447) | bool cpu_accounting_is_cheap(void) {

FILE: src/basic/cgroup-util.h
  type CGroupController (line 21) | typedef enum CGroupController {
  type CGroupMask (line 49) | typedef enum CGroupMask {
  function CGroupMask (line 79) | static inline CGroupMask CGROUP_MASK_EXTEND_JOINED(CGroupMask mask) {
  function CGROUP_WEIGHT_IS_OK (line 101) | static inline bool CGROUP_WEIGHT_IS_OK(uint64_t x) {
  type CGroupIOLimitType (line 108) | typedef enum CGroupIOLimitType {
  function CGROUP_CPU_SHARES_IS_OK (line 129) | static inline bool CGROUP_CPU_SHARES_IS_OK(uint64_t x) {
  function BFQ_WEIGHT (line 142) | static inline uint64_t BFQ_WEIGHT(uint64_t io_weight) {
  function CGROUP_BLKIO_WEIGHT_IS_OK (line 155) | static inline bool CGROUP_BLKIO_WEIGHT_IS_OK(uint64_t x) {
  type CGroupUnified (line 161) | typedef enum CGroupUnified {
  type CGroupFlags (line 183) | typedef enum CGroupFlags {
  type CGroupKeyMode (line 223) | typedef enum  {
  function cg_get_keyed_attribute (line 231) | static inline int cg_get_keyed_attribute(
  function cg_get_keyed_attribute_graceful (line 240) | static inline int cg_get_keyed_attribute_graceful(
  function cg_unified (line 320) | static inline int cg_unified(void) {
  type statfs (line 327) | struct statfs
  type ManagedOOMMode (line 330) | typedef enum ManagedOOMMode {
  type ManagedOOMPreference (line 340) | typedef enum ManagedOOMPreference {
  type cg_file_handle (line 352) | typedef union {

FILE: src/basic/chase.c
  function unsafe_transition (line 16) | bool unsafe_transition(const struct stat *a, const struct stat *b) {
  function log_unsafe_transition (line 27) | static int log_unsafe_transition(int a, int b, const char *path, ChaseFl...
  function log_autofs_mount_point (line 47) | static int log_autofs_mount_point(int fd, const char *path, ChaseFlags f...
  function log_prohibited_symlink (line 60) | static int log_prohibited_symlink(int fd, ChaseFlags flags) {
  function chaseat_needs_absolute (line 75) | static int chaseat_needs_absolute(int dir_fd, const char *path) {
  function chaseat (line 82) | int chaseat(int dir_fd, const char *path, ChaseFlags flags, char **ret_p...
  function empty_or_root_to_null (line 552) | static int empty_or_root_to_null(const char **path) {
  function chase (line 573) | int chase(const char *path, const char *root, ChaseFlags flags, char **r...
  function chaseat_prefix_root (line 671) | int chaseat_prefix_root(const char *path, const char *root, char **ret) {
  function chase_extract_filename (line 707) | int chase_extract_filename(const char *path, const char *root, char **re...
  function chase_and_open (line 752) | int chase_and_open(const char *path, const char *root, ChaseFlags chase_...
  function chase_and_opendir (line 790) | int chase_and_opendir(const char *path, const char *root, ChaseFlags cha...
  function chase_and_stat (line 826) | int chase_and_stat(const char *path, const char *root, ChaseFlags chase_...
  function chase_and_access (line 855) | int chase_and_access(const char *path, const char *root, ChaseFlags chas...
  function chase_and_fopen_unlocked (line 884) | int chase_and_fopen_unlocked(
  function chase_and_unlink (line 919) | int chase_and_unlink(const char *path, const char *root, ChaseFlags chas...
  function chase_and_open_parent (line 944) | int chase_and_open_parent(const char *path, const char *root, ChaseFlags...
  function chase_and_openat (line 956) | int chase_and_openat(int dir_fd, const char *path, ChaseFlags chase_flag...
  function chase_and_opendirat (line 992) | int chase_and_opendirat(int dir_fd, const char *path, ChaseFlags chase_f...
  function chase_and_statat (line 1028) | int chase_and_statat(int dir_fd, const char *path, ChaseFlags chase_flag...
  function chase_and_accessat (line 1057) | int chase_and_accessat(int dir_fd, const char *path, ChaseFlags chase_fl...
  function chase_and_fopenat_unlocked (line 1086) | int chase_and_fopenat_unlocked(
  function chase_and_unlinkat (line 1121) | int chase_and_unlinkat(int dir_fd, const char *path, ChaseFlags chase_fl...
  function chase_and_open_parent_at (line 1146) | int chase_and_open_parent_at(int dir_fd, const char *path, ChaseFlags ch...

FILE: src/basic/chase.h
  type ChaseFlags (line 9) | typedef enum ChaseFlags {
  type stat (line 38) | struct stat
  type stat (line 38) | struct stat
  type stat (line 50) | struct stat
  type stat (line 60) | struct stat

FILE: src/basic/chattr-util.c
  function chattr_full (line 16) | int chattr_full(
  function read_attr_fd (line 137) | int read_attr_fd(int fd, unsigned *ret) {
  function read_attr_path (line 151) | int read_attr_path(const char *p, unsigned *ret) {

FILE: src/basic/chattr-util.h
  type ChattrApplyFlags (line 38) | typedef enum ChattrApplyFlags {
  function chattr_at (line 44) | static inline int chattr_at(int dir_fd, const char *path, unsigned value...
  function chattr_fd (line 47) | static inline int chattr_fd(int fd, unsigned value, unsigned mask, unsig...
  function chattr_path (line 50) | static inline int chattr_path(const char *path, unsigned value, unsigned...
  function chattr_secret (line 62) | static inline int chattr_secret(int fd, ChattrApplyFlags flags) {

FILE: src/basic/compress.c
  function zstd_ret_to_errno (line 45) | static int zstd_ret_to_errno(size_t ret) {
  function compression_supported (line 68) | bool compression_supported(Compression c) {
  function compress_blob_xz (line 78) | int compress_blob_xz(const void *src, uint64_t src_size,
  function compress_blob_lz4 (line 116) | int compress_blob_lz4(const void *src, uint64_t src_size,
  function compress_blob_zstd (line 146) | int compress_blob_zstd(
  function decompress_blob_xz (line 169) | int decompress_blob_xz(
  function decompress_blob_lz4 (line 231) | int decompress_blob_lz4(
  function decompress_blob_zstd (line 268) | int decompress_blob_zstd(
  function decompress_blob (line 322) | int decompress_blob(
  function decompress_startswith_xz (line 346) | int decompress_startswith_xz(
  function decompress_startswith_lz4 (line 409) | int decompress_startswith_lz4(
  function decompress_startswith_zstd (line 478) | int decompress_startswith_zstd(
  function decompress_startswith (line 529) | int decompress_startswith(
  function compress_stream_xz (line 561) | int compress_stream_xz(int fdf, int fdt, uint64_t max_bytes, uint64_t *r...
  function compress_stream_lz4 (line 640) | int compress_stream_lz4(int fdf, int fdt, uint64_t max_bytes, uint64_t *...
  function decompress_stream_xz (line 729) | int decompress_stream_xz(int fdf, int fdt, uint64_t max_bytes) {
  function decompress_stream_lz4 (line 804) | int decompress_stream_lz4(int in, int out, uint64_t max_bytes) {
  function compress_stream_zstd (line 868) | int compress_stream_zstd(int fdf, int fdt, uint64_t max_bytes, uint64_t ...
  function decompress_stream_zstd (line 973) | int decompress_stream_zstd(int fdf, int fdt, uint64_t max_bytes) {
  function decompress_stream (line 1081) | int decompress_stream(const char *filename, int fdf, int fdt, uint64_t m...

FILE: src/basic/compress.h
  type Compression (line 9) | typedef enum Compression {
  function compress_blob (line 66) | static inline int compress_blob(
  function compress_stream (line 83) | static inline int compress_stream(int fdf, int fdt, uint64_t max_bytes, ...

FILE: src/basic/conf-files.c
  function files_add (line 25) | static int files_add(
  function base_cmp (line 122) | static int base_cmp(char * const *a, char * const *b) {
  function copy_and_sort_files_from_hashmap (line 128) | static int copy_and_sort_files_from_hashmap(Hashmap *fh, char ***ret) {
  function conf_files_list_strv (line 149) | int conf_files_list_strv(
  function conf_files_list_strv_at (line 183) | int conf_files_list_strv_at(
  function conf_files_insert (line 218) | int conf_files_insert(char ***strv, const char *root, char **dirs, const...
  function conf_files_list (line 286) | int conf_files_list(char ***ret, const char *suffix, const char *root, u...
  function conf_files_list_at (line 290) | int conf_files_list_at(char ***ret, const char *suffix, int rfd, unsigne...
  function conf_files_list_nulstr (line 294) | int conf_files_list_nulstr(char ***ret, const char *suffix, const char *...
  function conf_files_list_nulstr_at (line 306) | int conf_files_list_nulstr_at(char ***ret, const char *suffix, int rfd, ...
  function conf_files_list_with_replacement (line 318) | int conf_files_list_with_replacement(
  function conf_files_list_dropins (line 354) | int conf_files_list_dropins(

FILE: src/basic/confidential-virt.c
  function cpuid (line 22) | static void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t ...
  function cpuid_leaf (line 28) | static uint32_t cpuid_leaf(uint32_t eax, char ret_sig[static 13], bool s...
  function msr (line 47) | static uint64_t msr(uint64_t index) {
  function detect_hyperv_cvm (line 80) | static bool detect_hyperv_cvm(uint32_t isoltype) {
  function ConfidentialVirtualization (line 111) | static ConfidentialVirtualization detect_sev(void) {
  function ConfidentialVirtualization (line 158) | static ConfidentialVirtualization detect_tdx(void) {
  function detect_hypervisor (line 183) | static bool detect_hypervisor(void) {
  function ConfidentialVirtualization (line 198) | static ConfidentialVirtualization detect_confidential_virtualization_imp...
  function ConfidentialVirtualization (line 214) | static ConfidentialVirtualization detect_confidential_virtualization_imp...
  function ConfidentialVirtualization (line 232) | static ConfidentialVirtualization detect_confidential_virtualization_imp...
  function ConfidentialVirtualization (line 238) | ConfidentialVirtualization detect_confidential_virtualization(void) {

FILE: src/basic/confidential-virt.h
  type ConfidentialVirtualization (line 9) | typedef enum ConfidentialVirtualization {

FILE: src/basic/coverage.h
  function _coverage__exit (line 23) | static inline _Noreturn void _coverage__exit(int status) {
  function _coverage_execveat (line 40) | static inline int _coverage_execveat(
  function _coverage_execvpe (line 54) | static inline int _coverage_execvpe(

FILE: src/basic/devnum-util.c
  function parse_devnum (line 12) | int parse_devnum(const char *s, dev_t *ret) {
  function device_path_make_major_minor (line 42) | int device_path_make_major_minor(mode_t mode, dev_t devnum, char **ret) {
  function device_path_make_inaccessible (line 60) | int device_path_make_inaccessible(mode_t mode, char **ret) {
  function device_path_make_canonical (line 78) | int device_path_make_canonical(mode_t mode, dev_t devnum, char **ret) {
  function device_path_parse_major_minor (line 98) | int device_path_parse_major_minor(const char *path, mode_t *ret_mode, de...

FILE: src/basic/devnum-util.h
  function devnum_set_and_equal (line 36) | static inline bool devnum_set_and_equal(dev_t a, dev_t b) {
  function devnum_is_zero (line 54) | static inline bool devnum_is_zero(dev_t d) {

FILE: src/basic/dirent-util.c
  function dirent_ensure_type (line 11) | int dirent_ensure_type(int dir_fd, struct dirent *de) {
  function dirent_is_file (line 41) | bool dirent_is_file(const struct dirent *de) {
  function dirent_is_file_with_suffix (line 53) | bool dirent_is_file_with_suffix(const struct dirent *de, const char *suf...
  type dirent (line 68) | struct dirent
  type dirent (line 76) | struct dirent
  type dirent (line 95) | struct dirent
  type dirent (line 99) | struct dirent

FILE: src/basic/dirent-util.h
  type dirent (line 11) | struct dirent
  type dirent (line 12) | struct dirent
  type dirent (line 13) | struct dirent
  type dirent (line 15) | struct dirent
  type dirent (line 16) | struct dirent
  type dirent (line 42) | struct dirent
  type dirent64 (line 42) | struct dirent64
  type dirent (line 43) | struct dirent
  type dirent64 (line 43) | struct dirent64
  type dirent (line 44) | struct dirent
  type dirent (line 45) | struct dirent
  type dirent64 (line 45) | struct dirent64
  type dirent (line 46) | struct dirent
  type dirent (line 47) | struct dirent
  type dirent64 (line 47) | struct dirent64
  type dirent (line 48) | struct dirent
  type dirent (line 49) | struct dirent
  type dirent64 (line 49) | struct dirent64
  type dirent (line 50) | struct dirent
  type dirent (line 51) | struct dirent
  type dirent64 (line 51) | struct dirent64
  type dirent (line 52) | struct dirent

FILE: src/basic/efivars.c
  function efi_get_variable (line 34) | int efi_get_variable(
  function efi_get_variable_string (line 161) | int efi_get_variable_string(const char *variable, char **ret) {
  function efi_verify_variable (line 179) | static int efi_verify_variable(const char *variable, uint32_t attr, cons...
  function efi_set_variable (line 195) | int efi_set_variable(const char *variable, const void *value, size_t siz...
  function efi_set_variable_string (line 281) | int efi_set_variable_string(const char *variable, const char *value) {
  function is_efi_boot (line 291) | bool is_efi_boot(void) {
  function read_flag (line 307) | static int read_flag(const char *variable) {
  function is_efi_secure_boot (line 327) | bool is_efi_secure_boot(void) {
  function SecureBootMode (line 344) | SecureBootMode efi_get_secure_boot_mode(void) {
  function read_efi_options_variable (line 369) | static int read_efi_options_variable(char **ret) {
  function cache_efi_options_variable (line 395) | int cache_efi_options_variable(void) {
  function systemd_efi_options_variable (line 407) | int systemd_efi_options_variable(char **ret) {
  function compare_stat_mtime (line 434) | static int compare_stat_mtime(const struct stat *a, const struct stat *b) {
  function systemd_efi_options_efivarfs_if_newer (line 438) | int systemd_efi_options_efivarfs_if_newer(char **ret) {

FILE: src/basic/efivars.h
  function efi_get_variable (line 63) | static inline int efi_get_variable(const char *variable, uint32_t *attri...
  function efi_get_variable_string (line 67) | static inline int efi_get_variable_string(const char *variable, char **r...
  function efi_set_variable (line 71) | static inline int efi_set_variable(const char *variable, const void *val...
  function efi_set_variable_string (line 75) | static inline int efi_set_variable_string(const char *variable, const ch...
  function is_efi_boot (line 79) | static inline bool is_efi_boot(void) {
  function is_efi_secure_boot (line 83) | static inline bool is_efi_secure_boot(void) {
  function SecureBootMode (line 87) | static inline SecureBootMode efi_get_secure_boot_mode(void) {
  function cache_efi_options_variable (line 91) | static inline int cache_efi_options_variable(void) {
  function systemd_efi_options_variable (line 95) | static inline int systemd_efi_options_variable(char **line) {
  function systemd_efi_options_efivarfs_if_newer (line 99) | static inline int systemd_efi_options_efivarfs_if_newer(char **line) {

FILE: src/basic/env-file.c
  function parse_env_file_internal (line 22) | static int parse_env_file_internal(
  function check_utf8ness_and_warn (line 288) | static int check_utf8ness_and_warn(
  function parse_env_file_push (line 315) | static int parse_env_file_push(
  function parse_env_filev (line 351) | int parse_env_filev(
  function parse_env_file_fdv (line 367) | int parse_env_file_fdv(int fd, const char *fname, va_list ap) {
  function parse_env_file_sentinel (line 384) | int parse_env_file_sentinel(
  function parse_env_file_fd_sentinel (line 401) | int parse_env_file_fd_sentinel(
  function load_env_file_push (line 418) | static int load_env_file_push(
  function load_env_file (line 445) | int load_env_file(FILE *f, const char *fname, char ***ret) {
  function load_env_file_push_pairs (line 460) | static int load_env_file_push_pairs(
  function load_env_file_pairs (line 493) | int load_env_file_pairs(FILE *f, const char *fname, char ***ret) {
  function load_env_file_pairs_fd (line 508) | int load_env_file_pairs_fd(int fd, const char *fname, char ***ret) {
  function merge_env_file_push (line 521) | static int merge_env_file_push(
  function merge_env_file (line 557) | int merge_env_file(
  function write_env_var (line 572) | static void write_env_var(FILE *f, const char *v) {
  function write_env_file (line 606) | int write_env_file(int dir_fd, const char *fname, char **headers, char *...
  function write_vconsole_conf (line 641) | int write_vconsole_conf(int dir_fd, const char *fname, char **l) {

FILE: src/basic/env-util.c
  function env_name_is_valid_n (line 28) | static bool env_name_is_valid_n(const char *e, size_t n) {
  function env_name_is_valid (line 54) | bool env_name_is_valid(const char *e) {
  function env_value_is_valid (line 58) | bool env_value_is_valid(const char *e) {
  function env_assignment_is_valid (line 78) | bool env_assignment_is_valid(const char *e) {
  function strv_env_is_valid (line 99) | bool strv_env_is_valid(char **e) {
  function strv_env_name_is_valid (line 116) | bool strv_env_name_is_valid(char **l) {
  function strv_env_name_or_assignment_is_valid (line 128) | bool strv_env_name_or_assignment_is_valid(char **l) {
  function env_append (line 140) | static int env_append(char **e, char ***k, char **a) {
  function env_match (line 229) | static bool env_match(const char *t, const char *pattern) {
  function env_entry_has_name (line 255) | static bool env_entry_has_name(const char *entry, const char *name) {
  function strv_env_replace_consume (line 373) | int strv_env_replace_consume(char ***l, char *p) {
  function strv_env_replace_strdup (line 407) | int strv_env_replace_strdup(char ***l, const char *assignment) {
  function strv_env_replace_strdup_passthrough (line 417) | int strv_env_replace_strdup_passthrough(char ***l, const char *assignmen...
  function strv_env_assign (line 443) | int strv_env_assign(char ***l, const char *key, const char *value) {
  function _strv_env_assign_many (line 461) | int _strv_env_assign_many(char ***l, ...) {
  function strv_extend_with_length (line 577) | static int strv_extend_with_length(char ***l, const char *s, size_t n) {
  function strv_env_get_n_validated (line 587) | static int strv_env_get_n_validated(
  function replace_env_full (line 623) | int replace_env_full(
  function replace_env_argv (line 835) | int replace_env_argv(
  function getenv_bool (line 931) | int getenv_bool(const char *p) {
  function getenv_bool_secure (line 941) | int getenv_bool_secure(const char *p) {
  function getenv_uint64_secure (line 951) | int getenv_uint64_secure(const char *p, uint64_t *ret) {
  function set_unset_env (line 963) | int set_unset_env(const char *name, const char *value, bool overwrite) {
  function putenv_dup (line 972) | int putenv_dup(const char *assignment, bool override) {
  function setenv_systemd_exec_pid (line 985) | int setenv_systemd_exec_pid(bool update_only) {
  function getenv_path_list (line 1005) | int getenv_path_list(const char *name, char ***ret_paths) {
  function getenv_steal_erase (line 1043) | int getenv_steal_erase(const char *name, char **ret) {
  function set_full_environment (line 1077) | int set_full_environment(char **env) {
  function setenvf (line 1096) | int setenvf(const char *name, bool overwrite, const char *valuef, ...) {

FILE: src/basic/env-util.h
  function sc_arg_max (line 12) | static inline size_t sc_arg_max(void) {
  type ReplaceEnvFlags (line 22) | typedef enum ReplaceEnvFlags {
  function replace_env (line 29) | static inline int replace_env(const char *format, char **env, ReplaceEnv...

FILE: src/basic/errno-list.c
  type errno_name (line 9) | struct errno_name
  function errno_from_name (line 26) | int errno_from_name(const char *name) {

FILE: src/basic/errno-list.h
  function errno_is_valid (line 13) | static inline bool errno_is_valid(int n) {

FILE: src/basic/errno-util.h
  function _reset_errno_ (line 25) | static inline void _reset_errno_(int *saved_errno) {
  function negative_errno (line 45) | static inline int negative_errno(void) {
  function RET_NERRNO (line 54) | static inline int RET_NERRNO(int ret) {
  function errno_or_else (line 87) | static inline int errno_or_else(int fallback) {
  function ERRNO_IS_NEG_TRANSIENT (line 109) | static inline bool ERRNO_IS_NEG_TRANSIENT(intmax_t r) {
  function ERRNO_IS_NEG_DISCONNECT (line 123) | static inline bool ERRNO_IS_NEG_DISCONNECT(intmax_t r) {
  function ERRNO_IS_NEG_ACCEPT_AGAIN (line 145) | static inline bool ERRNO_IS_NEG_ACCEPT_AGAIN(intmax_t r) {
  function ERRNO_IS_NEG_RESOURCE (line 153) | static inline bool ERRNO_IS_NEG_RESOURCE(intmax_t r) {
  function ERRNO_IS_NEG_NOT_SUPPORTED (line 162) | static inline bool ERRNO_IS_NEG_NOT_SUPPORTED(intmax_t r) {
  function ERRNO_IS_NEG_PRIVILEGE (line 175) | static inline bool ERRNO_IS_NEG_PRIVILEGE(intmax_t r) {
  function ERRNO_IS_NEG_DISK_SPACE (line 183) | static inline bool ERRNO_IS_NEG_DISK_SPACE(intmax_t r) {
  function ERRNO_IS_NEG_DEVICE_ABSENT (line 192) | static inline bool ERRNO_IS_NEG_DEVICE_ABSENT(intmax_t r) {
  function ERRNO_IS_NEG_XATTR_ABSENT (line 202) | static inline bool ERRNO_IS_NEG_XATTR_ABSENT(intmax_t r) {

FILE: src/basic/escape.c
  function cescape_char (line 14) | int cescape_char(char c, char *buf) {
  function cunescape_one (line 106) | int cunescape_one(const char *p, size_t length, char32_t *ret, bool *eig...
  function cunescape_length_with_prefix (line 292) | ssize_t cunescape_length_with_prefix(const char *s, size_t length, const...

FILE: src/basic/escape.h
  type UnescapeFlags (line 31) | typedef enum UnescapeFlags {
  type ShellEscapeFlags (line 36) | typedef enum ShellEscapeFlags {
  function cunescape_length (line 51) | static inline ssize_t cunescape_length(const char *s, size_t length, Une...
  function cunescape (line 54) | static inline ssize_t cunescape(const char *s, UnescapeFlags flags, char...
  type XEscapeFlags (line 58) | typedef enum XEscapeFlags {

FILE: src/basic/ether-addr-util.c
  type hw_addr_data (line 15) | struct hw_addr_data
  type hw_addr_data (line 36) | struct hw_addr_data
  type hw_addr_data (line 36) | struct hw_addr_data
  function hw_addr_compare (line 45) | int hw_addr_compare(const struct hw_addr_data *a, const struct hw_addr_d...
  function hw_addr_hash_func (line 58) | void hw_addr_hash_func(const struct hw_addr_data *p, struct siphash *sta...
  type ether_addr (line 69) | struct ether_addr
  function ether_addr_to_string_alloc (line 88) | int ether_addr_to_string_alloc(const struct ether_addr *addr, char **ret) {
  function ether_addr_compare (line 104) | int ether_addr_compare(const struct ether_addr *a, const struct ether_ad...
  function ether_addr_hash_func (line 108) | static void ether_addr_hash_func(const struct ether_addr *p, struct siph...
  function parse_hw_addr_one_field (line 115) | static int parse_hw_addr_one_field(const char **s, char sep, size_t len,...
  function parse_hw_addr_full (line 173) | int parse_hw_addr_full(const char *s, size_t expected_len, struct hw_add...
  function parse_ether_addr (line 259) | int parse_ether_addr(const char *s, struct ether_addr *ret) {

FILE: src/basic/ether-addr-util.h
  type hw_addr_data (line 17) | struct hw_addr_data {
  type hw_addr_data (line 28) | struct hw_addr_data
  function parse_hw_addr (line 29) | static inline int parse_hw_addr(const char *s, struct hw_addr_data *ret) {
  type ether_addr (line 32) | struct ether_addr
  type HardwareAddressToStringFlags (line 34) | typedef enum HardwareAddressToStringFlags {
  type hw_addr_data (line 40) | struct hw_addr_data
  type hw_addr_data (line 43) | struct hw_addr_data
  type hw_addr_data (line 55) | struct hw_addr_data
  type hw_addr_data (line 55) | struct hw_addr_data
  type hw_addr_data (line 57) | struct hw_addr_data
  type siphash (line 57) | struct siphash
  type hw_addr_data (line 58) | struct hw_addr_data
  type hw_addr_data (line 58) | struct hw_addr_data
  function hw_addr_equal (line 59) | static inline bool hw_addr_equal(const struct hw_addr_data *a, const str...
  function hw_addr_is_null (line 62) | static inline bool hw_addr_is_null(const struct hw_addr_data *addr) {
  type hash_ops (line 67) | struct hash_ops
  type hash_ops (line 68) | struct hash_ops
  type ether_addr (line 74) | struct ether_addr
  type ether_addr (line 75) | struct ether_addr
  type ether_addr (line 79) | struct ether_addr
  type ether_addr (line 79) | struct ether_addr
  function ether_addr_equal (line 80) | static inline bool ether_addr_equal(const struct ether_addr *a, const st...
  function ether_addr_is_null (line 86) | static inline bool ether_addr_is_null(const struct ether_addr *addr) {
  function ether_addr_is_broadcast (line 90) | static inline bool ether_addr_is_broadcast(const struct ether_addr *addr) {
  function ether_addr_is_multicast (line 95) | static inline bool ether_addr_is_multicast(const struct ether_addr *addr) {
  function ether_addr_is_unicast (line 100) | static inline bool ether_addr_is_unicast(const struct ether_addr *addr) {
  function ether_addr_is_local (line 104) | static inline bool ether_addr_is_local(const struct ether_addr *addr) {
  function ether_addr_is_global (line 110) | static inline bool ether_addr_is_global(const struct ether_addr *addr) {
  type hash_ops (line 114) | struct hash_ops
  type hash_ops (line 115) | struct hash_ops

FILE: src/basic/extract-word.c
  function extract_first_word (line 20) | int extract_first_word(const char **p, char **ret, const char *separator...
  function extract_first_word_and_warn (line 200) | int extract_first_word_and_warn(
  type ExtractFlags (line 245) | enum ExtractFlags
  function extract_many_words (line 247) | int extract_many_words(const char **p, const char *separators, unsigned ...

FILE: src/basic/extract-word.h
  type ExtractFlags (line 6) | typedef enum ExtractFlags {

FILE: src/basic/fd-util.c
  function close_nointr (line 38) | int close_nointr(int fd) {
  function safe_close (line 59) | int safe_close(int fd) {
  function safe_close_pair (line 81) | void safe_close_pair(int p[static 2]) {
  function close_many (line 95) | void close_many(const int fds[], size_t n_fds) {
  function close_many_unset (line 102) | void close_many_unset(int fds[], size_t n_fds) {
  function close_many_and_free (line 109) | void close_many_and_free(int *fds, size_t n_fds) {
  function fclose_nointr (line 116) | int fclose_nointr(FILE *f) {
  function FILE (line 133) | FILE* safe_fclose(FILE *f) {
  function DIR (line 146) | DIR* safe_closedir(DIR *d) {
  function fd_nonblock (line 157) | int fd_nonblock(int fd, bool nonblock) {
  function fd_cloexec (line 173) | int fd_cloexec(int fd, bool cloexec) {
  function fd_cloexec_many (line 189) | int fd_cloexec_many(const int fds[], size_t n_fds, bool cloexec) {
  function fd_in_set (line 207) | static bool fd_in_set(int fd, const int fds[], size_t n_fds) {
  function get_max_fd (line 222) | int get_max_fd(void) {
  function close_all_fds_frugal (line 243) | static int close_all_fds_frugal(const int except[], size_t n_except) {
  function close_all_fds_special_case (line 279) | static int close_all_fds_special_case(const int except[], size_t n_excep...
  function close_all_fds_without_malloc (line 328) | int close_all_fds_without_malloc(const int except[], size_t n_except) {
  function close_all_fds (line 342) | int close_all_fds(const int except[], size_t n_except) {
  function same_fd (line 454) | int same_fd(int a, int b) {
  function cmsg_close_all (line 510) | void cmsg_close_all(struct msghdr *mh) {
  function fdname_is_valid (line 521) | bool fdname_is_valid(const char *s) {
  function fd_get_path (line 548) | int fd_get_path(int fd, char **ret) {
  function move_fd (line 570) | int move_fd(int from, int to, int cloexec) {
  function fd_move_above_stdio (line 614) | int fd_move_above_stdio(int fd) {
  function rearrange_stdio (line 651) | int rearrange_stdio(int original_input_fd, int original_output_fd, int o...
  function fd_reopen (line 762) | int fd_reopen(int fd, int flags) {
  function fd_reopen_condition (line 812) | int fd_reopen_condition(
  function fd_is_opath (line 844) | int fd_is_opath(int fd) {
  function read_nr_open (line 856) | int read_nr_open(void) {
  function fd_get_diskseq (line 880) | int fd_get_diskseq(int fd, uint64_t *ret) {
  function path_is_root_at (line 901) | int path_is_root_at(int dir_fd, const char *path) {

FILE: src/basic/fd-util.h
  function safe_close_above_stdio (line 28) | static inline int safe_close_above_stdio(int fd) {
  function closep (line 43) | static inline void closep(int *fd) {
  function close_pairp (line 47) | static inline void close_pairp(int (*p)[2]) {
  function fclosep (line 51) | static inline void fclosep(FILE **f) {
  type msghdr (line 75) | struct msghdr
  function make_null_stdio (line 87) | static inline int make_null_stdio(void) {
  function path_is_root (line 110) | static inline int path_is_root(const char *path) {
  function dir_fd_is_root (line 113) | static inline int dir_fd_is_root(int dir_fd) {
  function dir_fd_is_root_or_cwd (line 116) | static inline int dir_fd_is_root_or_cwd(int dir_fd) {

FILE: src/basic/fileio.c
  function fdopen_unlocked (line 49) | int fdopen_unlocked(int fd, const char *options, FILE **ret) {
  function take_fdopen_unlocked (line 62) | int take_fdopen_unlocked(int *fd, const char *options, FILE **ret) {
  function FILE (line 76) | FILE* take_fdopen(int *fd, const char *options) {
  function DIR (line 88) | DIR* take_fdopendir(int *dfd) {
  function FILE (line 100) | FILE* open_memstream_unlocked(char **ptr, size_t *sizeloc) {
  function FILE (line 110) | FILE* fmemopen_unlocked(void *buf, size_t size, const char *mode) {
  function write_string_stream_ts (line 120) | int write_string_stream_ts(
  function write_string_file_atomic_at (line 202) | static int write_string_file_atomic_at(
  function write_string_file_ts_at (line 250) | int write_string_file_ts_at(
  function write_string_filef (line 325) | int write_string_filef(
  function read_one_line_file_at (line 344) | int read_one_line_file_at(int dir_fd, const char *filename, char **ret) {
  function verify_file_at (line 359) | int verify_file_at(int dir_fd, const char *fn, const char *blob, bool ac...
  function read_virtual_file_fd (line 397) | int read_virtual_file_fd(int fd, size_t max_size, char **ret_contents, s...
  function read_virtual_file_at (line 542) | int read_virtual_file_at(
  function read_full_stream_full (line 567) | int read_full_stream_full(
  function read_full_file_full (line 752) | int read_full_file_full(
  function executable_is_script (line 780) | int executable_is_script(const char *path, char **interpreter) {
  function get_proc_field (line 819) | int get_proc_field(const char *filename, const char *pattern, const char...
  function DIR (line 881) | DIR *xopendirat(int fd, const char *name, int flags) {
  function fopen_mode_to_flags (line 896) | int fopen_mode_to_flags(const char *mode) {
  function xfopenat_regular (line 942) | static int xfopenat_regular(int dir_fd, const char *path, const char *mo...
  function xfopenat_unix_socket (line 975) | static int xfopenat_unix_socket(int dir_fd, const char *path, const char...
  function xfopenat_full (line 1017) | int xfopenat_full(
  function fdopen_independent (line 1051) | int fdopen_independent(int fd, const char *mode, FILE **ret) {
  function search_and_open_internal (line 1081) | static int search_and_open_internal(
  function search_and_open (line 1150) | int search_and_open(
  function search_and_fopen_internal (line 1169) | static int search_and_fopen_internal(
  function search_and_fopen (line 1208) | int search_and_fopen(
  function search_and_fopen_nulstr (line 1228) | int search_and_fopen_nulstr(
  function fflush_and_check (line 1248) | int fflush_and_check(FILE *f) {
  function fflush_sync_and_check (line 1260) | int fflush_sync_and_check(FILE *f) {
  function write_timestamp_file_atomic (line 1282) | int write_timestamp_file_atomic(const char *fn, usec_t n) {
  function read_timestamp_file (line 1296) | int read_timestamp_file(const char *fn, usec_t *ret) {
  function fputs_with_space (line 1316) | int fputs_with_space(FILE *f, const char *s, const char *separator, bool...
  type EndOfLineMarker (line 1346) | typedef enum EndOfLineMarker {
  function EndOfLineMarker (line 1353) | static EndOfLineMarker categorize_eol(char c, ReadLineFlags flags) {
  function read_line_full (line 1370) | int read_line_full(FILE *f, size_t limit, ReadLineFlags flags, char **re...
  function read_stripped_line (line 1493) | int read_stripped_line(FILE *f, size_t limit, char **ret) {
  function safe_fgetc (line 1523) | int safe_fgetc(FILE *f, char *ret) {
  function warn_file_is_world_accessible (line 1550) | int warn_file_is_world_accessible(const char *filename, struct stat *st,...

FILE: src/basic/fileio.h
  type WriteStringFileFlags (line 17) | typedef enum {
  type ReadFullFileFlags (line 37) | typedef enum {
  type timespec (line 53) | struct timespec
  function write_string_stream (line 54) | static inline int write_string_stream(FILE *f, const char *line, WriteSt...
  type timespec (line 57) | struct timespec
  function write_string_file_ts (line 58) | static inline int write_string_file_ts(const char *fn, const char *line,...
  function write_string_file_at (line 61) | static inline int write_string_file_at(int dir_fd, const char *fn, const...
  function write_string_file (line 64) | static inline int write_string_file(const char *fn, const char *line, Wr...
  function read_one_line_file (line 71) | static inline int read_one_line_file(const char *filename, char **ret) {
  function read_full_file_at (line 75) | static inline int read_full_file_at(int dir_fd, const char *filename, ch...
  function read_full_file (line 78) | static inline int read_full_file(const char *filename, char **ret_conten...
  function read_virtual_file (line 84) | static inline int read_virtual_file(const char *filename, size_t max_siz...
  function read_full_virtual_file (line 87) | static inline int read_full_virtual_file(const char *filename, char **re...
  function read_full_stream (line 92) | static inline int read_full_stream(FILE *f, char **ret_contents, size_t ...
  function verify_file (line 97) | static inline int verify_file(const char *fn, const char *blob, bool acc...
  type XfopenFlags (line 107) | typedef enum XfopenFlags {
  function xfopenat (line 120) | static inline int xfopenat(int dir_fd, const char *path, const char *mod...
  function fopen_unlocked_at (line 123) | static inline int fopen_unlocked_at(int dir_fd, const char *path, const ...
  function fopen_unlocked (line 126) | static inline int fopen_unlocked(const char *path, const char *mode, FIL...
  function search_and_access (line 133) | static inline int search_and_access(const char *path, int mode, const ch...
  type ReadLineFlags (line 147) | typedef enum ReadLineFlags {
  function file_offset_beyond_memory_size (line 155) | static inline bool file_offset_beyond_memory_size(off_t x) {
  function read_line (line 161) | static inline int read_line(FILE *f, size_t limit, char **ret) {
  function read_nul_string (line 165) | static inline int read_nul_string(FILE *f, size_t limit, char **ret) {
  type stat (line 173) | struct stat

FILE: src/basic/filesystems.c
  function fs_type_from_string (line 16) | int fs_type_from_string(const char *name, const statfs_f_type_t **ret) {
  function fs_in_group (line 30) | bool fs_in_group(const struct statfs *s, FilesystemGroups fs_group) {
  function FilesystemSet (line 166) | const FilesystemSet *filesystem_set_find(const char *name) {

FILE: src/basic/filesystems.h
  type FilesystemGroups (line 10) | typedef enum FilesystemGroups {
  type FilesystemSet (line 27) | typedef struct FilesystemSet {
  type statfs (line 39) | struct statfs
  type FilesystemGroups (line 39) | enum FilesystemGroups
  type FilesystemMagic (line 42) | struct FilesystemMagic

FILE: src/basic/format-util.c
  function format_ifname_full (line 9) | int format_ifname_full(int ifindex, FormatIfnameFlag flag, char buf[stat...
  function format_ifname_full_alloc (line 27) | int format_ifname_full_alloc(int ifindex, FormatIfnameFlag flag, char **...
  type suffix_table (line 46) | typedef struct {

FILE: src/basic/format-util.h
  type FormatIfnameFlag (line 61) | typedef enum {
  function format_ifname (line 69) | static inline int format_ifname(int ifindex, char buf[static IF_NAMESIZE...
  function format_ifname_alloc (line 72) | static inline int format_ifname_alloc(int ifindex, char **ret) {
  type FormatBytesFlag (line 84) | typedef enum {
  function _warn_unused_result_ (line 94) | _warn_unused_result_

FILE: src/basic/fs-util.c
  function rmdir_parents (line 40) | int rmdir_parents(const char *path, const char *stop) {
  function rename_noreplace (line 76) | int rename_noreplace(int olddirfd, const char *oldpath, int newdirfd, co...
  function readlinkat_malloc (line 116) | int readlinkat_malloc(int fd, const char *p, char **ret) {
  function readlink_malloc (line 155) | int readlink_malloc(const char *p, char **ret) {
  function readlink_value (line 159) | int readlink_value(const char *p, char **ret) {
  function readlink_and_make_absolute (line 180) | int readlink_and_make_absolute(const char *p, char **ret) {
  function chmod_and_chown_at (line 194) | int chmod_and_chown_at(int dir_fd, const char *path, mode_t mode, uid_t ...
  function fchmod_and_chown_with_fallback (line 217) | int fchmod_and_chown_with_fallback(int fd, const char *path, mode_t mode...
  function fchmod_umask (line 287) | int fchmod_umask(int fd, mode_t m) {
  function fchmod_opath (line 293) | int fchmod_opath(int fd, mode_t m) {
  function futimens_opath (line 325) | int futimens_opath(int fd, const struct timespec ts[2]) {
  function stat_warn_permissions (line 341) | int stat_warn_permissions(const char *path, const struct stat *st) {
  function fd_warn_permissions (line 361) | int fd_warn_permissions(const char *path, int fd) {
  function touch_file (line 373) | int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, ...
  function symlink_idempotent (line 421) | int symlink_idempotent(const char *from, const char *to, bool make_relat...
  function symlinkat_atomic_full (line 455) | int symlinkat_atomic_full(const char *from, int atfd, const char *to, bo...
  function mknodat_atomic (line 486) | int mknodat_atomic(int atfd, const char *path, mode_t mode, dev_t dev) {
  function mkfifoat_atomic (line 508) | int mkfifoat_atomic(int atfd, const char *path, mode_t mode) {
  function get_files_in_directory (line 531) | int get_files_in_directory(const char *path, char ***list) {
  function getenv_tmp_dir (line 570) | static int getenv_tmp_dir(const char **ret_path) {
  function tmp_dir_internal (line 616) | static int tmp_dir_internal(const char *def, const char **ret) {
  function var_tmp_dir (line 639) | int var_tmp_dir(const char **ret) {
  function tmp_dir (line 649) | int tmp_dir(const char **ret) {
  function unlink_or_warn (line 657) | int unlink_or_warn(const char *filename) {
  function access_fd (line 668) | int access_fd(int fd, int mode) {
  function unlink_tempfilep (line 688) | void unlink_tempfilep(char (*p)[]) {
  function unlinkat_deallocate (line 697) | int unlinkat_deallocate(int fd, const char *name, UnlinkDeallocateFlags ...
  function open_parent_at (line 806) | int open_parent_at(int dir_fd, const char *path, int flags, mode_t mode) {
  function conservative_renameat (line 836) | int conservative_renameat(
  function posix_fallocate_loop (line 926) | int posix_fallocate_loop(int fd, uint64_t offset, uint64_t size) {
  function parse_cifs_service (line 946) | int parse_cifs_service(
  function open_mkdir_at (line 1021) | int open_mkdir_at(int dirfd, const char *path, int flags, mode_t mode) {
  function openat_report_new (line 1066) | int openat_report_new(int dirfd, const char *pathname, int flags, mode_t...
  function xopenat_full (line 1113) | int xopenat_full(int dir_fd, const char *path, int open_flags, XOpenFlag...
  function xopenat_lock_full (line 1194) | int xopenat_lock_full(

FILE: src/basic/fs-util.h
  function chmod_and_chown (line 36) | static inline int chmod_and_chown(const char *path, mode_t mode, uid_t u...
  function fchmod_and_chown (line 40) | static inline int fchmod_and_chown(int fd, mode_t mode, uid_t uid, gid_t...
  type timespec (line 47) | struct timespec
  type stat (line 50) | struct stat
  function touch (line 57) | static inline int touch(const char *path) {
  function symlink_atomic (line 64) | static inline int symlink_atomic(const char *from, const char *to) {
  function mknod_atomic (line 69) | static inline int mknod_atomic(const char *path, mode_t mode, dev_t dev) {
  function mkfifo_atomic (line 74) | static inline int mkfifo_atomic(const char *path, mode_t mode) {
  type UnlinkDeallocateFlags (line 110) | typedef enum UnlinkDeallocateFlags {
  function open_parent (line 118) | static inline int open_parent(const char *path, int flags, mode_t mode) {
  function conservative_rename (line 123) | static inline int conservative_rename(const char *oldpath, const char *n...
  type XOpenFlags (line 135) | typedef enum XOpenFlags {
  function xopenat (line 141) | static inline int xopenat(int dir_fd, const char *path, int open_flags) {
  function xopenat_lock (line 146) | static inline int xopenat_lock(int dir_fd, const char *path, int open_fl...

FILE: src/basic/gcrypt-util.c
  function initialize_libgcrypt (line 8) | void initialize_libgcrypt(bool secmem) {
  function string_hashsum (line 24) | int string_hashsum(const char *s, size_t len, int md_algorithm, char **o...

FILE: src/basic/gcrypt-util.h
  function string_hashsum_sha224 (line 24) | static inline int string_hashsum_sha224(const char *s, size_t len, char ...
  function string_hashsum_sha256 (line 32) | static inline int string_hashsum_sha256(const char *s, size_t len, char ...

FILE: src/basic/generate-filesystem-switch-case.py
  function filter_fsname (line 7) | def filter_fsname(name):

FILE: src/basic/glob-util.c
  function closedir_wrapper (line 15) | static void closedir_wrapper(void* v) {
  function safe_glob (line 19) | int safe_glob(const char *path, int flags, glob_t *pglob) {
  function glob_first (line 50) | int glob_first(const char *path, char **ret_first) {
  function glob_extend (line 77) | int glob_extend(char ***strv, const char *path, int flags) {
  function glob_non_glob_prefix (line 88) | int glob_non_glob_prefix(const char *path, char **ret) {

FILE: src/basic/glob-util.h
  function _pure_ (line 22) | _pure_ static inline bool string_is_glob(const char *p) {

FILE: src/basic/glyph-util.c
  function emoji_enabled (line 8) | bool emoji_enabled(void) {

FILE: src/basic/glyph-util.h
  type SpecialGlyph (line 9) | typedef enum SpecialGlyph {

FILE: src/basic/gunicode.c
  type Interval (line 36) | struct Interval
  function interval_compare (line 41) | static int
  function unichar_iswide (line 77) | bool

FILE: src/basic/hash-funcs.c
  function string_hash_func (line 9) | void string_hash_func(const char *p, struct siphash *state) {
  function path_hash_func (line 23) | void path_hash_func(const char *q, struct siphash *state) {
  function trivial_hash_func (line 69) | void trivial_hash_func(const void *p, struct siphash *state) {
  function trivial_compare_func (line 73) | int trivial_compare_func(const void *a, const void *b) {
  type hash_ops (line 77) | struct hash_ops
  type hash_ops (line 82) | struct hash_ops
  type hash_ops (line 88) | struct hash_ops
  function uint64_hash_func (line 95) | void uint64_hash_func(const uint64_t *p, struct siphash *state) {
  function uint64_compare_func (line 99) | int uint64_compare_func(const uint64_t *a, const uint64_t *b) {
  function devt_hash_func (line 106) | void devt_hash_func(const dev_t *p, struct siphash *state) {
  function devt_compare_func (line 111) | int devt_compare_func(const dev_t *a, const dev_t *b) {

FILE: src/basic/hash-funcs.h
  type siphash (line 8) | struct siphash
  type hash_ops (line 11) | struct hash_ops {
  type siphash (line 76) | struct siphash
  type hash_ops (line 78) | struct hash_ops
  type hash_ops (line 79) | struct hash_ops
  type hash_ops (line 80) | struct hash_ops
  type hash_ops (line 81) | struct hash_ops
  type siphash (line 83) | struct siphash
  type hash_ops (line 84) | struct hash_ops
  type hash_ops (line 85) | struct hash_ops
  type hash_ops (line 86) | struct hash_ops
  type siphash (line 90) | struct siphash
  type hash_ops (line 92) | struct hash_ops
  type hash_ops (line 93) | struct hash_ops
  type hash_ops (line 94) | struct hash_ops
  type siphash (line 98) | struct siphash
  type hash_ops (line 100) | struct hash_ops
  type siphash (line 105) | struct siphash
  type hash_ops (line 111) | struct hash_ops

FILE: src/basic/hashmap.c
  type hashmap_base_entry (line 85) | struct hashmap_base_entry {
  type plain_hashmap_entry (line 92) | struct plain_hashmap_entry {
  type ordered_hashmap_entry (line 97) | struct ordered_hashmap_entry {
  type set_entry (line 102) | struct set_entry {
  type swap_entries (line 122) | struct swap_entries {
  type dib_raw_t (line 127) | typedef uint8_t dib_raw_t;
  type hashmap_debug_info (line 136) | struct hashmap_debug_info {
  type hashmap_debug_info (line 152) | struct hashmap_debug_info
  type HashmapType (line 156) | enum HashmapType {
  function indirect_storage (line 163) | struct _packed_ indirect_storage {
  type direct_storage (line 177) | struct direct_storage {
  type ordered_hashmap_entry (line 188) | struct ordered_hashmap_entry
  type set_entry (line 191) | struct set_entry
  type HashmapBase (line 200) | struct HashmapBase {
  type Hashmap (line 224) | struct Hashmap {
  type OrderedHashmap (line 228) | struct OrderedHashmap {
  type Set (line 233) | struct Set {
  type CacheMem (line 237) | typedef struct CacheMem {
  type IteratedCache (line 243) | struct IteratedCache {
  type hashmap_type_info (line 253) | struct hashmap_type_info {
  type plain_hashmap_entry (line 263) | struct plain_hashmap_entry
  type ordered_hashmap_entry (line 269) | struct ordered_hashmap_entry
  type set_entry (line 275) | struct set_entry
  function hashmap_trim_pools (line 281) | void hashmap_trim_pools(void) {
  function _destructor_ (line 303) | _destructor_ static void cleanup_pools(void) {
  function n_buckets (line 310) | static unsigned n_buckets(HashmapBase *h) {
  function n_entries (line 315) | static unsigned n_entries(HashmapBase *h) {
  function n_entries_inc (line 320) | static void n_entries_inc(HashmapBase *h) {
  function n_entries_dec (line 327) | static void n_entries_dec(HashmapBase *h) {
  function base_bucket_hash (line 344) | static unsigned base_bucket_hash(HashmapBase *h, const void *p) {
  function base_set_dirty (line 358) | static void base_set_dirty(HashmapBase *h) {
  function get_hash_key (line 363) | static void get_hash_key(uint8_t hash_key[HASH_KEY_SIZE], bool reuse_is_...
  type hashmap_base_entry (line 382) | struct hashmap_base_entry
  type plain_hashmap_entry (line 388) | struct plain_hashmap_entry
  type plain_hashmap_entry (line 389) | struct plain_hashmap_entry
  type ordered_hashmap_entry (line 392) | struct ordered_hashmap_entry
  type ordered_hashmap_entry (line 393) | struct ordered_hashmap_entry
  type set_entry (line 396) | struct set_entry
  type set_entry (line 397) | struct set_entry
  type ordered_hashmap_entry (line 400) | struct ordered_hashmap_entry
  type swap_entries (line 400) | struct swap_entries
  type hashmap_base_entry (line 406) | struct hashmap_base_entry
  type swap_entries (line 406) | struct swap_entries
  function dib_raw_t (line 417) | static dib_raw_t* dib_raw_ptr(HashmapBase *h) {
  function bucket_distance (line 422) | static unsigned bucket_distance(HashmapBase *h, unsigned idx, unsigned f...
  function bucket_calculate_dib (line 427) | static unsigned bucket_calculate_dib(HashmapBase *h, unsigned idx, dib_r...
  function bucket_set_dib (line 450) | static void bucket_set_dib(HashmapBase *h, unsigned idx, unsigned dib) {
  function skip_free_buckets (line 454) | static unsigned skip_free_buckets(HashmapBase *h, unsigned idx) {
  function bucket_mark_free (line 466) | static void bucket_mark_free(HashmapBase *h, unsigned idx) {
  function bucket_move_entry (line 471) | static void bucket_move_entry(HashmapBase *h, struct swap_entries *swap,
  function next_idx (line 507) | static unsigned next_idx(HashmapBase *h, unsigned idx) {
  function prev_idx (line 511) | static unsigned prev_idx(HashmapBase *h, unsigned idx) {
  type hashmap_base_entry (line 515) | struct hashmap_base_entry
  type plain_hashmap_entry (line 520) | struct plain_hashmap_entry
  function base_remove_entry (line 530) | static void base_remove_entry(HashmapBase *h, unsigned idx) {
  function hashmap_iterate_in_insertion_order (line 585) | static unsigned hashmap_iterate_in_insertion_order(OrderedHashmap *h, It...
  function hashmap_iterate_in_internal_order (line 636) | static unsigned hashmap_iterate_in_internal_order(HashmapBase *h, Iterat...
  function hashmap_iterate_entry (line 691) | static unsigned hashmap_iterate_entry(HashmapBase *h, Iterator *i) {
  function _hashmap_iterate (line 717) | bool _hashmap_iterate(HashmapBase *h, Iterator *i, void **value, const v...
  function IteratedCache (line 747) | IteratedCache* _hashmap_iterated_cache_new(HashmapBase *h) {
  function reset_direct_storage (line 766) | static void reset_direct_storage(HashmapBase *h) {
  function shared_hash_key_initialize (line 776) | static void shared_hash_key_initialize(void) {
  type HashmapBase (line 780) | struct HashmapBase
  type hash_ops (line 780) | struct hash_ops
  type HashmapType (line 780) | enum HashmapType
  type hashmap_type_info (line 782) | struct hashmap_type_info
  function Hashmap (line 816) | Hashmap *_hashmap_new(const struct hash_ops *hash_ops  HASHMAP_DEBUG_PAR...
  function OrderedHashmap (line 820) | OrderedHashmap *_ordered_hashmap_new(const struct hash_ops *hash_ops  HA...
  function Set (line 824) | Set *_set_new(const struct hash_ops *hash_ops  HASHMAP_DEBUG_PARAMS) {
  function hashmap_base_ensure_allocated (line 828) | static int hashmap_base_ensure_allocated(HashmapBase **h, const struct h...
  function _hashmap_ensure_allocated (line 845) | int _hashmap_ensure_allocated(Hashmap **h, const struct hash_ops *hash_o...
  function _ordered_hashmap_ensure_allocated (line 849) | int _ordered_hashmap_ensure_allocated(OrderedHashmap **h, const struct h...
  function _set_ensure_allocated (line 853) | int _set_ensure_allocated(Set **s, const struct hash_ops *hash_ops  HASH...
  function _hashmap_ensure_put (line 857) | int _hashmap_ensure_put(Hashmap **h, const struct hash_ops *hash_ops, co...
  function _ordered_hashmap_ensure_put (line 867) | int _ordered_hashmap_ensure_put(OrderedHashmap **h, const struct hash_op...
  function hashmap_free_no_clear (line 877) | static void hashmap_free_no_clear(HashmapBase *h) {
  function HashmapBase (line 895) | HashmapBase* _hashmap_free(HashmapBase *h, free_func_t default_free_key,...
  function _hashmap_clear (line 904) | void _hashmap_clear(HashmapBase *h, free_func_t default_free_key, free_f...
  function hashmap_put_robin_hood (line 959) | static bool hashmap_put_robin_hood(HashmapBase *h, unsigned idx,
  function hashmap_base_put_boldly (line 1017) | static int hashmap_base_put_boldly(HashmapBase *h, unsigned idx,
  function resize_buckets (line 1073) | static int resize_buckets(HashmapBase *h, unsigned entries_add) {
  function base_bucket_scan (line 1211) | static unsigned base_bucket_scan(HashmapBase *h, unsigned idx, const voi...
  function hashmap_put (line 1237) | int hashmap_put(Hashmap *h, const void *key, void *value) {
  function set_put (line 1259) | int set_put(Set *s, const void *key) {
  function _set_ensure_put (line 1276) | int _set_ensure_put(Set **s, const struct hash_ops *hash_ops, const void...
  function _set_ensure_consume (line 1286) | int _set_ensure_consume(Set **s, const struct hash_ops *hash_ops, void *...
  function hashmap_replace (line 1300) | int hashmap_replace(Hashmap *h, const void *key, void *value) {
  function hashmap_update (line 1334) | int hashmap_update(Hashmap *h, const void *key, void *value) {
  type hashmap_base_entry (line 1353) | struct hashmap_base_entry
  type plain_hashmap_entry (line 1369) | struct plain_hashmap_entry
  function _hashmap_contains (line 1387) | bool _hashmap_contains(HashmapBase *h, const void *key) {
  type hashmap_base_entry (line 1398) | struct hashmap_base_entry
  type plain_hashmap_entry (line 1418) | struct plain_hashmap_entry
  function hashmap_remove_and_put (line 1446) | int hashmap_remove_and_put(Hashmap *h, const void *old_key, const void *...
  function set_remove_and_put (line 1473) | int set_remove_and_put(Set *s, const void *old_key, const void *new_key) {
  function hashmap_remove_and_replace (line 1499) | int hashmap_remove_and_replace(Hashmap *h, const void *old_key, const vo...
  type hashmap_base_entry (line 1536) | struct hashmap_base_entry
  function find_first_entry (line 1556) | static unsigned find_first_entry(HashmapBase *h) {
  type hashmap_base_entry (line 1566) | struct hashmap_base_entry
  function _hashmap_size (line 1590) | unsigned _hashmap_size(HashmapBase *h) {
  function _hashmap_buckets (line 1597) | unsigned _hashmap_buckets(HashmapBase *h) {
  function _hashmap_merge (line 1604) | int _hashmap_merge(Hashmap *h, Hashmap *other) {
  function set_merge (line 1622) | int set_merge(Set *s, Set *other) {
  function _hashmap_reserve (line 1640) | int _hashmap_reserve(HashmapBase *h, unsigned entries_add) {
  function _hashmap_move (line 1658) | int _hashmap_move(HashmapBase *h, HashmapBase *other) {
  function _hashmap_move_one (line 1703) | int _hashmap_move_one(HashmapBase *h, HashmapBase *other, const void *ke...
  type ordered_hashmap_entry (line 1789) | struct ordered_hashmap_entry
  function set_consume (line 1806) | int set_consume(Set *s, void *value) {
  function _hashmap_put_strdup_full (line 1819) | int _hashmap_put_strdup_full(Hashmap **h, const struct hash_ops *hash_op...
  function _set_put_strndup_full (line 1853) | int _set_put_strndup_full(Set **s, const struct hash_ops *hash_ops, cons...
  function _set_put_strdupv_full (line 1877) | int _set_put_strdupv_full(Set **s, const struct hash_ops *hash_ops, char...
  function set_put_strsplit (line 1893) | int set_put_strsplit(Set *s, const char *v, const char *separators, Extr...
  function cachemem_maintain (line 1913) | static int cachemem_maintain(CacheMem *mem, size_t size) {
  function iterated_cache_get (line 1929) | int iterated_cache_get(IteratedCache *cache, const void ***res_keys, con...
  function IteratedCache (line 1994) | IteratedCache* iterated_cache_free(IteratedCache *cache) {
  function set_strjoin (line 2003) | int set_strjoin(Set *s, const char *separator, bool wrap_with_separator,...
  function set_equal (line 2053) | bool set_equal(Set *a, Set *b) {
  function set_fnmatch_one (line 2085) | static bool set_fnmatch_one(Set *patterns, const char *needle) {
  function set_fnmatch (line 2099) | bool set_fnmatch(Set *include_patterns, Set *exclude_patterns, const cha...
  function hashmap_entry_compare (line 2111) | static int hashmap_entry_compare(
  function _hashmap_dump_sorted (line 2123) | int _hashmap_dump_sorted(HashmapBase *h, void ***ret, size_t *ret_n) {

FILE: src/basic/hashmap.h
  type HashmapBase (line 29) | typedef struct HashmapBase HashmapBase;
  type Hashmap (line 32) | typedef struct Hashmap Hashmap;
  type OrderedHashmap (line 33) | typedef struct OrderedHashmap OrderedHashmap;
  type Set (line 34) | typedef struct Set Set;
  type IteratedCache (line 36) | typedef struct IteratedCache IteratedCache;
  type Iterator (line 41) | typedef struct {
  type hash_ops (line 86) | struct hash_ops
  type hash_ops (line 87) | struct hash_ops
  function Hashmap (line 95) | static inline Hashmap* hashmap_free(Hashmap *h) {
  function OrderedHashmap (line 98) | static inline OrderedHashmap* ordered_hashmap_free(OrderedHashmap *h) {
  function Hashmap (line 102) | static inline Hashmap* hashmap_free_free(Hashmap *h) {
  function OrderedHashmap (line 105) | static inline OrderedHashmap* ordered_hashmap_free_free(OrderedHashmap *...
  function Hashmap (line 109) | static inline Hashmap* hashmap_free_free_key(Hashmap *h) {
  function OrderedHashmap (line 112) | static inline OrderedHashmap* ordered_hashmap_free_free_key(OrderedHashm...
  function Hashmap (line 116) | static inline Hashmap* hashmap_free_free_free(Hashmap *h) {
  function OrderedHashmap (line 119) | static inline OrderedHashmap* ordered_hashmap_free_free_free(OrderedHash...
  type hash_ops (line 130) | struct hash_ops
  type hash_ops (line 131) | struct hash_ops
  type hash_ops (line 132) | struct hash_ops
  type hash_ops (line 138) | struct hash_ops
  function IteratedCache (line 142) | static inline IteratedCache* hashmap_iterated_cache_new(Hashmap *h) {
  function IteratedCache (line 145) | static inline IteratedCache* ordered_hashmap_iterated_cache_new(OrderedH...
  function ordered_hashmap_put (line 150) | static inline int ordered_hashmap_put(OrderedHashmap *h, const void *key...
  type hash_ops (line 154) | struct hash_ops
  function ordered_hashmap_update (line 159) | static inline int ordered_hashmap_update(OrderedHashmap *h, const void *...
  function ordered_hashmap_replace (line 164) | static inline int ordered_hashmap_replace(OrderedHashmap *h, const void ...
  function hashmap_contains (line 182) | static inline bool hashmap_contains(Hashmap *h, const void *key) {
  function ordered_hashmap_contains (line 185) | static inline bool ordered_hashmap_contains(OrderedHashmap *h, const voi...
  function ordered_hashmap_remove_and_put (line 212) | static inline int ordered_hashmap_remove_and_put(OrderedHashmap *h, cons...
  function ordered_hashmap_remove_and_replace (line 217) | static inline int ordered_hashmap_remove_and_replace(OrderedHashmap *h, ...
  function hashmap_reserve (line 228) | static inline int hashmap_reserve(Hashmap *h, unsigned entries_add) {
  function ordered_hashmap_reserve (line 231) | static inline int ordered_hashmap_reserve(OrderedHashmap *h, unsigned en...
  function hashmap_move (line 237) | static inline int hashmap_move(Hashmap *h, Hashmap *other) {
  function ordered_hashmap_move (line 240) | static inline int ordered_hashmap_move(OrderedHashmap *h, OrderedHashmap...
  function hashmap_move_one (line 245) | static inline int hashmap_move_one(Hashmap *h, Hashmap *other, const voi...
  function ordered_hashmap_move_one (line 248) | static inline int ordered_hashmap_move_one(OrderedHashmap *h, OrderedHas...
  function hashmap_size (line 253) | static inline unsigned hashmap_size(Hashmap *h) {
  function ordered_hashmap_size (line 256) | static inline unsigned ordered_hashmap_size(OrderedHashmap *h) {
  function hashmap_isempty (line 260) | static inline bool hashmap_isempty(Hashmap *h) {
  function ordered_hashmap_isempty (line 263) | static inline bool ordered_hashmap_isempty(OrderedHashmap *h) {
  function hashmap_buckets (line 268) | static inline unsigned hashmap_buckets(Hashmap *h) {
  function ordered_hashmap_buckets (line 271) | static inline unsigned ordered_hashmap_buckets(OrderedHashmap *h) {
  function hashmap_iterate (line 276) | static inline bool hashmap_iterate(Hashmap *h, Iterator *i, void **value...
  function ordered_hashmap_iterate (line 279) | static inline bool ordered_hashmap_iterate(OrderedHashmap *h, Iterator *...
  function hashmap_clear (line 284) | static inline void hashmap_clear(Hashmap *h) {
  function ordered_hashmap_clear (line 287) | static inline void ordered_hashmap_clear(OrderedHashmap *h) {
  function hashmap_clear_free (line 291) | static inline void hashmap_clear_free(Hashmap *h) {
  function ordered_hashmap_clear_free (line 294) | static inline void ordered_hashmap_clear_free(OrderedHashmap *h) {
  function hashmap_clear_free_key (line 298) | static inline void hashmap_clear_free_key(Hashmap *h) {
  function ordered_hashmap_clear_free_key (line 301) | static inline void ordered_hashmap_clear_free_key(OrderedHashmap *h) {
  function hashmap_clear_free_free (line 305) | static inline void hashmap_clear_free_free(Hashmap *h) {
  function ordered_hashmap_clear_free_free (line 308) | static inline void ordered_hashmap_clear_free_free(OrderedHashmap *h) {
  function hashmap_dump_sorted (line 402) | static inline int hashmap_dump_sorted(Hashmap *h, void ***ret, size_t *r...
  function ordered_hashmap_dump_sorted (line 405) | static inline int ordered_hashmap_dump_sorted(OrderedHashmap *h, void **...
  function set_dump_sorted (line 408) | static inline int set_dump_sorted(Set *h, void ***ret, size_t *ret_n) {

FILE: src/basic/hexdecoct.c
  function octchar (line 14) | char octchar(int x) {
  function unoctchar (line 18) | int unoctchar(char c) {
  function decchar (line 26) | char decchar(int x) {
  function undecchar (line 30) | int undecchar(char c) {
  function hexchar (line 38) | char hexchar(int x) {
  function unhexchar (line 44) | int unhexchar(char c) {
  function unhex_next (line 77) | static int unhex_next(const char **p, size_t *l) {
  function unhexmem_full (line 113) | int unhexmem_full(
  function base32hexchar (line 170) | char base32hexchar(int x) {
  function unbase32hexchar (line 177) | int unbase32hexchar(char c) {
  function unbase32hexmem (line 299) | int unbase32hexmem(const char *p, size_t l, bool padding, void **mem, si...
  function base64char (line 521) | char base64char(int x) {
  function urlsafe_base64char (line 531) | char urlsafe_base64char(int x) {
  function unbase64char (line 538) | int unbase64char(char c) {
  function maybe_line_break (line 567) | static void maybe_line_break(char **x, char *start, size_t line_break) {
  function base64mem_full (line 584) | ssize_t base64mem_full(
  function base64_append_width (line 650) | static ssize_t base64_append_width(
  function base64_append (line 707) | ssize_t base64_append(
  function unbase64_next (line 723) | static int unbase64_next(const char **p, size_t *l) {
  function unbase64mem_full (line 765) | int unbase64mem_full(
  function hexdump (line 863) | void hexdump(FILE *f, const void *p, size_t s) {

FILE: src/basic/hexdecoct.h
  function unhexmem (line 22) | static inline int unhexmem(const char *p, size_t l, void **mem, size_t *...
  function base64mem (line 37) | static inline ssize_t base64mem(const void *p, size_t l, char **ret) {
  function unbase64mem (line 49) | static inline int unbase64mem(const char *p, size_t l, void **mem, size_...

FILE: src/basic/hmac.c
  function hmac_sha256 (line 13) | void hmac_sha256(const void *key,

FILE: src/basic/hostname-util.c
  function gethostname_full (line 40) | int gethostname_full(GetHostnameFlags flags, char **ret) {
  function valid_ldh_char (line 75) | bool valid_ldh_char(char c) {
  function hostname_is_valid (line 83) | bool hostname_is_valid(const char *s, ValidHostnameFlags flags) {
  function is_localhost (line 176) | bool is_localhost(const char *hostname) {
  function get_pretty_hostname (line 194) | int get_pretty_hostname(char **ret) {

FILE: src/basic/hostname-util.h
  type GetHostnameFlags (line 10) | typedef enum GetHostnameFlags {
  function gethostname_strict (line 17) | static inline int gethostname_strict(char **ret) {
  type ValidHostnameFlags (line 43) | typedef enum ValidHostnameFlags {
  function is_gateway_hostname (line 53) | static inline bool is_gateway_hostname(const char *hostname) {
  function is_outbound_hostname (line 58) | static inline bool is_outbound_hostname(const char *hostname) {
  function is_dns_stub_hostname (line 63) | static inline bool is_dns_stub_hostname(const char *hostname) {
  function is_dns_proxy_stub_hostname (line 67) | static inline bool is_dns_proxy_stub_hostname(const char *hostname) {

FILE: src/basic/in-addr-util.c
  function in4_addr_is_null (line 22) | bool in4_addr_is_null(const struct in_addr *a) {
  function in6_addr_is_null (line 28) | bool in6_addr_is_null(const struct in6_addr *a) {
  function in_addr_is_null (line 34) | int in_addr_is_null(int family, const union in_addr_union *u) {
  function in4_addr_is_link_local (line 46) | bool in4_addr_is_link_local(const struct in_addr *a) {
  function in4_addr_is_link_local_dynamic (line 52) | bool in4_addr_is_link_local_dynamic(const struct in_addr *a) {
  function in6_addr_is_link_local (line 66) | bool in6_addr_is_link_local(const struct in6_addr *a) {
  function in_addr_is_link_local (line 72) | int in_addr_is_link_local(int family, const union in_addr_union *u) {
  function in6_addr_is_link_local_all_nodes (line 84) | bool in6_addr_is_link_local_all_nodes(const struct in6_addr *a) {
  function in_addr_is_multicast (line 94) | int in_addr_is_multicast(int family, const union in_addr_union *u) {
  function in4_addr_is_local_multicast (line 106) | bool in4_addr_is_local_multicast(const struct in_addr *a) {
  function in4_addr_is_localhost (line 112) | bool in4_addr_is_localhost(const struct in_addr *a) {
  function in4_addr_is_non_local (line 119) | bool in4_addr_is_non_local(const struct in_addr *a) {
  function in_addr_is_localhost (line 127) | int in_addr_is_localhost(int family, const union in_addr_union *u) {
  function in_addr_is_localhost_one (line 139) | int in_addr_is_localhost_one(int family, const union in_addr_union *u) {
  function in6_addr_is_ipv4_mapped_address (line 152) | bool in6_addr_is_ipv4_mapped_address(const struct in6_addr *a) {
  function in4_addr_equal (line 158) | bool in4_addr_equal(const struct in_addr *a, const struct in_addr *b) {
  function in6_addr_equal (line 165) | bool in6_addr_equal(const struct in6_addr *a, const struct in6_addr *b) {
  function in_addr_equal (line 172) | int in_addr_equal(int family, const union in_addr_union *a, const union ...
  function in_addr_prefix_intersect (line 185) | int in_addr_prefix_intersect(
  function in_addr_prefix_next (line 241) | int in_addr_prefix_next(int family, union in_addr_union *u, unsigned pre...
  function in_addr_prefix_nth (line 265) | int in_addr_prefix_nth(int family, union in_addr_union *u, unsigned pref...
  function in_addr_random_prefix (line 328) | int in_addr_random_prefix(
  function in_addr_prefix_range (line 405) | int in_addr_prefix_range(
  function in_addr_to_string (line 442) | int in_addr_to_string(int family, const union in_addr_union *u, char **r...
  function in_addr_prefix_to_string (line 468) | int in_addr_prefix_to_string(
  function in_addr_port_ifindex_name_to_string (line 491) | int in_addr_port_ifindex_name_to_string(int family, const union in_addr_...
  function in_addr_from_string (line 546) | int in_addr_from_string(int family, const char *s, union in_addr_union *...
  function in_addr_from_string_auto (line 560) | int in_addr_from_string_auto(const char *s, int *ret_family, union in_ad...
  function in4_addr_netmask_to_prefixlen (line 582) | unsigned char in4_addr_netmask_to_prefixlen(const struct in_addr *addr) {
  type in_addr (line 589) | struct in_addr
  type in_addr (line 589) | struct in_addr
  type in6_addr (line 603) | struct in6_addr
  type in6_addr (line 603) | struct in6_addr
  function in_addr_prefixlen_to_netmask (line 628) | int in_addr_prefixlen_to_netmask(int family, union in_addr_union *addr, ...
  function in4_addr_default_prefixlen (line 643) | int in4_addr_default_prefixlen(const struct in_addr *addr, unsigned char...
  function in4_addr_default_subnet_mask (line 667) | int in4_addr_default_subnet_mask(const struct in_addr *addr, struct in_a...
  function in4_addr_mask (line 682) | int in4_addr_mask(struct in_addr *addr, unsigned char prefixlen) {
  function in6_addr_mask (line 694) | int in6_addr_mask(struct in6_addr *addr, unsigned char prefixlen) {
  function in_addr_mask (line 717) | int in_addr_mask(int family, union in_addr_union *addr, unsigned char pr...
  function in4_addr_prefix_covers_full (line 730) | int in4_addr_prefix_covers_full(
  function in6_addr_prefix_covers_full (line 758) | int in6_addr_prefix_covers_full(
  function in_addr_prefix_covers_full (line 786) | int in_addr_prefix_covers_full(
  function in_addr_parse_prefixlen (line 806) | int in_addr_parse_prefixlen(int family, const char *p, unsigned char *re...
  function in_addr_prefix_from_string (line 824) | int in_addr_prefix_from_string(
  function in_addr_prefix_from_string_auto_internal (line 870) | int in_addr_prefix_from_string_auto_internal(
  function in_addr_data_hash_func (line 925) | void in_addr_data_hash_func(const struct in_addr_data *a, struct siphash...
  function in_addr_data_compare_func (line 933) | int in_addr_data_compare_func(const struct in_addr_data *x, const struct...
  function in6_addr_hash_func (line 959) | void in6_addr_hash_func(const struct in6_addr *addr, struct siphash *sta...
  function in6_addr_compare_func (line 966) | int in6_addr_compare_func(const struct in6_addr *a, const struct in6_add...

FILE: src/basic/in-addr-util.h
  type in_addr (line 13) | struct in_addr
  type in6_addr (line 14) | struct in6_addr
  type in_addr (line 15) | struct in_addr
  type in6_addr (line 15) | struct in6_addr
  type in_addr_data (line 18) | struct in_addr_data {
  type in_addr (line 23) | struct in_addr
  function in4_addr_is_set (line 24) | static inline bool in4_addr_is_set(const struct in_addr *a) {
  type in6_addr (line 27) | struct in6_addr
  function in6_addr_is_set (line 28) | static inline bool in6_addr_is_set(const struct in6_addr *a) {
  function in_addr_is_set (line 32) | static inline bool in_addr_is_set(int family, const union in_addr_union ...
  function in_addr_data_is_null (line 35) | static inline int in_addr_data_is_null(const struct in_addr_data *a) {
  function in_addr_data_is_set (line 39) | static inline bool in_addr_data_is_set(const struct in_addr_data *a) {
  type in_addr (line 45) | struct in_addr
  type in_addr (line 46) | struct in_addr
  type in6_addr (line 47) | struct in6_addr
  type in6_addr (line 49) | struct in6_addr
  type in_addr (line 51) | struct in_addr
  type in_addr (line 55) | struct in_addr
  type in_addr (line 56) | struct in_addr
  type in6_addr (line 57) | struct in6_addr
  type in_addr (line 59) | struct in_addr
  type in_addr (line 59) | struct in_addr
  type in6_addr (line 60) | struct in6_addr
  type in6_addr (line 60) | struct in6_addr
  function in6_addr_to_string (line 74) | static inline int in6_addr_to_string(const struct in6_addr *u, char **re...
  type in_addr (line 81) | struct in_addr
  type in6_addr (line 84) | struct in6_addr
  type in_addr (line 113) | struct in_addr
  type in6_addr (line 116) | struct in6_addr
  function in_addr_ifindex_to_string (line 129) | static inline int in_addr_ifindex_to_string(int family, const union in_a...
  function in_addr_port_to_string (line 132) | static inline int in_addr_port_to_string(int family, const union in_addr...
  type in_addr (line 138) | struct in_addr
  type in_addr (line 139) | struct in_addr
  type in_addr (line 139) | struct in_addr
  type in6_addr (line 140) | struct in6_addr
  type in6_addr (line 140) | struct in6_addr
  type in_addr (line 142) | struct in_addr
  type in_addr (line 143) | struct in_addr
  type in_addr (line 143) | struct in_addr
  type in_addr (line 144) | struct in_addr
  type in6_addr (line 145) | struct in6_addr
  type in_addr (line 147) | struct in_addr
  type in_addr (line 147) | struct in_addr
  type in6_addr (line 148) | struct in6_addr
  type in6_addr (line 148) | struct in6_addr
  function in4_addr_prefix_covers (line 150) | static inline int in4_addr_prefix_covers(const struct in_addr *prefix, u...
  function in6_addr_prefix_covers (line 153) | static inline int in6_addr_prefix_covers(const struct in6_addr *prefix, ...
  function in_addr_prefix_covers (line 156) | static inline int in_addr_prefix_covers(int family, const union in_addr_...
  type InAddrPrefixLenMode (line 162) | typedef enum InAddrPrefixLenMode {
  function in_addr_prefix_from_string_auto (line 168) | static inline int in_addr_prefix_from_string_auto(const char *p, int *re...
  function FAMILY_ADDRESS_SIZE (line 172) | static inline size_t FAMILY_ADDRESS_SIZE(int family) {
  type in_addr_data (line 188) | struct in_addr_data
  type siphash (line 188) | struct siphash
  type in_addr_data (line 189) | struct in_addr_data
  type in_addr_data (line 189) | struct in_addr_data
  type in6_addr (line 190) | struct in6_addr
  type siphash (line 190) | struct siphash
  type in6_addr (line 191) | struct in6_addr
  type in6_addr (line 191) | struct in6_addr
  type hash_ops (line 193) | struct hash_ops
  type hash_ops (line 194) | struct hash_ops
  type hash_ops (line 195) | struct hash_ops
  type hash_ops (line 196) | struct hash_ops
  function PTR_TO_IN4_ADDR (line 198) | static inline void PTR_TO_IN4_ADDR(const void *p, struct in_addr *ret) {
  type in_addr (line 203) | struct in_addr

FILE: src/basic/initrd-util.c
  function in_initrd (line 14) | bool in_initrd(void) {
  function in_initrd_force (line 40) | void in_initrd_force(bool value) {

FILE: src/basic/inotify-util.c
  function inotify_event_next (line 7) | bool inotify_event_next(
  function inotify_add_watch_fd (line 44) | int inotify_add_watch_fd(int fd, int what, uint32_t mask) {
  function inotify_add_watch_and_warn (line 66) | int inotify_add_watch_and_warn(int fd, const char *pathname, uint32_t ma...

FILE: src/basic/inotify-util.h
  type inotify_event (line 25) | struct inotify_event
  type inotify_event (line 32) | struct inotify_event

FILE: src/basic/io-util.c
  function flush_fd (line 14) | int flush_fd(int fd) {
  function loop_read (line 53) | ssize_t loop_read(int fd, void *buf, size_t nbytes, bool do_poll) {
  function loop_read_exact (line 98) | int loop_read_exact(int fd, void *buf, size_t nbytes, bool do_poll) {
  function loop_write_full (line 110) | int loop_write_full(int fd, const void *buf, size_t nbytes, usec_t timeo...
  function pipe_eof (line 181) | int pipe_eof(int fd) {
  function ppoll_usec (line 191) | int ppoll_usec(struct pollfd *fds, size_t nfds, usec_t timeout) {
  function fd_wait_for_event (line 231) | int fd_wait_for_event(int fd, int event, usec_t timeout) {
  function nul_length (line 248) | static size_t nul_length(const uint8_t *p, size_t sz) {
  function sparse_write (line 263) | ssize_t sparse_write(int fd, const void *p, size_t sz, size_t run_length) {

FILE: src/basic/io-util.h
  function loop_write (line 19) | static inline int loop_write(int fd, const void *buf, size_t nbytes) {
  type pollfd (line 25) | struct pollfd
  function FILE_SIZE_VALID (line 30) | static inline bool FILE_SIZE_VALID(uint64_t l) {
  function FILE_SIZE_VALID_OR_INFINITY (line 37) | static inline bool FILE_SIZE_VALID_OR_INFINITY(uint64_t l) {

FILE: src/basic/ioprio-util.c
  function ioprio_parse_priority (line 7) | int ioprio_parse_priority(const char *s, int *ret) {

FILE: src/basic/ioprio-util.h
  function ioprio_class_is_valid (line 10) | static inline bool ioprio_class_is_valid(int i) {
  function ioprio_priority_is_valid (line 14) | static inline bool ioprio_priority_is_valid(int i) {
  function ioprio_normalize (line 24) | static inline int ioprio_normalize(int v) {

FILE: src/basic/iovec-util.c
  function iovec_total_size (line 6) | size_t iovec_total_size(const struct iovec *iovec, size_t n) {
  function iovec_increment (line 17) | bool iovec_increment(struct iovec *iovec, size_t n, size_t k) {
  type iovec (line 42) | struct iovec
  type iovec (line 54) | struct iovec
  function iovec_array_free (line 65) | void iovec_array_free(struct iovec *iovec, size_t n) {

FILE: src/basic/iovec-util.h
  type iovec (line 11) | struct iovec
  type iovec (line 13) | struct iovec
  function iovec_done (line 22) | static inline void iovec_done(struct iovec *iovec) {
  function iovec_done_erase (line 30) | static inline void iovec_done_erase(struct iovec *iovec) {
  function iovec_is_set (line 37) | static inline bool iovec_is_set(const struct iovec *iovec) {
  type iovec (line 41) | struct iovec
  type iovec (line 42) | struct iovec
  type iovec (line 44) | struct iovec

FILE: src/basic/iovec-wrapper.c
  type iovec_wrapper (line 8) | struct iovec_wrapper
  function iovw_free_contents (line 12) | void iovw_free_contents(struct iovec_wrapper *iovw, bool free_vectors) {
  type iovec_wrapper (line 23) | struct iovec_wrapper
  type iovec_wrapper (line 23) | struct iovec_wrapper
  type iovec_wrapper (line 31) | struct iovec_wrapper
  type iovec_wrapper (line 31) | struct iovec_wrapper
  function iovw_put (line 39) | int iovw_put(struct iovec_wrapper *iovw, void *data, size_t len) {
  function iovw_put_string_field (line 57) | int iovw_put_string_field(struct iovec_wrapper *iovw, const char *field,...
  function iovw_put_string_field_free (line 74) | int iovw_put_string_field_free(struct iovec_wrapper *iovw, const char *f...
  function iovw_rebase (line 80) | void iovw_rebase(struct iovec_wrapper *iovw, void *old, void *new) {
  function iovw_size (line 89) | size_t iovw_size(const struct iovec_wrapper *iovw) {
  function iovw_append (line 96) | int iovw_append(struct iovec_wrapper *target, const struct iovec_wrapper...

FILE: src/basic/iovec-wrapper.h
  type iovec_wrapper (line 9) | struct iovec_wrapper {
  type iovec_wrapper (line 14) | struct iovec_wrapper
  type iovec_wrapper (line 15) | struct iovec_wrapper
  type iovec_wrapper (line 15) | struct iovec_wrapper
  type iovec_wrapper (line 16) | struct iovec_wrapper
  type iovec_wrapper (line 16) | struct iovec_wrapper
  type iovec_wrapper (line 18) | struct iovec_wrapper
  type iovec_wrapper (line 20) | struct iovec_wrapper
  type iovec_wrapper (line 22) | struct iovec_wrapper
  function iovw_consume (line 23) | static inline int iovw_consume(struct iovec_wrapper *iovw, void *data, s...
  function iovw_isempty (line 34) | static inline bool iovw_isempty(const struct iovec_wrapper *iovw) {
  type iovec_wrapper (line 38) | struct iovec_wrapper
  type iovec_wrapper (line 39) | struct iovec_wrapper
  type iovec_wrapper (line 40) | struct iovec_wrapper
  type iovec_wrapper (line 41) | struct iovec_wrapper
  type iovec_wrapper (line 42) | struct iovec_wrapper
  type iovec_wrapper (line 42) | struct iovec_wrapper

FILE: src/basic/label.c
  function label_ops_set (line 10) | int label_ops_set(const LabelOps *ops) {
  function label_ops_pre (line 18) | int label_ops_pre(int dir_fd, const char *path, mode_t mode) {
  function label_ops_post (line 25) | int label_ops_post(int dir_fd, const char *path) {

FILE: src/basic/label.h
  type LabelOps (line 6) | typedef struct LabelOps {

FILE: src/basic/limits-util.c
  function physical_memory (line 14) | uint64_t physical_memory(void) {
  function physical_memory_scale (line 81) | uint64_t physical_memory_scale(uint64_t v, uint64_t max) {
  function system_tasks_max (line 113) | uint64_t system_tasks_max(void) {
  function system_tasks_max_scale (line 170) | uint64_t system_tasks_max_scale(uint64_t v, uint64_t max) {

FILE: src/basic/linux/batman_adv.h
  type batadv_tt_client_flags (line 26) | enum batadv_tt_client_flags {
  type batadv_mcast_flags_priv (line 90) | enum batadv_mcast_flags_priv {
  type batadv_gw_modes (line 127) | enum batadv_gw_modes {
  type batadv_nl_attrs (line 141) | enum batadv_nl_attrs {
  type batadv_nl_commands (line 505) | enum batadv_nl_commands {
  type batadv_tp_meter_reason (line 632) | enum batadv_tp_meter_reason {
  type batadv_ifla_attrs (line 681) | enum batadv_ifla_attrs {

FILE: src/basic/linux/btrfs.h
  type btrfs_ioctl_vol_args (line 39) | struct btrfs_ioctl_vol_args {
  type btrfs_qgroup_limit (line 82) | struct btrfs_qgroup_limit {
  type btrfs_qgroup_inherit (line 98) | struct btrfs_qgroup_inherit {
  type btrfs_ioctl_qgroup_limit_args (line 107) | struct btrfs_ioctl_qgroup_limit_args {
  type btrfs_ioctl_vol_args_v2 (line 136) | struct btrfs_ioctl_vol_args_v2 {
  type btrfs_scrub_progress (line 158) | struct btrfs_scrub_progress {
  type btrfs_ioctl_scrub_args (line 192) | struct btrfs_ioctl_scrub_args {
  type btrfs_ioctl_dev_replace_start_params (line 204) | struct btrfs_ioctl_dev_replace_start_params {
  type btrfs_ioctl_dev_replace_status_params (line 217) | struct btrfs_ioctl_dev_replace_status_params {
  type btrfs_ioctl_dev_replace_args (line 233) | struct btrfs_ioctl_dev_replace_args {
  type btrfs_ioctl_dev_info_args (line 245) | struct btrfs_ioctl_dev_info_args {
  type btrfs_ioctl_fs_info_args (line 266) | struct btrfs_ioctl_fs_info_args {
  type btrfs_ioctl_feature_flags (line 328) | struct btrfs_ioctl_feature_flags {
  type btrfs_balance_args (line 342) | struct btrfs_balance_args {
  type btrfs_balance_progress (line 391) | struct btrfs_balance_progress {
  type btrfs_ioctl_balance_args (line 466) | struct btrfs_ioctl_balance_args {
  type btrfs_ioctl_ino_lookup_args (line 480) | struct btrfs_ioctl_ino_lookup_args {
  type btrfs_ioctl_ino_lookup_user_args (line 487) | struct btrfs_ioctl_ino_lookup_user_args {
  type btrfs_ioctl_search_key (line 502) | struct btrfs_ioctl_search_key {
  type btrfs_ioctl_search_header (line 560) | struct btrfs_ioctl_search_header {
  type btrfs_ioctl_search_args (line 574) | struct btrfs_ioctl_search_args {
  type btrfs_ioctl_search_args_v2 (line 583) | struct btrfs_ioctl_search_args_v2 {
  type btrfs_ioctl_clone_range_args (line 592) | struct btrfs_ioctl_clone_range_args {
  type btrfs_ioctl_defrag_range_args (line 606) | struct btrfs_ioctl_defrag_range_args {
  type btrfs_ioctl_same_extent_info (line 640) | struct btrfs_ioctl_same_extent_info {
  type btrfs_ioctl_same_args (line 654) | struct btrfs_ioctl_same_args {
  type btrfs_ioctl_space_info (line 663) | struct btrfs_ioctl_space_info {
  type btrfs_ioctl_space_args (line 669) | struct btrfs_ioctl_space_args {
  type btrfs_data_container (line 675) | struct btrfs_data_container {
  type btrfs_ioctl_ino_path_args (line 683) | struct btrfs_ioctl_ino_path_args {
  type btrfs_ioctl_logical_ino_args (line 691) | struct btrfs_ioctl_logical_ino_args {
  type btrfs_dev_stat_values (line 706) | enum btrfs_dev_stat_values {
  type btrfs_ioctl_get_dev_stats (line 728) | struct btrfs_ioctl_get_dev_stats {
  type btrfs_ioctl_quota_ctl_args (line 747) | struct btrfs_ioctl_quota_ctl_args {
  type btrfs_ioctl_quota_rescan_args (line 752) | struct btrfs_ioctl_quota_rescan_args {
  type btrfs_ioctl_qgroup_assign_args (line 758) | struct btrfs_ioctl_qgroup_assign_args {
  type btrfs_ioctl_qgroup_create_args (line 764) | struct btrfs_ioctl_qgroup_create_args {
  type btrfs_ioctl_timespec (line 768) | struct btrfs_ioctl_timespec {
  type btrfs_ioctl_received_subvol_args (line 773) | struct btrfs_ioctl_received_subvol_args {
  type btrfs_ioctl_send_args (line 822) | struct btrfs_ioctl_send_args {
  type btrfs_ioctl_get_subvol_info_args (line 837) | struct btrfs_ioctl_get_subvol_info_args {
  type btrfs_ioctl_get_subvol_rootref_args (line 893) | struct btrfs_ioctl_get_subvol_rootref_args {
  type btrfs_ioctl_encoded_io_args (line 931) | struct btrfs_ioctl_encoded_io_args {
  type btrfs_err_code (line 1037) | enum btrfs_err_code {

FILE: src/basic/linux/btrfs_tree.h
  type btrfs_csum_type (line 354) | enum btrfs_csum_type {
  function __u8 (line 382) | static inline __u8 btrfs_dir_flags_to_ftype(__u8 flags)
  type btrfs_disk_key (line 441) | struct btrfs_disk_key {
  type btrfs_key (line 447) | struct btrfs_key {
  type btrfs_header (line 456) | struct btrfs_header {
  type btrfs_root_backup (line 484) | struct btrfs_root_backup {
  type btrfs_item (line 523) | struct btrfs_item {
  type btrfs_leaf (line 536) | struct btrfs_leaf {
  type btrfs_key_ptr (line 545) | struct btrfs_key_ptr {
  type btrfs_node (line 551) | struct btrfs_node {
  type btrfs_dev_item (line 556) | struct btrfs_dev_item {
  type btrfs_stripe (line 603) | struct btrfs_stripe {
  type btrfs_chunk (line 609) | struct btrfs_chunk {
  type btrfs_super_block (line 642) | struct btrfs_super_block {
  type btrfs_free_space_entry (line 705) | struct btrfs_free_space_entry {
  type btrfs_free_space_header (line 711) | struct btrfs_free_space_header {
  type btrfs_extent_item (line 737) | struct btrfs_extent_item {
  type btrfs_extent_item_v0 (line 743) | struct btrfs_extent_item_v0 {
  type btrfs_tree_block_info (line 770) | struct btrfs_tree_block_info {
  type btrfs_extent_data_ref (line 775) | struct btrfs_extent_data_ref {
  type btrfs_shared_data_ref (line 782) | struct btrfs_shared_data_ref {
  type btrfs_extent_inline_ref (line 786) | struct btrfs_extent_inline_ref {
  type btrfs_dev_extent (line 795) | struct btrfs_dev_extent {
  type btrfs_inode_ref (line 803) | struct btrfs_inode_ref {
  type btrfs_inode_extref (line 809) | struct btrfs_inode_extref {
  type btrfs_timespec (line 817) | struct btrfs_timespec {
  type btrfs_inode_item (line 822) | struct btrfs_inode_item {
  type btrfs_dir_log_item (line 851) | struct btrfs_dir_log_item {
  type btrfs_dir_item (line 855) | struct btrfs_dir_item {
  type btrfs_root_item (line 871) | struct btrfs_root_item {
  function __u32 (line 920) | static inline __u32 btrfs_legacy_root_item_size(void)
  type btrfs_root_ref (line 928) | struct btrfs_root_ref {
  type btrfs_disk_balance_args (line 934) | struct btrfs_disk_balance_args {
  type btrfs_balance_item (line 1001) | struct btrfs_balance_item {
  type btrfs_file_extent_item (line 1019) | struct btrfs_file_extent_item {
  type btrfs_csum_item (line 1071) | struct btrfs_csum_item {
  type btrfs_dev_stats_item (line 1075) | struct btrfs_dev_stats_item {
  type btrfs_dev_replace_item (line 1086) | struct btrfs_dev_replace_item {
  function __u64 (line 1155) | static inline __u64 chunk_to_extended(__u64 flags)
  function __u64 (line 1162) | static inline __u64 extended_to_chunk(__u64 flags)
  type btrfs_block_group_item (line 1167) | struct btrfs_block_group_item {
  type btrfs_free_space_info (line 1173) | struct btrfs_free_space_info {
  function __u16 (line 1181) | static inline __u16 btrfs_qgroup_level(__u64 qgroupid)
  type btrfs_qgroup_status_item (line 1209) | struct btrfs_qgroup_status_item {
  type btrfs_qgroup_info_item (line 1229) | struct btrfs_qgroup_info_item {
  type btrfs_qgroup_limit_item (line 1237) | struct btrfs_qgroup_limit_item {
  type btrfs_verity_descriptor_item (line 1248) | struct btrfs_verity_descriptor_item {

FILE: src/basic/linux/can/netlink.h
  type can_bittiming (line 31) | struct can_bittiming {
  type can_bittiming_const (line 47) | struct can_bittiming_const {
  type can_clock (line 62) | struct can_clock {
  type can_state (line 69) | enum can_state {
  type can_berr_counter (line 82) | struct can_berr_counter {
  type can_ctrlmode (line 90) | struct can_ctrlmode {
  type can_device_stats (line 110) | struct can_device_stats {

FILE: src/basic/linux/cfm_bridge.h
  type br_cfm_common_hdr (line 29) | struct br_cfm_common_hdr {
  type br_cfm_opcodes (line 36) | enum br_cfm_opcodes {
  type br_cfm_domain (line 41) | enum br_cfm_domain {
  type br_cfm_mep_direction (line 47) | enum br_cfm_mep_direction {
  type br_cfm_ccm_interval (line 53) | enum br_cfm_ccm_interval {

FILE: src/basic/linux/fib_rules.h
  type fib_rule_hdr (line 19) | struct fib_rule_hdr {
  type fib_rule_uid_range (line 33) | struct fib_rule_uid_range {
  type fib_rule_port_range (line 38) | struct fib_rule_port_range {

FILE: src/basic/linux/genetlink.h
  type genlmsghdr (line 13) | struct genlmsghdr {

FILE: src/basic/linux/hdlc/ioctl.h
  type sync_serial_settings (line 40) | typedef struct {
  type te1_settings (line 46) | typedef struct {
  type raw_hdlc_proto (line 53) | typedef struct {
  type fr_proto (line 58) | typedef struct {
  type fr_proto_pvc (line 68) | typedef struct {
  type fr_proto_pvc_info (line 72) | typedef struct {
  type cisco_proto (line 77) | typedef struct {
  type x25_hdlc_proto (line 82) | typedef struct {

FILE: src/basic/linux/if.h
  type net_device_flags (line 81) | enum net_device_flags {
  type ifmap (line 195) | struct ifmap {
  type if_settings (line 206) | struct if_settings {
  type ifreq (line 233) | struct ifreq {
  type ifconf (line 285) | struct ifconf  {

FILE: src/basic/linux/if_addr.h
  type ifaddrmsg (line 8) | struct ifaddrmsg {
  type ifa_cacheinfo (line 60) | struct ifa_cacheinfo {

FILE: src/basic/linux/if_bonding.h
  type ifbond (line 109) | typedef struct ifbond {
  type ifslave (line 115) | typedef struct ifslave {
  type ad_info (line 123) | struct ad_info {

FILE: src/basic/linux/if_bridge.h
  type __bridge_info (line 55) | struct __bridge_info {
  type __port_info (line 77) | struct __port_info {
  type __fdb_entry (line 93) | struct __fdb_entry {
  type bridge_vlan_info (line 138) | struct bridge_vlan_info {
  type bridge_vlan_xstats (line 153) | struct bridge_vlan_xstats {
  type br_mrp_instance (line 289) | struct br_mrp_instance {
  type br_mrp_ring_state (line 296) | struct br_mrp_ring_state {
  type br_mrp_ring_role (line 301) | struct br_mrp_ring_role {
  type br_mrp_start_test (line 306) | struct br_mrp_start_test {
  type br_mrp_in_state (line 314) | struct br_mrp_in_state {
  type br_mrp_in_role (line 319) | struct br_mrp_in_role {
  type br_mrp_start_in_test (line 326) | struct br_mrp_start_in_test {
  type bridge_stp_xstats (line 472) | struct bridge_stp_xstats {
  type br_vlan_msg (line 482) | struct br_vlan_msg {
  type br_port_msg (line 684) | struct br_port_msg {
  type br_mdb_entry (line 689) | struct br_mdb_entry {
  type br_mcast_stats (line 769) | struct br_mcast_stats {
  type br_boolopt_id (line 797) | enum br_boolopt_id {
  type br_boolopt_multi (line 809) | struct br_boolopt_multi {

FILE: src/basic/linux/if_ether.h
  type ethhdr (line 173) | struct ethhdr {

FILE: src/basic/linux/if_link.h
  type rtnl_link_stats (line 9) | struct rtnl_link_stats {
  type rtnl_link_stats64 (line 218) | struct rtnl_link_stats64 {
  type rtnl_hw_stats64 (line 256) | struct rtnl_hw_stats64 {
  type rtnl_link_ifmap (line 269) | struct rtnl_link_ifmap {
  type in6_addr_gen_mode (line 452) | enum in6_addr_gen_mode {
  type ifla_bridge_id (line 515) | struct ifla_bridge_id {
  type ifla_cacheinfo (line 571) | struct ifla_cacheinfo {
  type ifla_vlan_flags (line 604) | struct ifla_vlan_flags {
  type ifla_vlan_qos_mapping (line 617) | struct ifla_vlan_qos_mapping {
  type macvlan_mode (line 638) | enum macvlan_mode {
  type macvlan_macaddr_mode (line 646) | enum macvlan_macaddr_mode {
  type macsec_validation_type (line 707) | enum macsec_validation_type {
  type macsec_offload (line 715) | enum macsec_offload {
  type ipvlan_mode (line 733) | enum ipvlan_mode {
  type tunnel_msg (line 744) | struct tunnel_msg {
  type ifla_vxlan_port_range (line 828) | struct ifla_vxlan_port_range {
  type ifla_vxlan_df (line 833) | enum ifla_vxlan_df {
  type ifla_geneve_df (line 862) | enum ifla_geneve_df {
  type ifla_gtp_role (line 892) | enum ifla_gtp_role {
  type ifla_vf_mac (line 1009) | struct ifla_vf_mac {
  type ifla_vf_broadcast (line 1014) | struct ifla_vf_broadcast {
  type ifla_vf_vlan (line 1018) | struct ifla_vf_vlan {
  type ifla_vf_vlan_info (line 1033) | struct ifla_vf_vlan_info {
  type ifla_vf_tx_rate (line 1040) | struct ifla_vf_tx_rate {
  type ifla_vf_rate (line 1045) | struct ifla_vf_rate {
  type ifla_vf_spoofchk (line 1051) | struct ifla_vf_spoofchk {
  type ifla_vf_guid (line 1056) | struct ifla_vf_guid {
  type ifla_vf_link_state (line 1068) | struct ifla_vf_link_state {
  type ifla_vf_rss_query_en (line 1073) | struct ifla_vf_rss_query_en {
  type ifla_vf_trust (line 1093) | struct ifla_vf_trust {
  type ifla_port_vsi (line 1163) | struct ifla_port_vsi {
  type if_stats_msg (line 1216) | struct if_stats_msg {
  type ifla_rmnet_flags (line 1367) | struct ifla_rmnet_flags {

FILE: src/basic/linux/if_macsec.h
  type macsec_attrs (line 42) | enum macsec_attrs {
  type macsec_secy_attrs (line 58) | enum macsec_secy_attrs {
  type macsec_rxsc_attrs (line 79) | enum macsec_rxsc_attrs {
  type macsec_sa_attrs (line 91) | enum macsec_sa_attrs {
  type macsec_offload_attrs (line 107) | enum macsec_offload_attrs {
  type macsec_nl_commands (line 116) | enum macsec_nl_commands {
  type macsec_rxsc_stats_attr (line 131) | enum macsec_rxsc_stats_attr {
  type macsec_sa_stats_attr (line 150) | enum macsec_sa_stats_attr {
  type macsec_txsc_stats_attr (line 165) | enum macsec_txsc_stats_attr {
  type macsec_secy_stats_attr (line 178) | enum macsec_secy_stats_attr {

FILE: src/basic/linux/if_tun.h
  type tun_pi (line 98) | struct tun_pi {
  type tun_filter (line 112) | struct tun_filter {

FILE: src/basic/linux/if_tunnel.h
  type ip_tunnel_parm (line 48) | struct ip_tunnel_parm {
  type tunnel_encap_types (line 84) | enum tunnel_encap_types {
  type ip_tunnel_prl (line 98) | struct ip_tunnel_prl {
  type ip_tunnel_6rd (line 110) | struct ip_tunnel_6rd {

FILE: src/basic/linux/in.h
  type in_addr (line 92) | struct in_addr {
  type ip_mreq (line 176) | struct ip_mreq  {
  type ip_mreqn (line 181) | struct ip_mreqn {
  type ip_mreq_source (line 187) | struct ip_mreq_source {
  type ip_msfilter (line 193) | struct ip_msfilter {
  type group_req (line 208) | struct group_req {
  type group_source_req (line 213) | struct group_source_req {
  type group_filter (line 219) | struct group_filter {
  type in_pktinfo (line 244) | struct in_pktinfo {
  type sockaddr_in (line 254) | struct sockaddr_in {

FILE: src/basic/linux/in6.h
  type in6_addr (line 33) | struct in6_addr {
  type sockaddr_in6 (line 50) | struct sockaddr_in6 {
  type ipv6_mreq (line 60) | struct ipv6_mreq {
  type in6_flowlabel_req (line 71) | struct in6_flowlabel_req {

FILE: src/basic/linux/input.h
  type input_event (line 26) | struct input_event {
  type input_id (line 57) | struct input_id {
  type input_absinfo (line 91) | struct input_absinfo {
  type input_keymap_entry (line 115) | struct input_keymap_entry {
  type input_mask (line 124) | struct input_mask {
  type ff_replay (line 308) | struct ff_replay {
  type ff_trigger (line 318) | struct ff_trigger {
  type ff_envelope (line 335) | struct ff_envelope {
  type ff_constant_effect (line 347) | struct ff_constant_effect {
  type ff_ramp_effect (line 358) | struct ff_ramp_effect {
  type ff_condition_effect (line 374) | struct ff_condition_effect {
  type ff_periodic_effect (line 403) | struct ff_periodic_effect {
  type ff_rumble_effect (line 424) | struct ff_rumble_effect {
  type ff_effect (line 452) | struct ff_effect {

FILE: src/basic/linux/ipv6_route.h
  type in6_rtmsg (line 43) | struct in6_rtmsg {

FILE: src/basic/linux/l2tp.h
  type sockaddr_l2tpip (line 23) | struct sockaddr_l2tpip {
  type sockaddr_l2tpip6 (line 44) | struct sockaddr_l2tpip6 {
  type l2tp_pwtype (line 152) | enum l2tp_pwtype {
  type l2tp_l2spec_type (line 162) | enum l2tp_l2spec_type {
  type l2tp_encap_type (line 167) | enum l2tp_encap_type {
  type l2tp_seqmode (line 173) | enum l2tp_seqmode {
  type l2tp_debug_flags (line 189) | enum l2tp_debug_flags {

FILE: src/basic/linux/mrp_bridge.h
  type br_mrp_ring_role_type (line 17) | enum br_mrp_ring_role_type {
  type br_mrp_in_role_type (line 24) | enum br_mrp_in_role_type {
  type br_mrp_ring_state_type (line 30) | enum br_mrp_ring_state_type {
  type br_mrp_in_state_type (line 35) | enum br_mrp_in_state_type {
  type br_mrp_port_state_type (line 40) | enum br_mrp_port_state_type {
  type br_mrp_port_role_type (line 47) | enum br_mrp_port_role_type {
  type br_mrp_tlv_header_type (line 53) | enum br_mrp_tlv_header_type {
  type br_mrp_sub_tlv_header_type (line 68) | enum br_mrp_sub_tlv_header_type {

FILE: src/basic/linux/netfilter.h
  type nf_inet_hooks (line 40) | enum nf_inet_hooks {
  type nf_dev_hooks (line 50) | enum nf_dev_hooks {
  type in_addr (line 72) | struct in_addr
  type in6_addr (line 73) | struct in6_addr

FILE: src/basic/linux/netfilter/nf_tables.h
  type nft_registers (line 22) | enum nft_registers {
  type nft_verdicts (line 64) | enum nft_verdicts {
  type nf_tables_msg_types (line 102) | enum nf_tables_msg_types {
  type nft_list_attributes (line 137) | enum nft_list_attributes {
  type nft_hook_attributes (line 152) | enum nft_hook_attributes {
  type nft_table_flags (line 167) | enum nft_table_flags {
  type nft_table_attributes (line 183) | enum nft_table_attributes {
  type nft_chain_flags (line 196) | enum nft_chain_flags {
  type nft_chain_attributes (line 220) | enum nft_chain_attributes {
  type nft_rule_attributes (line 251) | enum nft_rule_attributes {
  type nft_rule_compat_flags (line 273) | enum nft_rule_compat_flags {
  type nft_rule_compat_attributes (line 284) | enum nft_rule_compat_attributes {
  type nft_set_flags (line 305) | enum nft_set_flags {
  type nft_set_policies (line 323) | enum nft_set_policies {
  type nft_set_desc_attributes (line 334) | enum nft_set_desc_attributes {
  type nft_set_field_attributes (line 347) | enum nft_set_field_attributes {
  type nft_set_attributes (line 375) | enum nft_set_attributes {
  type nft_set_elem_flags (line 405) | enum nft_set_elem_flags {
  type nft_set_elem_attributes (line 424) | enum nft_set_elem_attributes {
  type nft_set_elem_list_attributes (line 449) | enum nft_set_elem_list_attributes {
  type nft_data_types (line 473) | enum nft_data_types {
  type nft_data_attributes (line 486) | enum nft_data_attributes {
  type nft_verdict_attributes (line 504) | enum nft_verdict_attributes {
  type nft_expr_attributes (line 519) | enum nft_expr_attributes {
  type nft_immediate_attributes (line 533) | enum nft_immediate_attributes {
  type nft_bitwise_ops (line 549) | enum nft_bitwise_ops {
  type nft_bitwise_attributes (line 580) | enum nft_bitwise_attributes {
  type nft_byteorder_ops (line 599) | enum nft_byteorder_ops {
  type nft_byteorder_attributes (line 613) | enum nft_byteorder_attributes {
  type nft_cmp_ops (line 634) | enum nft_cmp_ops {
  type nft_cmp_attributes (line 650) | enum nft_cmp_attributes {
  type nft_range_ops (line 665) | enum nft_range_ops {
  type nft_range_attributes (line 678) | enum nft_range_attributes {
  type nft_lookup_flags (line 688) | enum nft_lookup_flags {
  type nft_lookup_attributes (line 701) | enum nft_lookup_attributes {
  type nft_dynset_ops (line 712) | enum nft_dynset_ops {
  type nft_dynset_flags (line 718) | enum nft_dynset_flags {
  type nft_dynset_attributes (line 736) | enum nft_dynset_attributes {
  type nft_payload_bases (line 760) | enum nft_payload_bases {
  type nft_payload_csum_types (line 775) | enum nft_payload_csum_types {
  type nft_payload_csum_flags (line 781) | enum nft_payload_csum_flags {
  type nft_inner_type (line 785) | enum nft_inner_type {
  type nft_inner_flags (line 791) | enum nft_inner_flags {
  type nft_inner_attributes (line 800) | enum nft_inner_attributes {
  type nft_payload_attributes (line 823) | enum nft_payload_attributes {
  type nft_exthdr_flags (line 837) | enum nft_exthdr_flags {
  type nft_exthdr_op (line 849) | enum nft_exthdr_op {
  type nft_exthdr_attributes (line 869) | enum nft_exthdr_attributes {
  type nft_meta_keys (line 921) | enum nft_meta_keys {
  type nft_rt_keys (line 970) | enum nft_rt_keys {
  type nft_hash_types (line 986) | enum nft_hash_types {
  type nft_hash_attributes (line 1004) | enum nft_hash_attributes {
  type nft_meta_attributes (line 1026) | enum nft_meta_attributes {
  type nft_rt_attributes (line 1041) | enum nft_rt_attributes {
  type nft_socket_attributes (line 1056) | enum nft_socket_attributes {
  type nft_socket_keys (line 1073) | enum nft_socket_keys {
  type nft_ct_keys (line 1110) | enum nft_ct_keys {
  type nft_ct_attributes (line 1147) | enum nft_ct_attributes {
  type nft_offload_attributes (line 1161) | enum nft_offload_attributes {
  type nft_limit_type (line 1168) | enum nft_limit_type {
  type nft_limit_flags (line 1173) | enum nft_limit_flags {
  type nft_limit_attributes (line 1186) | enum nft_limit_attributes {
  type nft_connlimit_flags (line 1198) | enum nft_connlimit_flags {
  type nft_connlimit_attributes (line 1208) | enum nft_connlimit_attributes {
  type nft_counter_attributes (line 1222) | enum nft_counter_attributes {
  type nft_last_attributes (line 1237) | enum nft_last_attributes {
  type nft_log_attributes (line 1256) | enum nft_log_attributes {
  type nft_log_level (line 1281) | enum nft_log_level {
  type nft_queue_attributes (line 1303) | enum nft_queue_attributes {
  type nft_quota_flags (line 1317) | enum nft_quota_flags {
  type nft_quota_attributes (line 1329) | enum nft_quota_attributes {
  type nft_secmark_attributes (line 1344) | enum nft_secmark_attributes {
  type nft_reject_types (line 1361) | enum nft_reject_types {
  type nft_reject_inet_code (line 1377) | enum nft_reject_inet_code {
  type nft_reject_attributes (line 1392) | enum nft_reject_attributes {
  type nft_nat_types (line 1406) | enum nft_nat_types {
  type nft_nat_attributes (line 1422) | enum nft_nat_attributes {
  type nft_tproxy_attributes (line 1442) | enum nft_tproxy_attributes {
  type nft_masq_attributes (line 1458) | enum nft_masq_attributes {
  type nft_redir_attributes (line 1474) | enum nft_redir_attributes {
  type nft_dup_attributes (line 1489) | enum nft_dup_attributes {
  type nft_fwd_attributes (line 1504) | enum nft_fwd_attributes {
  type nft_objref_attributes (line 1522) | enum nft_objref_attributes {
  type nft_gen_attributes (line 1538) | enum nft_gen_attributes {
  type nft_fib_attributes (line 1557) | enum nft_fib_attributes {
  type nft_fib_result (line 1566) | enum nft_fib_result {
  type nft_fib_flags (line 1575) | enum nft_fib_flags {
  type nft_ct_helper_attributes (line 1584) | enum nft_ct_helper_attributes {
  type nft_ct_timeout_timeout_attributes (line 1593) | enum nft_ct_timeout_timeout_attributes {
  type nft_ct_expectation_attributes (line 1602) | enum nft_ct_expectation_attributes {
  type nft_object_attributes (line 1638) | enum nft_object_attributes {
  type nft_flowtable_flags (line 1658) | enum nft_flowtable_flags {
  type nft_flowtable_attributes (line 1675) | enum nft_flowtable_attributes {
  type nft_flowtable_hook_attributes (line 1695) | enum nft_flowtable_hook_attributes {
  type nft_osf_attributes (line 1711) | enum nft_osf_attributes {
  type nft_osf_flags (line 1720) | enum nft_osf_flags {
  type nft_synproxy_attributes (line 1731) | enum nft_synproxy_attributes {
  type nft_devices_attributes (line 1745) | enum nft_devices_attributes {
  type nft_xfrm_attributes (line 1760) | enum nft_xfrm_attributes {
  type nft_xfrm_keys (line 1770) | enum nft_xfrm_keys {
  type nft_trace_attributes (line 1802) | enum nft_trace_attributes {
  type nft_trace_types (line 1825) | enum nft_trace_types {
  type nft_ng_attributes (line 1844) | enum nft_ng_attributes {
  type nft_ng_types (line 1856) | enum nft_ng_types {
  type nft_tunnel_key_ip_attributes (line 1863) | enum nft_tunnel_key_ip_attributes {
  type nft_tunnel_ip6_attributes (line 1871) | enum nft_tunnel_ip6_attributes {
  type nft_tunnel_opts_attributes (line 1880) | enum nft_tunnel_opts_attributes {
  type nft_tunnel_opts_vxlan_attributes (line 1889) | enum nft_tunnel_opts_vxlan_attributes {
  type nft_tunnel_opts_erspan_attributes (line 1896) | enum nft_tunnel_opts_erspan_attributes {
  type nft_tunnel_opts_geneve_attributes (line 1906) | enum nft_tunnel_opts_geneve_attributes {
  type nft_tunnel_flags (line 1915) | enum nft_tunnel_flags {
  type nft_tunnel_key_attributes (line 1924) | enum nft_tunnel_key_attributes {
  type nft_tunnel_keys (line 1939) | enum nft_tunnel_keys {
  type nft_tunnel_mode (line 1946) | enum nft_tunnel_mode {
  type nft_tunnel_attributes (line 1954) | enum nft_tunnel_attributes {

FILE: src/basic/linux/netfilter/nfnetlink.h
  type nfnetlink_groups (line 7) | enum nfnetlink_groups {
  type nfgenmsg (line 34) | struct nfgenmsg {
  type nfnl_batch_attributes (line 75) | enum nfnl_batch_attributes {

FILE: src/basic/linux/netlink.h
  type sockaddr_nl (line 37) | struct sockaddr_nl {
  type nlmsghdr (line 52) | struct nlmsghdr {
  type nlmsgerr (line 119) | struct nlmsgerr {
  type nlmsgerr_attrs (line 150) | enum nlmsgerr_attrs {
  type nl_pktinfo (line 178) | struct nl_pktinfo {
  type nl_mmap_req (line 182) | struct nl_mmap_req {
  type nl_mmap_hdr (line 189) | struct nl_mmap_hdr {
  type nl_mmap_status (line 200) | enum nl_mmap_status {
  type nlattr (line 229) | struct nlattr {
  type nla_bitfield32 (line 265) | struct nla_bitfield32 {
  type netlink_attribute_type (line 302) | enum netlink_attribute_type {
  type netlink_policy_type_attr (line 358) | enum netlink_policy_type_attr {

FILE: src/basic/linux/nexthop.h
  type nhmsg (line 7) | struct nhmsg {
  type nexthop_grp (line 16) | struct nexthop_grp {

FILE: src/basic/linux/nl80211.h
  type nl80211_commands (line 1287) | enum nl80211_commands {
  type nl80211_attrs (line 2758) | enum nl80211_attrs {
  type nl80211_iftype (line 3382) | enum nl80211_iftype {
  type nl80211_sta_flags (line 3426) | enum nl80211_sta_flags {
  type nl80211_sta_p2p_ps_status (line 3448) | enum nl80211_sta_p2p_ps_status {
  type nl80211_sta_flag_update (line 3464) | struct nl80211_sta_flag_update {
  type nl80211_he_gi (line 3475) | enum nl80211_he_gi {
  type nl80211_he_ltf (line 3487) | enum nl80211_he_ltf {
  type nl80211_he_ru_alloc (line 3503) | enum nl80211_he_ru_alloc {
  type nl80211_eht_gi (line 3519) | enum nl80211_eht_gi {
  type nl80211_eht_ru_alloc (line 3544) | enum nl80211_eht_ru_alloc {
  type nl80211_rate_info (line 3611) | enum nl80211_rate_info {
  type nl80211_sta_bss_param (line 3658) | enum nl80211_sta_bss_param {
  type nl80211_sta_info (line 3754) | enum nl80211_sta_info {
  type nl80211_tid_stats (line 3824) | enum nl80211_tid_stats {
  type nl80211_txq_stats (line 3857) | enum nl80211_txq_stats {
  type nl80211_mpath_flags (line 3885) | enum nl80211_mpath_flags {
  type nl80211_mpath_info (line 3914) | enum nl80211_mpath_info {
  type nl80211_band_iftype_attr (line 3960) | enum nl80211_band_iftype_attr {
  type nl80211_band_attr (line 4006) | enum nl80211_band_attr {
  type nl80211_wmm_rule (line 4041) | enum nl80211_wmm_rule {
  type nl80211_frequency_attr (line 4131) | enum nl80211_frequency_attr {
  type nl80211_bitrate_attr (line 4183) | enum nl80211_bitrate_attr {
  type nl80211_reg_initiator (line 4209) | enum nl80211_reg_initiator {
  type nl80211_reg_type (line 4232) | enum nl80211_reg_type {
  type nl80211_reg_rule_attr (line 4264) | enum nl80211_reg_rule_attr {
  type nl80211_sched_scan_match_attr (line 4317) | enum nl80211_sched_scan_match_attr {
  type nl80211_reg_rule_flags (line 4360) | enum nl80211_reg_rule_flags {
  type nl80211_dfs_regions (line 4398) | enum nl80211_dfs_regions {
  type nl80211_user_reg_hint_type (line 4422) | enum nl80211_user_reg_hint_type {
  type nl80211_survey_info (line 4458) | enum nl80211_survey_info {
  type nl80211_mntr_flags (line 4504) | enum nl80211_mntr_flags {
  type nl80211_mesh_power_mode (line 4536) | enum nl80211_mesh_power_mode {
  type nl80211_meshconf_params (line 4669) | enum nl80211_meshconf_params {
  type nl80211_mesh_setup_params (line 4757) | enum nl80211_mesh_setup_params {
  type nl80211_txq_attr (line 4787) | enum nl80211_txq_attr {
  type nl80211_ac (line 4800) | enum nl80211_ac {
  type nl80211_channel_type (line 4824) | enum nl80211_channel_type {
  type nl80211_key_mode (line 4846) | enum nl80211_key_mode {
  type nl80211_chan_width (line 4878) | enum nl80211_chan_width {
  type nl80211_bss_scan_width (line 4906) | enum nl80211_bss_scan_width {
  type nl80211_bss (line 4969) | enum nl80211_bss {
  type nl80211_bss_status (line 5011) | enum nl80211_bss_status {
  type nl80211_auth_type (line 5034) | enum nl80211_auth_type {
  type nl80211_key_type (line 5057) | enum nl80211_key_type {
  type nl80211_mfp (line 5071) | enum nl80211_mfp {
  type nl80211_wpa_versions (line 5077) | enum nl80211_wpa_versions {
  type nl80211_key_default_types (line 5092) | enum nl80211_key_default_types {
  type nl80211_key_attributes (line 5126) | enum nl80211_key_attributes {
  type nl80211_tx_rate_attributes (line 5163) | enum nl80211_tx_rate_attributes {
  type nl80211_txrate_vht (line 5185) | struct nl80211_txrate_vht {
  type nl80211_txrate_he (line 5194) | struct nl80211_txrate_he {
  type nl80211_txrate_gi (line 5198) | enum nl80211_txrate_gi {
  type nl80211_band (line 5215) | enum nl80211_band {
  type nl80211_ps_state (line 5231) | enum nl80211_ps_state {
  type nl80211_attr_cqm (line 5269) | enum nl80211_attr_cqm {
  type nl80211_cqm_rssi_threshold_event (line 5294) | enum nl80211_cqm_rssi_threshold_event {
  type nl80211_tx_power_setting (line 5307) | enum nl80211_tx_power_setting {
  type nl80211_tid_config (line 5318) | enum nl80211_tid_config {
  type nl80211_tx_rate_setting (line 5328) | enum nl80211_tx_rate_setting {
  type nl80211_tid_config_attr (line 5378) | enum nl80211_tid_config_attr {
  type nl80211_packet_pattern_attr (line 5420) | enum nl80211_packet_pattern_attr {
  type nl80211_pattern_support (line 5443) | struct nl80211_pattern_support {
  type nl80211_wowlan_triggers (line 5548) | enum nl80211_wowlan_triggers {
  type nl80211_wowlan_tcp_data_seq (line 5608) | struct nl80211_wowlan_tcp_data_seq {
  type nl80211_wowlan_tcp_data_token (line 5619) | struct nl80211_wowlan_tcp_data_token {
  type nl80211_wowlan_tcp_data_token_feature (line 5630) | struct nl80211_wowlan_tcp_data_token_feature {
  type nl80211_wowlan_tcp_attrs (line 5666) | enum nl80211_wowlan_tcp_attrs {
  type nl80211_coalesce_rule_support (line 5694) | struct nl80211_coalesce_rule_support {
  type nl80211_attr_coalesce_rule (line 5711) | enum nl80211_attr_coalesce_rule {
  type nl80211_coalesce_condition (line 5729) | enum nl80211_coalesce_condition {
  type nl80211_iface_limit_attrs (line 5744) | enum nl80211_iface_limit_attrs {
  type nl80211_if_combination_attrs (line 5803) | enum nl80211_if_combination_attrs {
  type nl80211_plink_state (line 5837) | enum nl80211_plink_state {
  type plink_actions (line 5859) | enum plink_actions {
  type nl80211_rekey_data (line 5884) | enum nl80211_rekey_data {
  type nl80211_hidden_ssid (line 5905) | enum nl80211_hidden_ssid {
  type nl80211_sta_wme_attr (line 5921) | enum nl80211_sta_wme_attr {
  type nl80211_pmksa_candidate_attr (line 5943) | enum nl80211_pmksa_candidate_attr {
  type nl80211_tdls_operation (line 5962) | enum nl80211_tdls_operation {
  type nl80211_ap_sme_features (line 5976) | enum nl80211_ap_sme_features {
  type nl80211_feature_flags (line 6073) | enum nl80211_feature_flags {
  type nl80211_ext_feature_index (line 6300) | enum nl80211_ext_feature_index {
  type nl80211_probe_resp_offload_support_attr (line 6385) | enum nl80211_probe_resp_offload_support_attr {
  type nl80211_connect_failed_reason (line 6398) | enum nl80211_connect_failed_reason {
  type nl80211_timeout_reason (line 6411) | enum nl80211_timeout_reason {
  type nl80211_scan_flags (line 6482) | enum nl80211_scan_flags {
  type nl80211_acl_policy (line 6513) | enum nl80211_acl_policy {
  type nl80211_smps_mode (line 6528) | enum nl80211_smps_mode {
  type nl80211_radar_event (line 6558) | enum nl80211_radar_event {
  type nl80211_dfs_state (line 6578) | enum nl80211_dfs_state {
  type nl80211_protocol_features (line 6592) | enum nl80211_protocol_features {
  type nl80211_crit_proto_id (line 6605) | enum nl80211_crit_proto_id {
  type nl80211_rxmgmt_flags (line 6628) | enum nl80211_rxmgmt_flags {
  type nl80211_vendor_cmd_info (line 6648) | struct nl80211_vendor_cmd_info {
  type nl80211_tdls_peer_capability (line 6664) | enum nl80211_tdls_peer_capability {
  type nl80211_sched_scan_plan (line 6684) | enum nl80211_sched_scan_plan {
  type nl80211_bss_select_rssi_adjust (line 6702) | struct nl80211_bss_select_rssi_adjust {
  type nl80211_bss_select_attr (line 6729) | enum nl80211_bss_select_attr {
  type nl80211_nan_function_type (line 6749) | enum nl80211_nan_function_type {
  type nl80211_nan_publish_type (line 6767) | enum nl80211_nan_publish_type {
  type nl80211_nan_func_term_reason (line 6781) | enum nl80211_nan_func_term_reason {
  type nl80211_nan_func_attributes (line 6833) | enum nl80211_nan_func_attributes {
  type nl80211_nan_srf_attributes (line 6872) | enum nl80211_nan_srf_attributes {
  type nl80211_nan_match_attributes (line 6897) | enum nl80211_nan_match_attributes {
  type nl80211_external_auth_action (line 6913) | enum nl80211_external_auth_action {
  type nl80211_ftm_responder_attributes (line 6932) | enum nl80211_ftm_responder_attributes {
  type nl80211_ftm_responder_stats (line 6972) | enum nl80211_ftm_responder_stats {
  type nl80211_preamble (line 6998) | enum nl80211_preamble {
  type nl80211_peer_measurement_type (line 7016) | enum nl80211_peer_measurement_type {
  type nl80211_peer_measurement_status (line 7033) | enum nl80211_peer_measurement_status {
  type nl80211_peer_measurement_req (line 7053) | enum nl80211_peer_measurement_req {
  type nl80211_peer_measurement_resp (line 7089) | enum nl80211_peer_measurement_resp {
  type nl80211_peer_measurement_peer_attrs (line 7121) | enum nl80211_peer_measurement_peer_attrs {
  type nl80211_peer_measurement_attrs (line 7158) | enum nl80211_peer_measurement_attrs {
  type nl80211_peer_measurement_ftm_capa (line 7204) | enum nl80211_peer_measurement_ftm_capa {
  type nl80211_peer_measurement_ftm_req (line 7270) | enum nl80211_peer_measurement_ftm_req {
  type nl80211_peer_measurement_ftm_failure_reasons (line 7308) | enum nl80211_peer_measurement_ftm_failure_reasons {
  type nl80211_peer_measurement_ftm_resp (line 7374) | enum nl80211_peer_measurement_ftm_resp {
  type nl80211_obss_pd_attributes (line 7421) | enum nl80211_obss_pd_attributes {
  type nl80211_bss_color_attributes (line 7447) | enum nl80211_bss_color_attributes {
  type nl80211_iftype_akm_attributes (line 7472) | enum nl80211_iftype_akm_attributes {
  type nl80211_fils_discovery_attributes (line 7499) | enum nl80211_fils_discovery_attributes {
  type nl80211_unsol_bcast_probe_resp_attributes (line 7532) | enum nl80211_unsol_bcast_probe_resp_attributes {
  type nl80211_sae_pwe_mechanism (line 7556) | enum nl80211_sae_pwe_mechanism {
  type nl80211_sar_type (line 7569) | enum nl80211_sar_type {
  type nl80211_sar_attrs (line 7599) | enum nl80211_sar_attrs {
  type nl80211_sar_specs_attrs (line 7642) | enum nl80211_sar_specs_attrs {
  type nl80211_mbssid_config_attributes (line 7696) | enum nl80211_mbssid_config_attributes {
  type nl80211_ap_settings_flags (line 7721) | enum nl80211_ap_settings_flags {

FILE: src/basic/linux/pkt_sched.h
  type tc_stats (line 34) | struct tc_stats {
  type tc_estimator (line 46) | struct tc_estimator {
  type tc_link_layer (line 84) | enum tc_link_layer {
  type tc_ratespec (line 91) | struct tc_ratespec {
  type tc_sizespec (line 102) | struct tc_sizespec {
  type tc_fifo_qopt (line 124) | struct tc_fifo_qopt {
  type tc_skbprio_qopt (line 139) | struct tc_skbprio_qopt {
  type tc_prio_qopt (line 148) | struct tc_prio_qopt {
  type tc_multiq_qopt (line 155) | struct tc_multiq_qopt {
  type tc_plug_qopt (line 167) | struct tc_plug_qopt {
  type tc_tbf_qopt (line 183) | struct tc_tbf_qopt {
  type tc_sfq_qopt (line 213) | struct tc_sfq_qopt {
  type tc_sfqred_stats (line 221) | struct tc_sfqred_stats {
  type tc_sfq_qopt_v1 (line 230) | struct tc_sfq_qopt_v1 {
  type tc_sfq_xstats (line 248) | struct tc_sfq_xstats {
  type tc_red_qopt (line 267) | struct tc_red_qopt {
  type tc_red_xstats (line 296) | struct tc_red_xstats {
  type tc_gred_qopt (line 346) | struct tc_gred_qopt {
  type tc_gred_sopt (line 366) | struct tc_gred_sopt {
  type tc_choke_qopt (line 386) | struct tc_choke_qopt {
  type tc_choke_xstats (line 396) | struct tc_choke_xstats {
  type tc_htb_opt (line 409) | struct tc_htb_opt {
  type tc_htb_glob (line 418) | struct tc_htb_glob {
  type tc_htb_xstats (line 443) | struct tc_htb_xstats {
  type tc_hfsc_qopt (line 453) | struct tc_hfsc_qopt {
  type tc_service_curve (line 457) | struct tc_service_curve {
  type tc_hfsc_stats (line 463) | struct tc_hfsc_stats {
  type tc_cbq_lssopt (line 487) | struct tc_cbq_lssopt {
  type tc_cbq_wrropt (line 506) | struct tc_cbq_wrropt {
  type tc_cbq_ovl (line 515) | struct tc_cbq_ovl {
  type tc_cbq_police (line 527) | struct tc_cbq_police {
  type tc_cbq_fopt (line 533) | struct tc_cbq_fopt {
  type tc_cbq_xstats (line 539) | struct tc_cbq_xstats {
  type tc_netem_qopt (line 611) | struct tc_netem_qopt {
  type tc_netem_corr (line 620) | struct tc_netem_corr {
  type tc_netem_reorder (line 626) | struct tc_netem_reorder {
  type tc_netem_corrupt (line 631) | struct tc_netem_corrupt {
  type tc_netem_rate (line 636) | struct tc_netem_rate {
  type tc_netem_slot (line 643) | struct tc_netem_slot {
  type tc_netem_gimodel (line 661) | struct tc_netem_gimodel {
  type tc_netem_gemodel (line 670) | struct tc_netem_gemodel {
  type tc_drr_stats (line 690) | struct tc_drr_stats {
  type tc_mqprio_qopt (line 722) | struct tc_mqprio_qopt {
  type tc_sfb_qopt (line 759) | struct tc_sfb_qopt {
  type tc_sfb_xstats (line 771) | struct tc_sfb_xstats {
  type tc_qfq_stats (line 795) | struct tc_qfq_stats {
  type tc_codel_xstats (line 814) | struct tc_codel_xstats {
  type tc_fq_codel_qd_stats (line 855) | struct tc_fq_codel_qd_stats {
  type tc_fq_codel_cl_stats (line 873) | struct tc_fq_codel_cl_stats {
  type tc_fq_codel_xstats (line 884) | struct tc_fq_codel_xstats {
  type tc_fq_qd_stats (line 932) | struct tc_fq_qd_stats {
  type tc_hhf_xstats (line 966) | struct tc_hhf_xstats {
  type tc_pie_xstats (line 990) | struct tc_pie_xstats {
  type tc_fq_pie_xstats (line 1025) | struct tc_fq_pie_xstats {
  type tc_cbs_qopt (line 1038) | struct tc_cbs_qopt {
  type tc_etf_qopt (line 1057) | struct tc_etf_qopt {

FILE: src/basic/linux/rtnetlink.h
  type rtattr (line 211) | struct rtattr {
  type rtmsg (line 237) | struct rtmsg {
  type rt_scope_t (line 320) | enum rt_scope_t {
  type rt_class_t (line 347) | enum rt_class_t {
  type rtattr_type_t (line 360) | enum rtattr_type_t {
  type rtnexthop (line 409) | struct rtnexthop {
  type rtvia (line 441) | struct rtvia {
  type rta_cacheinfo (line 448) | struct rta_cacheinfo {
  type rta_session (line 513) | struct rta_session {
  type rta_mfc_stats (line 534) | struct rta_mfc_stats {
  type rtgenmsg (line 544) | struct rtgenmsg {
  type ifinfomsg (line 557) | struct ifinfomsg {
  type prefixmsg (line 570) | struct prefixmsg {
  type prefix_cacheinfo (line 591) | struct prefix_cacheinfo {
  type tcmsg (line 601) | struct tcmsg {
  type nduseroptmsg (line 655) | struct nduseroptmsg {
  type rtnetlink_groups (line 699) | enum rtnetlink_groups {
  type tcamsg (line 777) | struct tcamsg {

FILE: src/basic/linux/wireguard.h
  type wg_cmd (line 139) | enum wg_cmd {
  type wgdevice_flag (line 146) | enum wgdevice_flag {
  type wgdevice_attribute (line 150) | enum wgdevice_attribute {
  type wgpeer_flag (line 164) | enum wgpeer_flag {
  type wgpeer_attribute (line 171) | enum wgpeer_attribute {
  type wgallowedip_attribute (line 187) | enum wgallowedip_attribute {

FILE: src/basic/locale-util.c
  function add_locales_from_archive (line 62) | static int add_locales_from_archive(Set *locales) {
  function add_locales_from_libdir (line 163) | static int add_locales_from_libdir(Set *locales) {
  function get_locales (line 189) | int get_locales(char ***ret) {
  function locale_is_valid (line 248) | bool locale_is_valid(const char *name) {
  function locale_is_installed (line 268) | int locale_is_installed(const char *name) {
  function is_locale_utf8 (line 283) | bool is_locale_utf8(void) {
  function locale_variables_free (line 343) | void locale_variables_free(char *l[_VARIABLE_LC_MAX]) {
  function locale_variables_simplify (line 347) | void locale_variables_simplify(char *l[_VARIABLE_LC_MAX]) {

FILE: src/basic/locale-util.h
  type LocaleVariable (line 10) | typedef enum LocaleVariable {
  function freelocalep (line 44) | static inline void freelocalep(locale_t *p) {
  function locale_variables_freep (line 52) | static inline void locale_variables_freep(char*(*l)[_VARIABLE_LC_MAX]) {

FILE: src/basic/lock-util.c
  function make_lock_file_at (line 21) | int make_lock_file_at(int dir_fd, const char *p, int operation, LockFile...
  function make_lock_file_for (line 63) | int make_lock_file_for(const char *p, int operation, LockFile *ret) {
  function release_lock_file (line 85) | void release_lock_file(LockFile *f) {
  function fcntl_lock (line 111) | static int fcntl_lock(int fd, int operation, bool ofd) {
  function posix_lock (line 155) | int posix_lock(int fd, int operation) {
  function unposix_lock (line 159) | int unposix_lock(int fd, int operation) {
  function posix_unlockpp (line 163) | void posix_unlockpp(int **fd) {
  function unposix_unlockpp (line 173) | void unposix_unlockpp(int **fd) {
  function lock_generic (line 183) | int lock_generic(int fd, LockType type, int operation) {
  function lock_generic_with_timeout (line 200) | int lock_generic_with_timeout(int fd, LockType type, int operation, usec...

FILE: src/basic/lock-util.h
  type LockFile (line 6) | typedef struct LockFile {
  function make_lock_file (line 14) | static inline int make_lock_file(const char *p, int operation, LockFile ...
  type LockType (line 36) | typedef enum LockType {

FILE: src/basic/log.c
  type LogContext (line 77) | typedef struct LogContext {
  function log_close_console (line 109) | static void log_close_console(void) {
  function log_open_console (line 115) | static int log_open_console(void) {
  function log_close_kmsg (line 137) | static void log_close_kmsg(void) {
  function log_open_kmsg (line 142) | static int log_open_kmsg(void) {
  function log_close_syslog (line 155) | static void log_close_syslog(void) {
  function create_log_socket (line 160) | static int create_log_socket(int type) {
  function log_open_syslog (line 182) | static int log_open_syslog(void) {
  function log_close_journal (line 221) | static void log_close_journal(void) {
  function log_open_journal (line 229) | static int log_open_journal(void) {
  function stderr_is_journal (line 252) | static bool stderr_is_journal(void) {
  function log_open (line 278) | int log_open(void) {
  function log_set_target (line 356) | void log_set_target(LogTarget target) {
  function log_set_target_and_open (line 370) | void log_set_target_and_open(LogTarget target) {
  function log_close (line 375) | void log_close(void) {
  function log_forget_fds (line 384) | void log_forget_fds(void) {
  function log_set_max_level (line 391) | int log_set_max_level(int level) {
  function log_set_facility (line 411) | void log_set_facility(int facility) {
  function check_console_fd_is_tty (line 415) | static bool check_console_fd_is_tty(void) {
  function write_to_console (line 425) | static int write_to_console(
  function write_to_syslog (line 517) | static int write_to_syslog(
  function write_to_kmsg (line 580) | static int write_to_kmsg(
  function log_do_header (line 629) | static int log_do_header(
  function log_do_context (line 679) | static void log_do_context(struct iovec *iovec, size_t iovec_len, size_t...
  function write_to_journal (line 711) | static int write_to_journal(
  function log_dispatch_internal (line 757) | int log_dispatch_internal(
  function log_dump_internal (line 838) | int log_dump_internal(
  function log_internalv (line 856) | int log_internalv(
  function log_internal (line 877) | int log_internal(
  function log_object_internalv (line 895) | int log_object_internalv(
  function log_object_internal (line 925) | int log_object_internal(
  function log_assert (line 947) | static void log_assert(
  function _noreturn_ (line 969) | _noreturn_ void log_assert_failed(
  function _noreturn_ (line 979) | _noreturn_ void log_assert_failed_unreachable(
  function log_assert_failed_return (line 988) | void log_assert_failed_return(
  function log_oom_internal (line 998) | int log_oom_internal(int level, const char *file, int line, const char *...
  function log_format_iovec (line 1002) | int log_format_iovec(
  function log_struct_internal (line 1043) | int log_struct_internal(
  function log_struct_iovec_internal (line 1148) | int log_struct_iovec_internal(
  function log_set_target_from_string (line 1211) | int log_set_target_from_string(const char *e) {
  function log_set_max_level_from_string (line 1222) | int log_set_max_level_from_string(const char *e) {
  function log_set_ratelimit_kmsg_from_string (line 1233) | static int log_set_ratelimit_kmsg_from_string(const char *e) {
  function parse_proc_cmdline_item (line 1244) | static int parse_proc_cmdline_item(const char *key, const char *value, v...
  function should_parse_proc_cmdline (line 1303) | static bool should_parse_proc_cmdline(void) {
  function log_parse_environment_variables (line 1312) | void log_parse_environment_variables(void) {
  function log_parse_environment (line 1344) | void log_parse_environment(void) {
  function LogTarget (line 1353) | LogTarget log_get_target(void) {
  function log_settle_target (line 1357) | void log_settle_target(void) {
  function log_get_max_level (line 1375) | int log_get_max_level(void) {
  function log_show_color (line 1379) | void log_show_color(bool b) {
  function log_get_show_color (line 1383) | bool log_get_show_color(void) {
  function log_show_location (line 1387) | void log_show_location(bool b) {
  function log_get_show_location (line 1391) | bool log_get_show_location(void) {
  function log_show_time (line 1395) | void log_show_time(bool b) {
  function log_get_show_time (line 1399) | bool log_get_show_time(void) {
  function log_show_tid (line 1403) | void log_show_tid(bool b) {
  function log_get_show_tid (line 1407) | bool log_get_show_tid(void) {
  function log_show_color_from_string (line 1411) | int log_show_color_from_string(const char *e) {
  function log_show_location_from_string (line 1422) | int log_show_location_from_string(const char *e) {
  function log_show_time_from_string (line 1433) | int log_show_time_from_string(const char *e) {
  function log_show_tid_from_string (line 1444) | int log_show_tid_from_string(const char *e) {
  function log_on_console (line 1455) | bool log_on_console(void) {
  function log_received_signal (line 1477) | void log_received_signal(int level, const struct signalfd_siginfo *si) {
  function set_log_syntax_callback (line 1495) | void set_log_syntax_callback(log_syntax_callback_t cb, void *userdata) {
  function log_syntax_internal (line 1503) | int log_syntax_internal(
  function log_syntax_invalid_utf8_internal (line 1577) | int log_syntax_invalid_utf8_internal(
  function log_set_upgrade_syslog_to_journal (line 1597) | void log_set_upgrade_syslog_to_journal(bool b) {
  function log_set_always_reopen_console (line 1609) | void log_set_always_reopen_console(bool b) {
  function log_set_open_when_needed (line 1613) | void log_set_open_when_needed(bool b) {
  function log_set_prohibit_ipc (line 1617) | void log_set_prohibit_ipc(bool b) {
  function log_emergency_level (line 1621) | int log_emergency_level(void) {
  function log_dup_console (line 1628) | int log_dup_console(void) {
  function log_setup (line 1645) | void log_setup(void) {
  function log_context_enabled (line 1664) | bool log_context_enabled(void) {
  function LogContext (line 1682) | static LogContext* log_context_attach(LogContext *c) {
  function LogContext (line 1692) | static LogContext* log_context_detach(LogContext *c) {
  function LogContext (line 1705) | LogContext* log_context_new(const char *key, const char *value) {
  function LogContext (line 1727) | LogContext* log_context_new_strv(char **fields, bool owned) {
  function LogContext (line 1750) | LogContext* log_context_new_iov(struct iovec *input_iovec, size_t n_inpu...
  function LogContext (line 1774) | static LogContext* log_context_free(LogContext *c) {
  function LogContext (line 1792) | LogContext* log_context_new_strv_consume(char **fields) {
  function LogContext (line 1800) | LogContext* log_context_new_iov_consume(struct iovec *input_iovec, size_...
  function log_context_num_contexts (line 1808) | size_t log_context_num_contexts(void) {
  function log_context_num_fields (line 1817) | size_t log_context_num_fields(void) {

FILE: src/basic/log.h
  type iovec (line 16) | struct iovec
  type signalfd_siginfo (line 17) | struct signalfd_siginfo
  type LogTarget (line 19) | typedef enum LogTarget{
  function clear_log_syntax_callback (line 46) | static inline void clear_log_syntax_callback(dummy_t *dummy) {
  type iovec (line 161) | struct iovec
  type iovec (line 175) | struct iovec
  type signalfd_siginfo (line 317) | struct signalfd_siginfo
  type LogRateLimit (line 376) | typedef struct LogRateLimit {
  type LogContext (line 466) | typedef struct LogContext LogContext;
  type iovec (line 472) | struct iovec
  type iovec (line 476) | struct iovec
  function _reset_log_level (line 488) | static inline void _reset_log_level(int *saved_log_level) {

FILE: src/basic/login-util.c
  function session_id_valid (line 6) | bool session_id_valid(const char *id) {

FILE: src/basic/login-util.h
  function logind_running (line 20) | static inline bool logind_running(void) {

FILE: src/basic/macro.h
  function u64_multiply_safe (line 54) | static inline uint64_t u64_multiply_safe(uint64_t a, uint64_t b) {
  function ALIGN_POWER2 (line 62) | static inline unsigned long ALIGN_POWER2(unsigned long u) {
  function GREEDY_ALLOC_ROUND_UP (line 79) | static inline size_t GREEDY_ALLOC_ROUND_UP(size_t l) {
  function __coverity_check__ (line 131) | static inline void __coverity_check__(int condition) {
  function __coverity_check_and_return__ (line 136) | static inline int __coverity_check_and_return__(int condition) {
  function size_add (line 357) | static inline size_t size_add(size_t x, size_t y) {
  type dummy_t (line 361) | typedef struct {

FILE: src/basic/mallinfo-util.h
  type generic_mallinfo (line 8) | typedef struct mallinfo2 generic_mallinfo;
  function generic_mallinfo (line 9) | static inline generic_mallinfo generic_mallinfo_get(void) {
  type generic_mallinfo (line 14) | typedef struct mallinfo generic_mallinfo;
  function generic_mallinfo (line 15) | static inline generic_mallinfo generic_mallinfo_get(void) {

FILE: src/basic/memfd-util.c
  function memfd_create_wrapper (line 23) | int memfd_create_wrapper(const char *name, unsigned mode) {
  function memfd_new (line 39) | int memfd_new(const char *name) {
  function memfd_add_seals (line 71) | int memfd_add_seals(int fd, unsigned int seals) {
  function memfd_get_seals (line 77) | int memfd_get_seals(int fd, unsigned int *ret_seals) {
  function memfd_map (line 91) | int memfd_map(int fd, uint64_t offset, size_t size, void **p) {
  function memfd_set_sealed (line 115) | int memfd_set_sealed(int fd) {
  function memfd_get_sealed (line 119) | int memfd_get_sealed(int fd) {
  function memfd_get_size (line 131) | int memfd_get_size(int fd, uint64_t *sz) {
  function memfd_set_size (line 144) | int memfd_set_size(int fd, uint64_t sz) {
  function memfd_new_and_map (line 150) | int memfd_new_and_map(const char *name, size_t sz, void **p) {
  function memfd_new_and_seal (line 172) | int memfd_new_and_seal(const char *name, const void *data, size_t sz) {

FILE: src/basic/memory-util.c
  function page_size (line 8) | size_t page_size(void) {
  function memeqbyte (line 22) | bool memeqbyte(uint8_t byte, const void *data, size_t length) {

FILE: src/basic/memory-util.h
  function memcmp_safe (line 39) | static inline int memcmp_safe(const void *s1, const void *s2, size_t n) {
  function memcmp_nn (line 48) | static inline int memcmp_nn(const void *s1, size_t n1, const void *s2, s...
  function erase_and_freep (line 102) | static inline void erase_and_freep(void *p) {
  function erase_char (line 107) | static inline void erase_char(char *p) {

FILE: src/basic/mempool.c
  type pool (line 11) | struct pool {
  type pool (line 17) | struct pool
  type pool (line 18) | struct pool
  type mempool (line 21) | struct mempool
  type pool (line 42) | struct pool
  type pool (line 46) | struct pool
  type pool (line 47) | struct pool
  type mempool (line 65) | struct mempool
  type mempool (line 74) | struct mempool
  function pool_contains (line 86) | static bool pool_contains(struct mempool *mp, struct pool *p, void *ptr) {
  function pool_is_unused (line 108) | static bool pool_is_unused(struct mempool *mp, struct pool *p) {
  function pool_unlink (line 130) | static void pool_unlink(struct mempool *mp, struct pool *p) {
  function mempool_trim (line 154) | void mempool_trim(struct mempool *mp) {

FILE: src/basic/mempool.h
  type pool (line 7) | struct pool
  type mempool (line 9) | struct mempool {
  type mempool (line 16) | struct mempool
  type mempool (line 17) | struct mempool
  type mempool (line 18) | struct mempool
  type mempool (line 28) | struct mempool

FILE: src/basic/memstream-util.c
  function memstream_done (line 9) | void memstream_done(MemStream *m) {
  function FILE (line 19) | FILE* memstream_init(MemStream *m) {
  function memstream_finalize (line 27) | int memstream_finalize(MemStream *m, char **ret_buf, size_t *ret_size) {
  function memstream_dump_internal (line 57) | int memstream_dump_internal(

FILE: src/basic/memstream-util.h
  type MemStream (line 8) | typedef struct MemStream {

FILE: src/basic/missing_fs.h
  type file_clone_range (line 21) | struct file_clone_range {

FILE: src/basic/missing_input.h
  type input_mask (line 14) | struct input_mask {

FILE: src/basic/missing_ioprio.h
  function ioprio_prio_class (line 49) | static inline int ioprio_prio_class(int value) {
  function ioprio_prio_data (line 53) | static inline int ioprio_prio_data(int value) {
  function ioprio_prio_value (line 57) | static inline int ioprio_prio_value(int class, int data) {

FILE: src/basic/missing_keyctl.h
  type key_serial_t (line 46) | typedef int32_t key_serial_t;

FILE: src/basic/missing_loop.h
  type loop_config (line 7) | struct loop_config {

FILE: src/basic/missing_sched.h
  type sched_attr (line 37) | struct sched_attr {

FILE: src/basic/missing_socket.h
  type sockaddr_vm (line 10) | struct sockaddr_vm {

FILE: src/basic/missing_stat.h
  type statx_timestamp (line 39) | struct statx_timestamp {
  type statx (line 45) | struct statx
  type new_statx (line 50) | struct new_statx

FILE: src/basic/missing_syscall.h
  function missing_fchmodat2 (line 37) | static inline int missing_fchmodat2(int dirfd, const char *path, mode_t ...
  function missing_pivot_root (line 52) | static inline int missing_pivot_root(const char *new_root, const char *p...
  function missing_ioprio_get (line 62) | static inline int missing_ioprio_get(int which, int who) {
  function missing_ioprio_set (line 72) | static inline int missing_ioprio_set(int which, int who, int ioprio) {
  function missing_memfd_create (line 82) | static inline int missing_memfd_create(const char *name, unsigned int fl...
  function missing_getrandom (line 98) | static inline ssize_t missing_getrandom(void *buffer, size_t count, unsi...
  function pid_t (line 114) | static inline pid_t missing_gettid(void) {
  type file_handle (line 128) | struct file_handle {
  function missing_name_to_handle_at (line 134) | static inline int missing_name_to_handle_at(int fd, const char *name, st...
  function missing_setns (line 149) | static inline int missing_setns(int fd, int nstype) {
  function pid_t (line 163) | static inline pid_t raw_getpid(void) {
  function missing_renameat2 (line 174) | static inline int missing_renameat2(int oldfd, const char *oldname, int ...
  function missing_kcmp (line 189) | static inline int missing_kcmp(pid_t pid1, pid_t pid2, int type, unsigne...
  function missing_keyctl (line 204) | static inline long missing_keyctl(int cmd, unsigned long arg2, unsigned ...
  function key_serial_t (line 215) | static inline key_serial_t missing_add_key(const char *type, const char ...
  function key_serial_t (line 226) | static inline key_serial_t missing_request_key(const char *type, const c...
  function missing_copy_file_range (line 241) | static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in,
  function missing_bpf (line 261) | static inline int missing_bpf(int cmd, union bpf_attr *attr, size_t size) {
  type statx (line 276) | struct statx
  function missing_statx (line 278) | static inline ssize_t missing_statx(int dfd, const char *filename, unsig...
  type struct_statx (line 289) | typedef struct statx struct_statx;
  function missing_set_mempolicy (line 306) | static inline long missing_set_mempolicy(int mode, const unsigned long *...
  function missing_get_mempolicy (line 322) | static inline long missing_get_mempolicy(int *mode, unsigned long *nodem...
  function missing_pidfd_send_signal (line 341) | static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *...
  function missing_pidfd_open (line 354) | static inline int missing_pidfd_open(pid_t pid, unsigned flags) {
  function missing_rt_sigqueueinfo (line 369) | static inline int missing_rt_sigqueueinfo(pid_t tgid, int sig, siginfo_t...
  function missing_rt_tgsigqueueinfo (line 383) | static inline int missing_rt_tgsigqueueinfo(pid_t tgid, pid_t tid, int s...
  function missing_execveat (line 397) | static inline int missing_execveat(int dirfd, const char *pathname,
  function missing_close_range (line 416) | static inline int missing_close_range(unsigned first_fd, unsigned end_fd...
  type mount_attr (line 439) | struct mount_attr {
  type mount_attr (line 446) | struct mount_attr
  function missing_mount_setattr (line 501) | static inline int missing_mount_setattr(
  function missing_open_tree (line 531) | static inline int missing_open_tree(
  function missing_move_mount (line 563) | static inline int missing_move_mount(
  function missing_fsopen (line 589) | static inline int missing_fsopen(const char *fsname, unsigned flags) {
  function missing_fsconfig (line 621) | static inline int missing_fsconfig(int fd, unsigned cmd, const char *key...
  function missing_fsmount (line 641) | static inline int missing_fsmount(int fd, unsigned flags, unsigned ms_fl...
  function missing_getdents64 (line 657) | static inline ssize_t missing_getdents64(int fd, void *buffer, size_t le...
  function missing_sched_setattr (line 673) | static inline ssize_t missing_sched_setattr(pid_t pid, struct sched_attr...

FILE: src/basic/missing_syscalls.py
  function dictify (line 28) | def dictify(f):
  function parse_syscall_table (line 34) | def parse_syscall_table(filename):
  function parse_syscall_tables (line 41) | def parse_syscall_tables(filenames):
  function print_syscall_def (line 133) | def print_syscall_def(syscall, tables, out):
  function print_syscall_defs (line 139) | def print_syscall_defs(syscalls, tables, out):

FILE: src/basic/missing_xfs.h
  type xfs_fsop_geom_t (line 10) | typedef struct xfs_fsop_geom {
  type xfs_growfs_data_t (line 38) | typedef struct xfs_growfs_data {

FILE: src/basic/mkdir.c
  function mkdirat_safe_internal (line 20) | int mkdirat_safe_internal(
  function mkdirat_errno_wrapper (line 88) | int mkdirat_errno_wrapper(int dirfd, const char *pathname, mode_t mode) {
  function mkdirat_safe (line 92) | int mkdirat_safe(int dir_fd, const char *path, mode_t mode, uid_t uid, g...
  function mkdirat_parents_internal (line 96) | int mkdirat_parents_internal(int dir_fd, const char *path, mode_t mode, ...
  function mkdir_parents_internal (line 150) | int mkdir_parents_internal(const char *prefix, const char *path, mode_t ...
  function mkdirat_parents (line 173) | int mkdirat_parents(int dir_fd, const char *path, mode_t mode) {
  function mkdir_parents_safe (line 177) | int mkdir_parents_safe(const char *prefix, const char *path, mode_t mode...
  function mkdir_p_internal (line 181) | int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, ...
  function mkdir_p (line 205) | int mkdir_p(const char *path, mode_t mode) {
  function mkdir_p_safe (line 209) | int mkdir_p_safe(const char *prefix, const char *path, mode_t mode, uid_...
  function mkdir_p_root (line 213) | int mkdir_p_root(const char *root, const char *p, uid_t uid, gid_t gid, ...

FILE: src/basic/mkdir.h
  type MkdirFlags (line 7) | typedef enum MkdirFlags {
  function mkdir_safe (line 16) | static inline int mkdir_safe(const char *path, mode_t mode, uid_t uid, g...
  function mkdir_parents (line 20) | static inline int mkdir_parents(const char *path, mode_t mode) {
  function mkdir_safe_internal (line 31) | static inline int mkdir_safe_internal(const char *path, mode_t mode, uid...

FILE: src/basic/mountpoint-util.c
  function name_to_handle_at_loop (line 38) | int name_to_handle_at_loop(
  function fd_fdinfo_mnt_id (line 104) | static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int...
  function filename_possibly_with_slash_suffix (line 140) | static bool filename_possibly_with_slash_suffix(const char *s) {
  function is_name_to_handle_at_fatal_error (line 163) | static bool is_name_to_handle_at_fatal_error(int err) {
  function fd_is_mount_point (line 176) | int fd_is_mount_point(int fd, const char *filename, int flags) {
  function path_is_mount_point (line 328) | int path_is_mount_point(const char *t, const char *root, int flags) {
  function path_get_mnt_id_at_fallback (line 358) | int path_get_mnt_id_at_fallback(int dir_fd, const char *path, int *ret) {
  function path_get_mnt_id_at (line 371) | int path_get_mnt_id_at(int dir_fd, const char *path, int *ret) {
  function fstype_is_network (line 400) | bool fstype_is_network(const char *fstype) {
  function fstype_needs_quota (line 418) | bool fstype_needs_quota(const char *fstype) {
  function fstype_is_api_vfs (line 444) | bool fstype_is_api_vfs(const char *fstype) {
  function fstype_is_blockdev_backed (line 462) | bool fstype_is_blockdev_backed(const char *fstype) {
  function fstype_is_ro (line 472) | bool fstype_is_ro(const char *fstype) {
  function fstype_can_discard (line 482) | bool fstype_can_discard(const char *fstype) {
  function fstype_can_umask (line 524) | bool fstype_can_umask(const char *fstype) {
  function fstype_can_uid_gid (line 533) | bool fstype_can_uid_gid(const char *fstype) {
  function dev_is_devtmpfs (line 552) | int dev_is_devtmpfs(void) {
  function mount_fd (line 595) | int mount_fd(const char *source,
  function mount_nofollow (line 616) | int mount_nofollow(
  function mount_propagation_flag_from_string (line 657) | int mount_propagation_flag_from_string(const char *name, unsigned long *...
  function mount_propagation_flag_is_valid (line 672) | bool mount_propagation_flag_is_valid(unsigned long flag) {
  function mount_new_api_supported (line 676) | bool mount_new_api_supported(void) {
  function ms_nosymfollow_supported (line 691) | unsigned long ms_nosymfollow_supported(void) {
  function mount_option_supported (line 751) | int mount_option_supported(const char *fstype, const char *key, const ch...

FILE: src/basic/mountpoint-util.h
  type file_handle (line 38) | struct file_handle
  function path_get_mnt_id (line 42) | static inline int path_get_mnt_id(const char *path, int *ret) {

FILE: src/basic/namespace-util.c
  type namespace_info (line 19) | struct namespace_info
  function namespace_open (line 36) | int namespace_open(pid_t pid, int *pidns_fd, int *mntns_fd, int *netns_f...
  function namespace_enter (line 105) | int namespace_enter(int pidns_fd, int mntns_fd, int netns_fd, int userns...
  function fd_is_ns (line 146) | int fd_is_ns(int fd, unsigned long nsflag) {
  function detach_mount_namespace (line 192) | int detach_mount_namespace(void) {
  function userns_acquire (line 209) | int userns_acquire(const char *uid_map, const char *gid_map) {
  function in_same_namespace (line 247) | int in_same_namespace(pid_t pid1, pid_t pid2, NamespaceType type) {

FILE: src/basic/namespace-util.h
  type NamespaceType (line 6) | typedef enum NamespaceType {
  type namespace_info (line 19) | struct namespace_info {
  function userns_shift_range_valid (line 32) | static inline bool userns_shift_range_valid(uid_t shift, uid_t range) {

FILE: src/basic/nss-util.h
  type nss_status (line 210) | enum nss_status
  type gaih_addrtuple (line 212) | struct gaih_addrtuple
  type nss_status (line 217) | enum nss_status
  type hostent (line 220) | struct hostent
  type nss_status (line 226) | enum nss_status
  type hostent (line 229) | struct hostent
  type nss_status (line 233) | enum nss_status
  type hostent (line 235) | struct hostent
  type nss_status (line 239) | enum nss_status
  type hostent (line 242) | struct hostent
  type nss_status (line 246) | enum nss_status
  type hostent (line 249) | struct hostent
  type nss_status (line 253) | enum nss_status
  type passwd (line 255) | struct passwd
  type nss_status (line 258) | enum nss_status
  type passwd (line 260) | struct passwd
  type nss_status (line 264) | enum nss_status
  type group (line 266) | struct group
  type nss_status (line 269) | enum nss_status
  type group (line 271) | struct group

FILE: src/basic/nulstr-util.c
  function strv_make_nulstr (line 76) | int strv_make_nulstr(char * const *l, char **ret, size_t *ret_size) {
  function set_make_nulstr (line 122) | int set_make_nulstr(Set *s, char **ret, size_t *ret_size) {

FILE: src/basic/nulstr-util.h
  function nulstr_contains (line 19) | static inline bool nulstr_contains(const char *nulstr, const char *needl...
  function strv_from_nulstr (line 31) | static inline int strv_from_nulstr(char ***ret, const char *nulstr) {

FILE: src/basic/ordered-set.c
  function _ordered_set_ensure_allocated (line 7) | int _ordered_set_ensure_allocated(OrderedSet **s, const struct hash_ops ...
  function _ordered_set_ensure_put (line 18) | int _ordered_set_ensure_put(OrderedSet **s, const struct hash_ops *ops, ...
  function ordered_set_consume (line 28) | int ordered_set_consume(OrderedSet *s, void *p) {
  function _ordered_set_put_strdup (line 38) | int _ordered_set_put_strdup(OrderedSet **s, const char *p  HASHMAP_DEBUG...
  function _ordered_set_put_strdupv (line 59) | int _ordered_set_put_strdupv(OrderedSet **s, char **l  HASHMAP_DEBUG_PAR...
  function ordered_set_put_string_set (line 73) | int ordered_set_put_string_set(OrderedSet **s, OrderedSet *l) {
  function ordered_set_print (line 90) | void ordered_set_print(FILE *f, const char *field, OrderedSet *s) {

FILE: src/basic/ordered-set.h
  type OrderedSet (line 8) | typedef struct OrderedSet OrderedSet;
  function OrderedSet (line 10) | static inline OrderedSet* _ordered_set_new(const struct hash_ops *ops  H...
  type hash_ops (line 15) | struct hash_ops
  type hash_ops (line 18) | struct hash_ops
  function ordered_set_clear (line 21) | static inline void ordered_set_clear(OrderedSet *s) {
  function ordered_set_clear_free (line 25) | static inline void ordered_set_clear_free(OrderedSet *s) {
  function OrderedSet (line 29) | static inline OrderedSet* ordered_set_free(OrderedSet *s) {
  function OrderedSet (line 33) | static inline OrderedSet* ordered_set_free_free(OrderedSet *s) {
  function ordered_set_contains (line 37) | static inline int ordered_set_contains(OrderedSet *s, const void *p) {
  function ordered_set_put (line 41) | static inline int ordered_set_put(OrderedSet *s, void *p) {
  function ordered_set_size (line 49) | static inline unsigned ordered_set_size(OrderedSet *s) {
  function ordered_set_isempty (line 53) | static inline bool ordered_set_isempty(OrderedSet *s) {
  function ordered_set_iterate (line 57) | static inline bool ordered_set_iterate(OrderedSet *s, Iterator *i, void ...
  function ordered_set_reserve (line 77) | static inline int ordered_set_reserve(OrderedSet *s, unsigned entries_ad...

FILE: src/basic/os-util.c
  function image_name_is_valid (line 47) | bool image_name_is_valid(const char *s) {
  function path_extract_image_name (line 64) | int path_extract_image_name(const char *path, char **ret) {
  function path_is_extension_tree (line 97) | int path_is_extension_tree(ImageClass image_class, const char *path, con...
  function extension_release_strict_xattr_value (line 121) | static int extension_release_strict_xattr_value(int extension_release_fd...
  function open_os_release_at (line 151) | int open_os_release_at(int rfd, char **ret_path, int *ret_fd) {
  function open_os_release (line 170) | int open_os_release(const char *root, char **ret_path, int *ret_fd) {
  function open_extension_release_at (line 195) | int open_extension_release_at(
  function open_extension_release (line 309) | int open_extension_release(
  function parse_extension_release_atv (line 342) | static int parse_extension_release_atv(
  function parse_extension_release_at_sentinel (line 362) | int parse_extension_release_at_sentinel(
  function parse_extension_release_sentinel (line 380) | int parse_extension_release_sentinel(
  function load_os_release_pairs_with_prefix (line 401) | int load_os_release_pairs_with_prefix(const char *root, const char *pref...
  function load_extension_release_pairs (line 430) | int load_extension_release_pairs(const char *root, ImageClass image_clas...
  function os_release_support_ended (line 442) | int os_release_support_ended(const char *support_end, bool quiet, usec_t...

FILE: src/basic/os-util.h
  type ImageClass (line 9) | typedef enum ImageClass {
  function path_is_os_tree (line 31) | static inline int path_is_os_tree(const char *path) {
  function load_os_release_pairs (line 53) | static inline int load_os_release_pairs(const char *root, char ***ret) {

FILE: src/basic/parse-util.c
  function parse_boolean (line 22) | int parse_boolean(const char *v) {
  function parse_tristate_full (line 47) | int parse_tristate_full(const char *v, const char *third, int *ret) {
  function parse_pid (line 65) | int parse_pid(const char *s, pid_t* ret_pid) {
  function parse_mode (line 89) | int parse_mode(const char *s, mode_t *ret) {
  function parse_ifindex (line 111) | int parse_ifindex(const char *s) {
  function parse_mtu (line 125) | int parse_mtu(int family, const char *s, uint32_t *ret) {
  function parse_size (line 154) | int parse_size(const char *t, uint64_t base, uint64_t *size) {
  function parse_sector_size (line 282) | int parse_sector_size(const char *t, uint64_t *ret) {
  function parse_range (line 302) | int parse_range(const char *t, unsigned *lower, unsigned *upper) {
  function parse_errno (line 339) | int parse_errno(const char *t) {
  function parse_fd (line 359) | int parse_fd(const char *t) {
  function safe_atou_full (line 400) | int safe_atou_full(const char *s, unsigned base, unsigned *ret_u) {
  function safe_atou_bounded (line 451) | int safe_atou_bounded(const char *s, unsigned min, unsigned max, unsigne...
  function safe_atoi (line 466) | int safe_atoi(const char *s, int *ret_i) {
  function safe_atollu_full (line 491) | int safe_atollu_full(const char *s, unsigned base, unsigned long long *r...
  function safe_atolli (line 529) | int safe_atolli(const char *s, long long int *ret_lli) {
  function safe_atou8_full (line 552) | int safe_atou8_full(const char *s, unsigned base, uint8_t *ret) {
  function safe_atou16_full (line 566) | int safe_atou16_full(const char *s, unsigned base, uint16_t *ret) {
  function safe_atoi16 (line 580) | int safe_atoi16(const char *s, int16_t *ret) {
  function safe_atod (line 605) | int safe_atod(const char *s, double *ret_d) {
  function parse_fractional_part_u (line 629) | int parse_fractional_part_u(const char **p, size_t digits, unsigned *res) {
  function parse_nice (line 664) | int parse_nice(const char *p, int *ret) {
  function parse_ip_port (line 678) | int parse_ip_port(const char *s, uint16_t *ret) {
  function parse_ip_port_range (line 694) | int parse_ip_port_range(const char *s, uint16_t *low, uint16_t *high) {
  function parse_ip_prefix_length (line 714) | int parse_ip_prefix_length(const char *s, int *ret) {
  function parse_oom_score_adjust (line 730) | int parse_oom_score_adjust(const char *s, int *ret) {
  function store_loadavg_fixed_point (line 747) | int store_loadavg_fixed_point(unsigned long i, unsigned long f, loadavg_...
  function parse_loadavg_fixed_point (line 763) | int parse_loadavg_fixed_point(const char *s, loadavg_t *ret) {
  function nft_identifier_valid (line 791) | bool nft_identifier_valid(const char *id) {

FILE: src/basic/parse-util.h
  type loadavg_t (line 12) | typedef unsigned long loadavg_t;
  function parse_tristate (line 16) | static inline int parse_tristate(const char *v, int *ret) {
  function safe_atou (line 37) | static inline int safe_atou(const char *s, unsigned *ret_u) {
  function safe_atou8 (line 48) | static inline int safe_atou8(const char *s, uint8_t *ret) {
  function safe_atou16 (line 54) | static inline int safe_atou16(const char *s, uint16_t *ret) {
  function safe_atoux16 (line 58) | static inline int safe_atoux16(const char *s, uint16_t *ret) {
  function safe_atou32_full (line 64) | static inline int safe_atou32_full(const char *s, unsigned base, uint32_...
  function safe_atou32 (line 69) | static inline int safe_atou32(const char *s, uint32_t *ret_u) {
  function safe_atoi32 (line 73) | static inline int safe_atoi32(const char *s, int32_t *ret_i) {
  function safe_atollu (line 80) | static inline int safe_atollu(const char *s, unsigned long long *ret_llu) {
  function safe_atou64 (line 84) | static inline int safe_atou64(const char *s, uint64_t *ret_u) {
  function safe_atoi64 (line 89) | static inline int safe_atoi64(const char *s, int64_t *ret_i) {
  function safe_atoux64 (line 94) | static inline int safe_atoux64(const char *s, uint64_t *ret) {
  function safe_atolu_full (line 100) | static inline int safe_atolu_full(const char *s, unsigned base, unsigned...
  function safe_atoli (line 104) | static inline int safe_atoli(const char *s, long int *ret_u) {
  function safe_atolu_full (line 109) | static inline int safe_atolu_full(const char *s, unsigned base, unsigned...
  function safe_atoli (line 113) | static inline int safe_atoli(const char *s, long int *ret_u) {
  function safe_atolu (line 119) | static inline int safe_atolu(const char *s, unsigned long *ret_u) {
  function safe_atozu (line 124) | static inline int safe_atozu(const char *s, size_t *ret_u) {
  function safe_atozu (line 129) | static inline int safe_atozu(const char *s, size_t *ret_u) {

FILE: src/basic/path-lookup.c
  function xdg_user_runtime_dir (line 20) | int xdg_user_runtime_dir(char **ret, const char *suffix) {
  function xdg_user_config_dir (line 39) | int xdg_user_config_dir(char **ret, const char *suffix) {
  function xdg_user_data_dir (line 64) | int xdg_user_data_dir(char **ret, const char *suffix) {
  function xdg_user_dirs (line 109) | int xdg_user_dirs(char ***ret_config_dirs, char ***ret_data_dirs) {
  function path_is_user_data_dir (line 222) | bool path_is_user_data_dir(const char *path) {
  function path_is_user_config_dir (line 228) | bool path_is_user_config_dir(const char *path) {
  function acquire_generator_dirs (line 234) | static int acquire_generator_dirs(
  function acquire_transient_dir (line 290) | static int acquire_transient_dir(
  function acquire_config_dirs (line 316) | static int acquire_config_dirs(RuntimeScope scope, char **persistent, ch...
  function acquire_control_dirs (line 367) | static int acquire_control_dirs(RuntimeScope scope, char **persistent, c...
  function acquire_attached_dirs (line 421) | static int acquire_attached_dirs(
  function patch_root_prefix (line 449) | static int patch_root_prefix(char **p, const char *root_dir) {
  function patch_root_prefix_strv (line 465) | static int patch_root_prefix_strv(char **l, const char *root_dir) {
  function get_paths_from_environ (line 480) | static int get_paths_from_environ(const char *var, char ***paths, bool *...
  function lookup_paths_init (line 510) | int lookup_paths_init(
  function lookup_paths_init_or_warn (line 741) | int lookup_paths_init_or_warn(LookupPaths *lp, RuntimeScope scope, Looku...
  function lookup_paths_free (line 751) | void lookup_paths_free(LookupPaths *lp) {
  function lookup_paths_log (line 776) | void lookup_paths_log(LookupPaths *lp) {
  function find_portable_profile (line 885) | int find_portable_profile(const char *name, const char *unit, char **ret...

FILE: src/basic/path-lookup.h
  type LookupPathsFlags (line 10) | typedef enum LookupPathsFlags {
  type LookupPaths (line 16) | typedef struct LookupPaths {

FILE: src/basic/path-util.c
  function path_split_and_make_absolute (line 24) | int path_split_and_make_absolute(const char *p, char ***ret) {
  function safe_getcwd (line 55) | int safe_getcwd(char **ret) {
  function path_make_absolute_cwd (line 73) | int path_make_absolute_cwd(const char *p, char **ret) {
  function path_make_relative (line 101) | int path_make_relative(const char *from, const char *to, char **ret) {
  function path_make_relative_parent (line 192) | int path_make_relative_parent(const char *from_child, const char *to, ch...
  function path_strv_make_absolute_cwd (line 232) | int path_strv_make_absolute_cwd(char **l) {
  function path_compare (line 446) | int path_compare(const char *a, const char *b) {
  function path_compare_filename (line 499) | int path_compare_filename(const char *a, const char *b) {
  function check_x_access (line 602) | static int check_x_access(const char *path, int *ret_fd) {
  function find_executable_impl (line 630) | static int find_executable_impl(const char *name, const char *root, char...
  function find_executable_full (line 666) | int find_executable_full(
  function paths_check_timestamp (line 742) | bool paths_check_timestamp(const char* const* paths, usec_t *timestamp, ...
  function executable_is_good (line 778) | static int executable_is_good(const char *executable) {
  function fsck_exists (line 802) | int fsck_exists(void) {
  function fsck_exists_for_fstype (line 806) | int fsck_exists_for_fstype(const char *fstype) {
  function path_find_first_component (line 836) | int path_find_first_component(const char **p, bool accept_dot_dot, const...
  function path_find_last_component (line 923) | int path_find_last_component(const char *path, bool accept_dot_dot, cons...
  function path_extract_filename (line 1059) | int path_extract_filename(const char *path, char **ret) {
  function path_extract_directory (line 1096) | int path_extract_directory(const char *path, char **ret) {
  function filename_part_is_valid (line 1143) | bool filename_part_is_valid(const char *p) {
  function filename_is_valid (line 1162) | bool filename_is_valid(const char *p) {
  function path_is_valid_full (line 1173) | bool path_is_valid_full(const char *p, bool accept_dot_dot) {
  function path_is_normalized (line 1192) | bool path_is_normalized(const char *p) {
  function file_in_same_dir (line 1205) | int file_in_same_dir(const char *path, const char *filename, char **ret) {
  function hidden_or_backup_file (line 1236) | bool hidden_or_backup_file(const char *filename) {
  function is_device_path (line 1285) | bool is_device_path(const char *path) {
  function valid_device_node_path (line 1300) | bool valid_device_node_path(const char *path) {
  function valid_device_allow_pattern (line 1314) | bool valid_device_allow_pattern(const char *path) {
  function dot_or_dot_dot (line 1326) | bool dot_or_dot_dot(const char *path) {
  function empty_or_root (line 1339) | bool empty_or_root(const char *path) {
  function path_strv_contains (line 1350) | bool path_strv_contains(char **l, const char *path) {
  function prefixed_path_strv_contains (line 1358) | bool prefixed_path_strv_contains(char **l, const char *path) {
  function path_glob_can_match (line 1373) | int path_glob_can_match(const char *pattern, const char *prefix, char **...

FILE: src/basic/path-util.h
  function is_path (line 36) | static inline bool is_path(const char *p) {
  function path_is_absolute (line 43) | static inline bool path_is_absolute(const char *p) {
  function path_equal (line 62) | static inline bool path_equal(const char *a, const char *b) {
  function path_equal_filename (line 67) | static inline bool path_equal_filename(const char *a, const char *b) {
  function path_equal_or_inode_same (line 71) | static inline bool path_equal_or_inode_same(const char *a, const char *b...
  type PathSimplifyFlags (line 79) | typedef enum PathSimplifyFlags {
  function path_simplify_alloc (line 88) | static inline int path_simplify_alloc(const char *path, char **ret) {
  function path_equal_ptr (line 104) | static inline bool path_equal_ptr(const char *a, const char *b) {
  function find_executable (line 119) | static inline int find_executable(const char *name, char **ret_filename) {
  function path_is_valid (line 185) | static inline bool path_is_valid(const char *p) {
  function path_is_safe (line 188) | static inline bool path_is_safe(const char *p) {

FILE: src/basic/pcapng.h
  type pcapng_block_types (line 10) | enum pcapng_block_types {
  type pcapng_option (line 21) | struct pcapng_option {
  type pcapng_opt (line 31) | enum pcapng_opt {
  type pcapng_section (line 36) | struct pcapng_section {
  type pcapng_section_opt (line 45) | enum pcapng_section_opt {
  type pcapng_interface_block (line 51) | struct pcapng_interface_block {
  type pcapng_interface_options (line 59) | enum pcapng_interface_options {
  type pcapng_enhance_packet_block (line 76) | struct 
Copy disabled (too large) Download .json
Condensed preview — 5709 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (75,271K chars).
[
  {
    "path": ".clang-format",
    "chars": 3831,
    "preview": "# This configuration file can be used to auto-format the code base.\n# Not all guidelines specified in CODING_STYLE are f"
  },
  {
    "path": ".clusterfuzzlite/Dockerfile",
    "chars": 156,
    "preview": "FROM gcr.io/oss-fuzz-base/base-builder:v1\nENV MERGE_WITH_OSS_FUZZ_CORPORA=yes\nCOPY . $SRC/systemd\nWORKDIR $SRC/systemd\nC"
  },
  {
    "path": ".ctags",
    "chars": 11,
    "preview": "--links=no\n"
  },
  {
    "path": ".dir-locals.el",
    "chars": 1187,
    "preview": "; Sets emacs variables based on mode.\n; A list of (major-mode . ((var1 . value1) (var2 . value2)))\n; Mode can be nil, wh"
  },
  {
    "path": ".editorconfig",
    "chars": 861,
    "preview": "# EditorConfig configuration for systemd\n# http://EditorConfig.org\n\n# NOTE: If you update this file make sure to update "
  },
  {
    "path": ".gitattributes",
    "chars": 465,
    "preview": "*.[ch] whitespace=tab-in-indent,trailing-space\n*.gpg  binary generated\n*.bmp  binary\n*.base64 generated\n\n# Mark files as"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 50,
    "preview": "custom: ['https://spi-inc.org/projects/systemd/']\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 5519,
    "preview": "name: Bug Report\ndescription: A report of an error in a recent systemd version\nlabels: [\"bug 🐛\"]\n\nbody:\n  - type: markdo"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 309,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n\nblank_issues_enabled: true\ncontact_links:\n  - name"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 3626,
    "preview": "name: Feature request\ndescription: Suggest an improvement\nlabels: [\"RFE 🎁\"]\n\nbody:\n  - type: markdown\n    attributes:\n  "
  },
  {
    "path": ".github/advanced-issue-labeler.yml",
    "chars": 3728,
    "preview": "---\n# syntax - https://github.com/redhat-plumbers-in-action/advanced-issue-labeler#policy\n\npolicy:\n  - template: [bug_re"
  },
  {
    "path": ".github/codeql-config.yml",
    "chars": 320,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\nname: \"CodeQL config\"\n\ndisable-default-queries: fal"
  },
  {
    "path": ".github/codeql-custom.qls",
    "chars": 1626,
    "preview": "---\n# vi: ts=2 sw=2 et syntax=yaml:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n# Note: it is not recommended to dire"
  },
  {
    "path": ".github/codeql-queries/PotentiallyDangerousFunction.ql",
    "chars": 2127,
    "preview": "/**\n * vi: sw=2 ts=2 et syntax=ql:\n *\n * Borrowed from\n * https://github.com/Semmle/ql/blob/master/cpp/ql/src/Security/C"
  },
  {
    "path": ".github/codeql-queries/UninitializedVariableWithCleanup.ql",
    "chars": 3927,
    "preview": "/**\n * vi: sw=2 ts=2 et syntax=ql:\n *\n * Based on cpp/uninitialized-local.\n *\n * @name Potentially uninitialized local v"
  },
  {
    "path": ".github/codeql-queries/qlpack.yml",
    "chars": 217,
    "preview": "---\n# vi: ts=2 sw=2 et syntax=yaml:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n\nlibrary: false\nname: systemd/cpp-queri"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 473,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\nversion: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory:"
  },
  {
    "path": ".github/development-freeze.yml",
    "chars": 610,
    "preview": "# syntax - https://github.com/redhat-plumbers-in-action/devel-freezer#policy\n---\n\npolicy:\n  # tags like v253-rc1, v253-r"
  },
  {
    "path": ".github/labeler.yml",
    "chars": 2195,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\napparmor:\n  - '**/*apparmor*'\nbinfmt:\n  - '**/*binfmt*'\nbtrfs:\n  - '**/*bt"
  },
  {
    "path": ".github/workflows/build_test.sh",
    "chars": 5368,
    "preview": "#!/usr/bin/env bash\n# SPDX-License-Identifier: LGPL-2.1-or-later\n\nset -ex\n\ninfo() { echo -e \"\\033[33;1m$1\\033[0m\"; }\nfat"
  },
  {
    "path": ".github/workflows/build_test.yml",
    "chars": 1203,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\nname: Build test\non:\n  pull_request:\n    paths:\n "
  },
  {
    "path": ".github/workflows/cflite_pr.yml",
    "chars": 1043,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\nname: ClusterFuzzLite PR fuzzing\non:\n  pull_reque"
  },
  {
    "path": ".github/workflows/cifuzz.yml",
    "chars": 2459,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n# See: https://google.github.io/oss-fuzz/getting-st"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 1373,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\nname: \"CodeQL\"\n\non:\n  pull_request:\n    branches:"
  },
  {
    "path": ".github/workflows/coverity.yml",
    "chars": 881,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\nname: Coverity\n\non:\n  schedule:\n    # Run Coverit"
  },
  {
    "path": ".github/workflows/development_freeze.yml",
    "chars": 2437,
    "preview": "# doc: https://github.com/redhat-plumbers-in-action/devel-freezer#readme\n---\n\nname: Development Freeze\non:\n  workflow_ru"
  },
  {
    "path": ".github/workflows/differential-shellcheck.yml",
    "chars": 887,
    "preview": "---\n# https://github.com/redhat-plumbers-in-action/differential-shellcheck#readme\n\nname: Differential ShellCheck\non:\n  p"
  },
  {
    "path": ".github/workflows/gather-pr-metadata.yml",
    "chars": 971,
    "preview": "---\n\nname: Gather Pull Request Metadata\n\non:\n  pull_request:\n    branches: [ main ]\n\nenv:\n  PULL_REQUEST_METADATA_DIR: p"
  },
  {
    "path": ".github/workflows/issue_labeler.yml",
    "chars": 905,
    "preview": "---\n\nname: Issue labeler\non:\n  issues:\n    types: [ opened ]\n\npermissions:\n  contents: read\n\njobs:\n  label-component:\n  "
  },
  {
    "path": ".github/workflows/labeler.yml",
    "chars": 4430,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\nname: \"Pull Request Labeler\"\n\non:\n  pull_request_"
  },
  {
    "path": ".github/workflows/linter.yml",
    "chars": 843,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n# https://github.com/marketplace/actions/super-lint"
  },
  {
    "path": ".github/workflows/make_release.yml",
    "chars": 531,
    "preview": "name: Make a Github release\n\non:\n  push:\n    tags:\n      - \"v*\"\n\npermissions:\n  contents: read\n\njobs:\n  release:\n    if:"
  },
  {
    "path": ".github/workflows/mkosi.yml",
    "chars": 4573,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n# Simple boot tests that build and boot the mkosi i"
  },
  {
    "path": ".github/workflows/requirements.txt",
    "chars": 1474,
    "preview": "meson==1.3.0 \\\n    --hash=sha256:4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc \\\n    --hash=sha256:e9"
  },
  {
    "path": ".github/workflows/scorecards.yml",
    "chars": 1045,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\nname: Scorecards supply-chain security\non:\n  # Only"
  },
  {
    "path": ".github/workflows/unit_tests.sh",
    "chars": 5178,
    "preview": "#!/usr/bin/env bash\n# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# shellcheck disable=SC2206\nPHASES=(${@:-SETUP RUN RUN"
  },
  {
    "path": ".github/workflows/unit_tests.yml",
    "chars": 1493,
    "preview": "---\n# vi: ts=2 sw=2 et:\n# SPDX-License-Identifier: LGPL-2.1-or-later\n#\nname: Unit tests\non:\n  pull_request:\n    branches"
  },
  {
    "path": ".gitignore",
    "chars": 449,
    "preview": "*.cache\n*.plist\n*.py[co]\n*.swp\n*.trs\n*~\n.config.args\n.gdb_history\n.deps/\n.mypy_cache/\n__pycache__/\n/*.gcda\n/*.gcno\n/*.ta"
  },
  {
    "path": ".mailmap",
    "chars": 11102,
    "preview": "Alan Jenkins <alan.christopher.jenkins@googlemail.com>\nAlan Jenkins <alan.christopher.jenkins@googlemail.com> <alan-jenk"
  },
  {
    "path": ".packit.yml",
    "chars": 2275,
    "preview": "---\n# vi:ts=2 sw=2 et:\n#\n# Docs: https://packit.dev/docs/\n\nspecfile_path: .packit_rpm/systemd.spec\nfiles_to_sync:\n  - .p"
  },
  {
    "path": ".pylintrc",
    "chars": 625,
    "preview": "[MAIN]\nextension-pkg-allow-list=lxml\n\n[MESSAGES CONTROL]\ndisable=fixme,\n        invalid-name,\n        line-too-long,\n   "
  },
  {
    "path": ".semaphore/semaphore-runner.sh",
    "chars": 4912,
    "preview": "#!/usr/bin/env bash\n# SPDX-License-Identifier: LGPL-2.1-or-later\n\nset -eux\nset -o pipefail\n\n# default to Debian testing\n"
  },
  {
    "path": ".semaphore/semaphore.yml",
    "chars": 589,
    "preview": "---\n# SPDX-License-Identifier: LGPL-2.1-or-later\n# vi: ts=2 sw=2 et:\n\nversion: v1.0\nname: Debian autopkgtest (LXC)\nagent"
  },
  {
    "path": ".vimrc",
    "chars": 825,
    "preview": "\" 'set exrc' in ~/.vimrc will read .vimrc from the current directory\n\" Warning: Enabling exrc is dangerous! You can do n"
  },
  {
    "path": ".ycm_extra_conf.py",
    "chars": 8410,
    "preview": "#!/usr/bin/env python\n\n# SPDX-License-Identifier: Unlicense\n#\n# Based on the template file provided by the 'YCM-Generato"
  },
  {
    "path": "LICENSE.GPL2",
    "chars": 17987,
    "preview": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
  },
  {
    "path": "LICENSE.LGPL2.1",
    "chars": 26530,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "LICENSES/BSD-2-Clause.txt",
    "chars": 1287,
    "preview": "Copyright (c) <year> <owner> All rights reserved.\n\nRedistribution and use in source and binary forms, with or without mo"
  },
  {
    "path": "LICENSES/BSD-3-Clause.txt",
    "chars": 1562,
    "preview": "// Copyright 2014 The Chromium OS Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms,"
  },
  {
    "path": "LICENSES/CC0-1.0.txt",
    "chars": 7048,
    "preview": "Creative Commons Legal Code\n\nCC0 1.0 Universal\n\n    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n"
  },
  {
    "path": "LICENSES/LGPL-2.0-or-later.txt",
    "chars": 24842,
    "preview": "GNU LIBRARY GENERAL PUBLIC LICENSE\n\nVersion 2, June 1991\n\nCopyright (C) 1991 Free Software Foundation, Inc.\n51 Franklin "
  },
  {
    "path": "LICENSES/Linux-syscall-note.txt",
    "chars": 638,
    "preview": "   NOTE! This copyright does *not* cover user programs that use kernel\n services by normal system calls - this is merely"
  },
  {
    "path": "LICENSES/MIT-0.txt",
    "chars": 915,
    "preview": "MIT No Attribution\n\nCopyright <YEAR> <COPYRIGHT HOLDER>\n\nPermission is hereby granted, free of charge, to any person obt"
  },
  {
    "path": "LICENSES/MIT.txt",
    "chars": 1078,
    "preview": "MIT License\n\nCopyright (c) <year> <copyright holders>\n\nPermission is hereby granted, free of charge, to any person obtai"
  },
  {
    "path": "LICENSES/OFL-1.1.txt",
    "chars": 4598,
    "preview": "Copyright (c) <dates>, <Copyright Holder> (<URL|email>),\nwith Reserved Font Name <Reserved Font Name>.\nCopyright (c) <da"
  },
  {
    "path": "LICENSES/README.md",
    "chars": 3724,
    "preview": "# systemd Project Licensing\n\n## Main License\n\nThe systemd project uses single-line references to Unique License Identifi"
  },
  {
    "path": "LICENSES/lookup3-public-domain.txt",
    "chars": 52,
    "preview": "lookup3.c, by Bob Jenkins, May 2006, Public Domain.\n"
  },
  {
    "path": "LICENSES/murmurhash2-public-domain.txt",
    "chars": 138,
    "preview": "MurmurHash2 was written by Austin Appleby, and is placed in the public\ndomain. The author hereby disclaims copyright to "
  },
  {
    "path": "Makefile",
    "chars": 120,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\nall:\n\tninja -C build\n\ninstall:\n\tDESTDIR=$(DESTDIR) ninja -C build install\n"
  },
  {
    "path": "NEWS",
    "chars": 922511,
    "preview": "systemd System and Service Manager\n\nCHANGES WITH 255:\n\n        Announcements of Future Feature Removals and Incompatible"
  },
  {
    "path": "README",
    "chars": 21154,
    "preview": "systemd System and Service Manager\n\nWEB SITE:\n        https://systemd.io\n\nGIT:\n        git@github.com:systemd/systemd.gi"
  },
  {
    "path": "README.md",
    "chars": 3668,
    "preview": "![Systemd](http://brand.systemd.io/assets/page-logo.png)\n\nSystem and Service Manager\n\n[![Semaphore CI 2.0 Build Status]("
  },
  {
    "path": "TODO",
    "chars": 130783,
    "preview": "Bugfixes:\n\n* Many manager configuration settings that are only applicable to user\n  manager or system manager can be alw"
  },
  {
    "path": "catalog/meson.build",
    "chars": 1138,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\nin_files = [\n        'systemd.be.catalog',\n        'systemd.be@latin.catal"
  },
  {
    "path": "catalog/systemd.be.catalog.in",
    "chars": 8741,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n# Message catalog for systemd's own messages\n# Belarusian translation\n\n# "
  },
  {
    "path": "catalog/systemd.be@latin.catalog.in",
    "chars": 9075,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n# Message catalog for systemd's own messages\n# Belarusian Latin translati"
  },
  {
    "path": "catalog/systemd.bg.catalog.in",
    "chars": 18436,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2016, 2022 Alexander Shopov <ash@kambanaria.org>\n\n# Messag"
  },
  {
    "path": "catalog/systemd.catalog.in",
    "chars": 26769,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# Message catalog for systemd's own messages\n\n# The catalog format is docu"
  },
  {
    "path": "catalog/systemd.da.catalog.in",
    "chars": 7183,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# Message catalog for systemd's own messages\n# Danish translation\n\n# The c"
  },
  {
    "path": "catalog/systemd.de.catalog.in",
    "chars": 650,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n-- fc2e22bc6ee647b6b90729ab34a250b1\nSubject: Speicherabbild für Prozess @C"
  },
  {
    "path": "catalog/systemd.fr.catalog.in",
    "chars": 11996,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2013-2016 Sylvain Plantefève\n\n# Message catalog for system"
  },
  {
    "path": "catalog/systemd.hr.catalog.in",
    "chars": 9269,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# Message catalog for systemd's own messages\n# Croatian translation\n\n# For"
  },
  {
    "path": "catalog/systemd.hu.catalog.in",
    "chars": 7244,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2016 Gabor Kelemen\n\n# Message catalog for systemd's own me"
  },
  {
    "path": "catalog/systemd.it.catalog.in",
    "chars": 14798,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2013-2019 Daniele Medri\n\n# Message catalog for systemd's o"
  },
  {
    "path": "catalog/systemd.ko.catalog.in",
    "chars": 6969,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# Message catalog for systemd's own messages\n# Korean translation\n\n# The c"
  },
  {
    "path": "catalog/systemd.pl.catalog.in",
    "chars": 22071,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# Message catalog for systemd's own messages\n# Polish translation\n\n# The c"
  },
  {
    "path": "catalog/systemd.pt_BR.catalog.in",
    "chars": 7541,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2015 Rafael Ferreira (translation)\n\n# Catálogo de mensagen"
  },
  {
    "path": "catalog/systemd.ru.catalog.in",
    "chars": 13757,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2013-2017 Sergey Ptashnick\n\n# Message catalog for systemd'"
  },
  {
    "path": "catalog/systemd.sr.catalog.in",
    "chars": 7012,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n\n# Message catalog for systemd's own messages\n# Serbian translation\n\n# Форм"
  },
  {
    "path": "catalog/systemd.zh_CN.catalog.in",
    "chars": 4645,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2015 Boyuan Yang\n\n# Message catalog for systemd's own mess"
  },
  {
    "path": "catalog/systemd.zh_TW.catalog.in",
    "chars": 4692,
    "preview": "# SPDX-License-Identifier: LGPL-2.1-or-later\n#\n#  Copyright © 2015 Jeff Huang\n\n# Message catalog for systemd's own messa"
  },
  {
    "path": "coccinelle/bool-cast.cocci",
    "chars": 147,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nbool b;\nexpression y;\n@@\n- b = !!(y);\n+ b = y;\n@@\nbool b;\nexpression"
  },
  {
    "path": "coccinelle/close-above-stdio.cocci",
    "chars": 603,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression fd;\n@@\n- if (fd > 2)\n- safe_close(fd);\n+ safe_close_above"
  },
  {
    "path": "coccinelle/cmp.cocci",
    "chars": 440,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x, y;\n@@\n- if (x < y)\n-         return -1;\n- if (x > y)\n-"
  },
  {
    "path": "coccinelle/cond-omit-middle.cocci",
    "chars": 170,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n/* See: https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditiona"
  },
  {
    "path": "coccinelle/const-strlen.disabled",
    "chars": 156,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nconstant s;\n@@\n(\n#define STRLEN\n&\n- sizeof(s)-1\n+ STRLEN(s)\n)\n@@\ncon"
  },
  {
    "path": "coccinelle/debug-logging.cocci",
    "chars": 231,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n@@\n(\n#define DEBUG_LOGGING\n&\n- _unlikely_(log_get_max_level() >= LOG"
  },
  {
    "path": "coccinelle/div-round-up.cocci",
    "chars": 305,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x, y;\n@@\n- ((x + y - 1) / y)\n+ DIV_ROUND_UP(x, y)\n@@\nexpr"
  },
  {
    "path": "coccinelle/dup-fcntl.cocci",
    "chars": 231,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n/* We want to stick with dup() in test-fd-util.c */\nposition p : scr"
  },
  {
    "path": "coccinelle/empty-or-dash.cocci",
    "chars": 120,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression s;\n@@\n- (isempty(s) || streq(s, \"-\"))\n+ empty_or_dash(s)\n"
  },
  {
    "path": "coccinelle/empty-or-root.cocci",
    "chars": 204,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression s;\n@@\n- (isempty(s) || path_equal(s, \"/\"))\n+ empty_or_roo"
  },
  {
    "path": "coccinelle/empty-to-null.cocci",
    "chars": 393,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n/* Avoid running this transformation on the empty_to_null macro itse"
  },
  {
    "path": "coccinelle/empty-to-root.cocci",
    "chars": 261,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression s;\n@@\n- if (empty_or_root(s))\n-         s = \"/\";\n+ s = em"
  },
  {
    "path": "coccinelle/enotsup.cocci",
    "chars": 78,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n@@\n- ENOTSUP\n+ EOPNOTSUPP\n"
  },
  {
    "path": "coccinelle/equals-null.cocci",
    "chars": 218,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression e;\nstatement s;\n@@\nif (\n(\n!e\n|\n- e == NULL\n+ !e\n)\n   )\n  "
  },
  {
    "path": "coccinelle/errno-check.cocci",
    "chars": 127,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nconstant c;\n@@\n(\n- errno == -c\n+ errno == c\n|\n- errno != -c\n+ errno "
  },
  {
    "path": "coccinelle/errno-wrapper.cocci",
    "chars": 826,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression r;\n@@\n- (r < 0 && ERRNO_IS_TRANSIENT(r))\n+ ERRNO_IS_NEG_T"
  },
  {
    "path": "coccinelle/errno.cocci",
    "chars": 2567,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nidentifier log_LEVEL_errno =~ \"^log_(debug|info|notice|warning|error"
  },
  {
    "path": "coccinelle/exit-0.cocci",
    "chars": 209,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n@@\n- exit(0);\n+ exit(EXIT_SUCCESS);\n@@\n@@\n- _exit(0);\n+ _exit(EXIT_S"
  },
  {
    "path": "coccinelle/flags-set.cocci",
    "chars": 630,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n/* Disable this transformation in cases where it doesn't make sense "
  },
  {
    "path": "coccinelle/fopen-unlocked.cocci",
    "chars": 1588,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression f, path, options;\n@@\n- f = fopen(path, options);\n- if (!f"
  },
  {
    "path": "coccinelle/free_and_replace.cocci",
    "chars": 230,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p, q;\n@@\n- free(p);\n- p = q;\n- q = NULL;\n- return 0;\n+ re"
  },
  {
    "path": "coccinelle/hashmap_free.cocci",
    "chars": 707,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p;\n@@\n- set_free(p);\n- p = NULL;\n+ p = set_free(p);\n@@\nex"
  },
  {
    "path": "coccinelle/htonl.cocci",
    "chars": 225,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression s;\n@@\n- htonl(s)\n+ htobe32(s)\n@@\nexpression s;\n@@\n- htons"
  },
  {
    "path": "coccinelle/in_set.cocci",
    "chars": 869,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n/* Limit the number of expressions to 6 for performance reasons */\n\n@ i"
  },
  {
    "path": "coccinelle/iovec-make.cocci",
    "chars": 796,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x, y, p, l;\n@@\n- x[y].iov_base = p;\n- x[y].iov_len = l;\n-"
  },
  {
    "path": "coccinelle/isempty.cocci",
    "chars": 676,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n/* Disable this transformation for the test-string-util.c */\npositio"
  },
  {
    "path": "coccinelle/log-json.cocci",
    "chars": 202,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression e, v, flags;\nexpression list args;\n@@\n+ return\n- json_log"
  },
  {
    "path": "coccinelle/macros.h",
    "chars": 13772,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n/*\n * Collected macros from our systemd codebase to make the cocci sema"
  },
  {
    "path": "coccinelle/malloc_multiply.cocci",
    "chars": 345,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression q, n, m;\n@@\n- q = malloc((n)*(m))\n+ q = malloc_multiply(n"
  },
  {
    "path": "coccinelle/mempcpy.cocci",
    "chars": 217,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x, y, z;\n@@\n- memcpy(x, y, z);\n- x += z;\n+ x = mempcpy(x,"
  },
  {
    "path": "coccinelle/memzero.cocci",
    "chars": 425,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression s;\n@@\n- memset(&s, 0, sizeof(s))\n+ zero(s)\n@@\nexpression "
  },
  {
    "path": "coccinelle/mfree.cocci",
    "chars": 108,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p;\n@@\n- free(p);\n- p = NULL;\n+ p = mfree(p);\n"
  },
  {
    "path": "coccinelle/mfree_return.cocci",
    "chars": 251,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n/* Avoid running this transformation on the mfree function itself */"
  },
  {
    "path": "coccinelle/no-if-assignments.cocci",
    "chars": 249,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p, q;\nidentifier r;\nstatement s;\n@@\n- if ((r = q) < p)\n- "
  },
  {
    "path": "coccinelle/not_in_set.cocci",
    "chars": 588,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n/* Limit the number of expressions to 6 for performance reasons */\n@@\ne"
  },
  {
    "path": "coccinelle/o-ndelay.cocci",
    "chars": 79,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n@@\n- O_NDELAY\n+ O_NONBLOCK\n"
  },
  {
    "path": "coccinelle/reallocarray.cocci",
    "chars": 373,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression q, p, n, m;\n@@\n- q = realloc(p, (n)*(m))\n+ q = reallocarr"
  },
  {
    "path": "coccinelle/redundant-if.cocci",
    "chars": 773,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression r;\n@@\n- if (r < 0)\n-         return r;\n- if (r == 0)\n-   "
  },
  {
    "path": "coccinelle/run-coccinelle.sh",
    "chars": 1436,
    "preview": "#!/usr/bin/env bash\n# SPDX-License-Identifier: LGPL-2.1-or-later\nset -e\n\n# Exclude following paths from the Coccinelle t"
  },
  {
    "path": "coccinelle/safe_close-no-if.cocci",
    "chars": 137,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression fd;\n@@\n- if (fd >= 0) {\n- fd = safe_close(fd);\n- }\n+ fd ="
  },
  {
    "path": "coccinelle/safe_close.cocci",
    "chars": 277,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression fd;\n@@\n- close(fd);\n- fd = -EBADF;\n+ fd = safe_close(fd);"
  },
  {
    "path": "coccinelle/safe_closedir.cocci",
    "chars": 382,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p;\n@@\n- if (p) {\n-         closedir(p);\n-         p = NUL"
  },
  {
    "path": "coccinelle/safe_fclose.cocci",
    "chars": 366,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p;\n@@\n- if (p) {\n-         fclose(p);\n-         p = NULL;"
  },
  {
    "path": "coccinelle/sd_event_source_disable_unref.cocci",
    "chars": 831,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p;\n@@\n- if (p) {\n-         (void) sd_event_source_set_ena"
  },
  {
    "path": "coccinelle/set_ensure_put.cocci",
    "chars": 378,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nlocal idexpression r;\nexpression p, k, x;\n@@\n- r = set_ensure_alloca"
  },
  {
    "path": "coccinelle/strdupa.cocci",
    "chars": 162,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x;\n@@\n- strdupa(x)\n+ strdupa_safe(x)\n@@\nexpression x, n;\n"
  },
  {
    "path": "coccinelle/strempty.cocci",
    "chars": 1659,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\n/* Avoid running this transformation on the strempty function itself"
  },
  {
    "path": "coccinelle/strjoin.cocci",
    "chars": 320,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nposition p : script:python() { p[0].current_element != \"test_strjoin"
  },
  {
    "path": "coccinelle/strjoina.cocci",
    "chars": 217,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nposition p : script:python() { p[0].current_element != \"test_strjoin"
  },
  {
    "path": "coccinelle/strv_free.cocci",
    "chars": 370,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression p;\n@@\n- strv_free(p);\n- p = NULL;\n+ p = strv_free(p);\n@@\n"
  },
  {
    "path": "coccinelle/swap-two.cocci",
    "chars": 120,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x, y, z;\n@@\n- z = x;\n- x = y;\n- y = z;\n+ SWAP_TWO(x, y);\n"
  },
  {
    "path": "coccinelle/synthetic-errno.cocci",
    "chars": 5525,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression e;\nexpression list args;\n@@\n(\n/* Ignore one specific case"
  },
  {
    "path": "coccinelle/take-fd.cocci",
    "chars": 480,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nlocal idexpression p;\nexpression q;\n@@\n- p = q;\n- q = -EBADF;\n- retu"
  },
  {
    "path": "coccinelle/take-ptr.cocci",
    "chars": 209,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nlocal idexpression p;\nexpression q;\n@@\n- p = q;\n- q = NULL;\n- return"
  },
  {
    "path": "coccinelle/timestamp-is-set.cocci",
    "chars": 1462,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nexpression x;\nconstant USEC_INFINITY = USEC_INFINITY;\n/* We want to "
  },
  {
    "path": "coccinelle/while-true.cocci",
    "chars": 140,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nstatement s;\n@@\n- while (true)\n+ for (;;)\ns\n@@\nstatement s;\n@@\n- whi"
  },
  {
    "path": "coccinelle/xsprintf.cocci",
    "chars": 234,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nposition p : script:python() { not p[0].file.startswith(\"man/\") };\ne"
  },
  {
    "path": "coccinelle/zz-drop-braces.cocci",
    "chars": 370,
    "preview": "/* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@\nposition p : script:python() { p[0].file != \"src/journal/lookup3.c\" "
  },
  {
    "path": "configure",
    "chars": 434,
    "preview": "#!/usr/bin/env bash\n# SPDX-License-Identifier: LGPL-2.1-or-later\nset -e\n\ncflags=\"CFLAGS=${CFLAGS-}\"\ncxxflags=\"CXXFLAGS=$"
  },
  {
    "path": "docs/.gitattributes",
    "chars": 42,
    "preview": "*.png    binary generated\n*.woff   binary\n"
  },
  {
    "path": "docs/.gitignore",
    "chars": 24,
    "preview": "/_site/\n/.jekyll-cache/\n"
  },
  {
    "path": "docs/API_FILE_SYSTEMS.md",
    "chars": 5029,
    "preview": "---\ntitle: API File Systems\ncategory: Manuals and Documentation for Users and Administrators\nlayout: default\nSPDX-Licens"
  },
  {
    "path": "docs/ARCHITECTURE.md",
    "chars": 9762,
    "preview": "---\ntitle: systemd Repository Architecture\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-l"
  },
  {
    "path": "docs/AUTOMATIC_BOOT_ASSESSMENT.md",
    "chars": 10896,
    "preview": "---\ntitle: Automatic Boot Assessment\ncategory: Booting\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n#"
  },
  {
    "path": "docs/AUTOPKGTEST.md",
    "chars": 6372,
    "preview": "---\ntitle: Autopkgtest - Defining tests for Debian packages\ncategory: Documentation for Developers\nlayout: default\nSPDX-"
  },
  {
    "path": "docs/BACKPORTS.md",
    "chars": 1917,
    "preview": "---\ntitle: Backports\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n-"
  },
  {
    "path": "docs/BLOCK_DEVICE_LOCKING.md",
    "chars": 9720,
    "preview": "---\ntitle: Locking Block Device Access\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n-"
  },
  {
    "path": "docs/BOOT.md",
    "chars": 4953,
    "preview": "---\ntitle: systemd-boot UEFI Boot Manager\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier"
  },
  {
    "path": "docs/BOOT_LOADER_INTERFACE.md",
    "chars": 8714,
    "preview": "---\ntitle: Boot Loader Interface\ncategory: Booting\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# The"
  },
  {
    "path": "docs/BOOT_LOADER_SPECIFICATION.md",
    "chars": 123,
    "preview": "[This content has moved to the UAPI group website](https://uapi-group.org/specifications/specs/boot_loader_specification"
  },
  {
    "path": "docs/BUILDING_IMAGES.md",
    "chars": 14961,
    "preview": "---\ntitle: Safely Building Images\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# B"
  },
  {
    "path": "docs/CATALOG.md",
    "chars": 6366,
    "preview": "---\ntitle: Journal Message Catalogs\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: LGPL"
  },
  {
    "path": "docs/CGROUP_DELEGATION.md",
    "chars": 29489,
    "preview": "---\ntitle: Control Group APIs and Delegation\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-l"
  },
  {
    "path": "docs/CODE_OF_CONDUCT.md",
    "chars": 1619,
    "preview": "---\ntitle: systemd Community Conduct Guidelines\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1"
  },
  {
    "path": "docs/CODE_QUALITY.md",
    "chars": 4134,
    "preview": "---\ntitle: Code Quality Tools\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# C"
  },
  {
    "path": "docs/CODING_STYLE.md",
    "chars": 34679,
    "preview": "---\ntitle: Coding Style\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Coding "
  },
  {
    "path": "docs/CONTAINER_INTERFACE.md",
    "chars": 24130,
    "preview": "---\ntitle: Container Interface\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Th"
  },
  {
    "path": "docs/CONTRIBUTING.md",
    "chars": 8538,
    "preview": "---\ntitle: Contributing\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Contrib"
  },
  {
    "path": "docs/CONTROL_GROUP_INTERFACE.md",
    "chars": 25881,
    "preview": "---\ntitle: New Control Group Interfaces\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: "
  },
  {
    "path": "docs/CONVERTING_TO_HOMED.md",
    "chars": 6053,
    "preview": "---\ntitle: Converting Existing Users to systemd-homed\ncategory: Users, Groups and Home Directories\nlayout: default\nSPDX-"
  },
  {
    "path": "docs/COREDUMP.md",
    "chars": 6664,
    "preview": "---\ntitle: systemd Coredump Handling\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n"
  },
  {
    "path": "docs/COREDUMP_PACKAGE_METADATA.md",
    "chars": 54,
    "preview": "---\nlayout: forward\ntarget: /ELF_PACKAGE_METADATA\n---\n"
  },
  {
    "path": "docs/CREDENTIALS.md",
    "chars": 23822,
    "preview": "---\ntitle: Credentials\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# System and S"
  },
  {
    "path": "docs/DAEMON_SOCKET_ACTIVATION.md",
    "chars": 2878,
    "preview": "---\ntitle: Socket Activation with Popular Daemons\ncategory: Manuals and Documentation for Users and Administrators\nlayou"
  },
  {
    "path": "docs/DEBUGGING.md",
    "chars": 10983,
    "preview": "---\ntitle: Diagnosing Boot Problems\ncategory: Manuals and Documentation for Users and Administrators\nlayout: default\nSPD"
  },
  {
    "path": "docs/DESKTOP_ENVIRONMENTS.md",
    "chars": 5855,
    "preview": "---\ntitle: Desktop Environment Integration\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later"
  },
  {
    "path": "docs/DISCOVERABLE_PARTITIONS.md",
    "chars": 135,
    "preview": "[This content has moved to the UAPI group website](https://uapi-group.org/specifications/specs/discoverable_partitions_s"
  },
  {
    "path": "docs/DISTRO_PORTING.md",
    "chars": 3338,
    "preview": "---\ntitle: Porting systemd To New Distributions\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-"
  },
  {
    "path": "docs/ELF_DLOPEN_METADATA.md",
    "chars": 5378,
    "preview": "---\ntitle: Dlopen Metadata for ELF Files\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later"
  },
  {
    "path": "docs/ELF_PACKAGE_METADATA.md",
    "chars": 5673,
    "preview": "---\ntitle: Package Metadata for ELF Files\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-late"
  },
  {
    "path": "docs/ENVIRONMENT.md",
    "chars": 30420,
    "preview": "---\ntitle: Known Environment Variables\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n-"
  },
  {
    "path": "docs/FAQ.md",
    "chars": 5898,
    "preview": "---\ntitle: Frequently Asked Questions\ncategory: Manuals and Documentation for Users and Administrators\nlayout: default\nS"
  },
  {
    "path": "docs/FILE_DESCRIPTOR_STORE.md",
    "chars": 11680,
    "preview": "---\ntitle: File Descriptor Store\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# "
  },
  {
    "path": "docs/GROUP_RECORD.md",
    "chars": 6113,
    "preview": "---\ntitle: JSON Group Records\ncategory: Users, Groups and Home Directories\nlayout: default\nSPDX-License-Identifier: LGPL"
  },
  {
    "path": "docs/HACKING.md",
    "chars": 15961,
    "preview": "---\ntitle: Hacking on systemd\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# H"
  },
  {
    "path": "docs/HOME_DIRECTORY.md",
    "chars": 10007,
    "preview": "---\ntitle: Home Directories\ncategory: Users, Groups and Home Directories\nlayout: default\nSPDX-License-Identifier: LGPL-2"
  },
  {
    "path": "docs/INCOMPATIBILITIES.md",
    "chars": 8499,
    "preview": "---\ntitle: Compatibility with SysV\ncategory: Manuals and Documentation for Users and Administrators\nlayout: default\nSPDX"
  },
  {
    "path": "docs/INHIBITOR_LOCKS.md",
    "chars": 12930,
    "preview": "---\ntitle: Inhibitor Locks\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-l"
  },
  {
    "path": "docs/INITRD_INTERFACE.md",
    "chars": 3506,
    "preview": "---\ntitle: Initrd Interface\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n\n# The "
  },
  {
    "path": "docs/JOURNAL_EXPORT_FORMATS.md",
    "chars": 8540,
    "preview": "---\ntitle: Journal Export Formats\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n#"
  },
  {
    "path": "docs/JOURNAL_FILE_FORMAT.md",
    "chars": 34797,
    "preview": "---\ntitle: Journal File Format\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Jo"
  },
  {
    "path": "docs/JOURNAL_NATIVE_PROTOCOL.md",
    "chars": 10017,
    "preview": "---\ntitle: Native Journal Protocol\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n"
  },
  {
    "path": "docs/MEMORY_PRESSURE.md",
    "chars": 11786,
    "preview": "---\ntitle: Memory Pressure Handling\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n"
  },
  {
    "path": "docs/MINIMAL_BUILDS.md",
    "chars": 2344,
    "preview": "---\ntitle: Minimal Builds\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-la"
  },
  {
    "path": "docs/MOUNT_REQUIREMENTS.md",
    "chars": 3244,
    "preview": "---\ntitle: Mount Requirements\ncategory: Booting\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Mount "
  },
  {
    "path": "docs/MY_SERVICE_CANT_GET_REATLIME.md",
    "chars": 3674,
    "preview": "---\ntitle: My Service Can't Get Realtime!\ncategory: Manuals and Documentation for Users and Administrators\nlayout: defau"
  },
  {
    "path": "docs/NETWORK_ONLINE.md",
    "chars": 13796,
    "preview": "---\ntitle: Running Services After the Network Is Up\ncategory: Networking\nlayout: default\nSPDX-License-Identifier: LGPL-2"
  },
  {
    "path": "docs/OPTIMIZATIONS.md",
    "chars": 13452,
    "preview": "---\ntitle: systemd Optimizations\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: LGPL-2."
  },
  {
    "path": "docs/PASSWORD_AGENTS.md",
    "chars": 5948,
    "preview": "---\ntitle: Password Agents\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Passwo"
  },
  {
    "path": "docs/PAX_CONTROL_GROUPS.md",
    "chars": 10221,
    "preview": "---\ntitle: Pax Controla Groupiana\ncategory: Users, Groups and Home Directories\nlayout: default\nSPDX-License-Identifier: "
  },
  {
    "path": "docs/PORTABILITY_AND_STABILITY.md",
    "chars": 20100,
    "preview": "---\ntitle: Interface Portability and Stability\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or"
  },
  {
    "path": "docs/PORTABLE_SERVICES.md",
    "chars": 19015,
    "preview": "---\ntitle: Portable Services Introduction\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n"
  },
  {
    "path": "docs/PORTING_TO_NEW_ARCHITECTURES.md",
    "chars": 2911,
    "preview": "---\ntitle: Porting to New Architectures\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-late"
  },
  {
    "path": "docs/PREDICTABLE_INTERFACE_NAMES.md",
    "chars": 7610,
    "preview": "---\ntitle: Predictable Network Interface Names\ncategory: Networking\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or"
  },
  {
    "path": "docs/PRESET.md",
    "chars": 4122,
    "preview": "---\ntitle: Presets\ncategory: Documentation for Developers\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---"
  },
  {
    "path": "docs/RANDOM_SEEDS.md",
    "chars": 21992,
    "preview": "---\ntitle: Random Seeds\ncategory: Concepts\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---\n\n# Random Seed"
  },
  {
    "path": "docs/RELEASE.md",
    "chars": 2122,
    "preview": "---\ntitle: Steps to a Successful Release\ncategory: Contributing\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-lat"
  },
  {
    "path": "docs/RESOLVED-VPNS.md",
    "chars": 15038,
    "preview": "---\ntitle: systemd-resolved and VPNs\ncategory: Networking\nlayout: default\nSPDX-License-Identifier: LGPL-2.1-or-later\n---"
  },
  {
    "path": "docs/ROOT_STORAGE_DAEMONS.md",
    "chars": 11205,
    "preview": "---\ntitle: Storage Daemons for the Root File System\ncategory: Interfaces\nlayout: default\nSPDX-License-Identifier: LGPL-2"
  }
]

// ... and 5509 more files (download for full content)

About this extraction

This page contains the full source code of the systemd/systemd-stable GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5709 files (67.8 MB), approximately 18.1M tokens, and a symbol index with 23971 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!