| /* SPDX-License-Identifier: LGPL-2.1-or-later */ | 
 | #pragma once | 
 |  | 
 | #include "user-record.h" | 
 | #include "group-record.h" | 
 | #include "nspawn-mount.h" | 
 |  | 
 | typedef struct BindUserData { | 
 |         /* The host's user/group records */ | 
 |         UserRecord *host_user; | 
 |         GroupRecord *host_group; | 
 |  | 
 |         /* The mapped records to place into the container */ | 
 |         UserRecord *payload_user; | 
 |         GroupRecord *payload_group; | 
 | } BindUserData; | 
 |  | 
 | typedef struct BindUserContext { | 
 |         BindUserData *data; | 
 |         size_t n_data; | 
 | } BindUserContext; | 
 |  | 
 | BindUserContext* bind_user_context_free(BindUserContext *c); | 
 |  | 
 | DEFINE_TRIVIAL_CLEANUP_FUNC(BindUserContext*, bind_user_context_free); | 
 |  | 
 | int bind_user_prepare(const char *directory, char **bind_user, uid_t uid_shift, uid_t uid_range, CustomMount **custom_mounts, size_t *n_custom_mounts, BindUserContext **ret); | 
 |  | 
 | int bind_user_setup(const BindUserContext *c, const char *root); |