From 52ee9ba13d9550925df1214b30cbd57b4ec7eff0 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 18 Apr 2025 21:37:13 +0200 Subject: [PATCH] home: Remove circular header dependencies --- src/home/homed-home-bus.c | 1 + src/home/homed-home.c | 1 + src/home/homed-home.h | 9 ++++----- src/home/homed-manager.h | 6 ++---- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/home/homed-home-bus.c b/src/home/homed-home-bus.c index 2214496dc09..903644ffd26 100644 --- a/src/home/homed-home-bus.c +++ b/src/home/homed-home-bus.c @@ -10,6 +10,7 @@ #include "homed-bus.h" #include "homed-home-bus.h" #include "homed-home.h" +#include "homed-manager.h" #include "log.h" #include "strv.h" #include "user-record-util.h" diff --git a/src/home/homed-home.c b/src/home/homed-home.c index 0b61b08abf8..6f0bcc65c39 100644 --- a/src/home/homed-home.c +++ b/src/home/homed-home.c @@ -21,6 +21,7 @@ #include "home-util.h" #include "homed-home.h" #include "homed-home-bus.h" +#include "homed-manager.h" #include "json-util.h" #include "log.h" #include "memfd-util.h" diff --git a/src/home/homed-home.h b/src/home/homed-home.h index dfd64461fc8..7d29e554a33 100644 --- a/src/home/homed-home.h +++ b/src/home/homed-home.h @@ -1,10 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -typedef struct Home Home; - #include "hashmap.h" -#include "homed-manager.h" #include "homed-operation.h" #include "list.h" #include "ordered-set.h" @@ -12,6 +9,8 @@ typedef struct Home Home; #include "stat-util.h" #include "user-record.h" +typedef struct Manager Manager; + typedef enum HomeState { HOME_UNFIXATED, /* home exists, but local record does not */ HOME_ABSENT, /* local record exists, but home does not */ @@ -108,7 +107,7 @@ static inline bool HOME_STATE_MAY_RETRY_DEACTIVATE(HomeState state) { HOME_AUTHENTICATING_FOR_ACQUIRE); } -struct Home { +typedef struct Home { Manager *manager; /* The fields this record can be looked up by. This is kinda redundant, as the same information is @@ -180,7 +179,7 @@ struct Home { /* Whether a rebalance operation is pending */ bool rebalance_pending; -}; +} Home; int home_new(Manager *m, UserRecord *hr, const char *sysfs, Home **ret); Home *home_free(Home *h); diff --git a/src/home/homed-manager.h b/src/home/homed-manager.h index 2b4bd38adb3..f8490a56399 100644 --- a/src/home/homed-manager.h +++ b/src/home/homed-manager.h @@ -8,8 +8,6 @@ #include "sd-event.h" #include "sd-varlink.h" -typedef struct Manager Manager; - #include "hashmap.h" #include "homed-home.h" @@ -25,7 +23,7 @@ typedef enum RebalanceState { _REBALANCE_STATE_INVALID = -1, } RebalanceState; -struct Manager { +typedef struct Manager { sd_event *event; sd_bus *bus; @@ -68,7 +66,7 @@ struct Manager { * running a rebalancing operation for. 'rebalance_queued_method_calls' are the method calls that * have been queued since then and that we'll operate on once we complete the current run. */ Set *rebalance_pending_method_calls, *rebalance_queued_method_calls; -}; +} Manager; int manager_new(Manager **ret); Manager* manager_free(Manager *m); -- 2.47.3