xref: /unit/src/nxt_clone.h (revision 2629:116cb969f351)
11182St.nateldemoura@f5.com /*
21182St.nateldemoura@f5.com  * Copyright (C) Igor Sysoev
31182St.nateldemoura@f5.com  * Copyright (C) NGINX, Inc.
41182St.nateldemoura@f5.com  */
51182St.nateldemoura@f5.com 
61488St.nateldemoura@f5.com #ifndef _NXT_CLONE_H_INCLUDED_
71488St.nateldemoura@f5.com #define _NXT_CLONE_H_INCLUDED_
81182St.nateldemoura@f5.com 
91182St.nateldemoura@f5.com 
101306St.nateldemoura@f5.com #if (NXT_HAVE_CLONE_NEWUSER)
111306St.nateldemoura@f5.com 
122628Sa.clayton@nginx.com typedef int64_t                 nxt_cred_t;
132628Sa.clayton@nginx.com 
141306St.nateldemoura@f5.com typedef struct {
15*2629Sa.clayton@nginx.com     nxt_cred_t                  container;
16*2629Sa.clayton@nginx.com     nxt_cred_t                  host;
17*2629Sa.clayton@nginx.com     nxt_cred_t                  size;
181306St.nateldemoura@f5.com } nxt_clone_map_entry_t;
191306St.nateldemoura@f5.com 
201306St.nateldemoura@f5.com typedef struct {
211306St.nateldemoura@f5.com     nxt_uint_t                  size;
221306St.nateldemoura@f5.com     nxt_clone_map_entry_t       *map;
231306St.nateldemoura@f5.com } nxt_clone_credential_map_t;
241306St.nateldemoura@f5.com 
251306St.nateldemoura@f5.com #endif
261306St.nateldemoura@f5.com 
271306St.nateldemoura@f5.com typedef struct {
281306St.nateldemoura@f5.com     nxt_int_t                   flags;
291182St.nateldemoura@f5.com 
301182St.nateldemoura@f5.com #if (NXT_HAVE_CLONE_NEWUSER)
311306St.nateldemoura@f5.com     nxt_clone_credential_map_t  uidmap;
321306St.nateldemoura@f5.com     nxt_clone_credential_map_t  gidmap;
331306St.nateldemoura@f5.com #endif
341306St.nateldemoura@f5.com 
351306St.nateldemoura@f5.com } nxt_clone_t;
361306St.nateldemoura@f5.com 
371306St.nateldemoura@f5.com 
381488St.nateldemoura@f5.com #define nxt_is_clone_flag_set(flags, test)                                    \
391488St.nateldemoura@f5.com     ((flags & CLONE_##test) == CLONE_##test)
401306St.nateldemoura@f5.com 
411488St.nateldemoura@f5.com 
421488St.nateldemoura@f5.com #if (NXT_HAVE_CLONE_NEWUSER)
431306St.nateldemoura@f5.com 
441306St.nateldemoura@f5.com NXT_EXPORT nxt_int_t nxt_clone_credential_map(nxt_task_t *task, pid_t pid,
451306St.nateldemoura@f5.com     nxt_credential_t *creds, nxt_clone_t *clone);
461306St.nateldemoura@f5.com NXT_EXPORT nxt_int_t nxt_clone_vldt_credential_uidmap(nxt_task_t *task,
471306St.nateldemoura@f5.com     nxt_clone_credential_map_t *map, nxt_credential_t *creds);
481306St.nateldemoura@f5.com NXT_EXPORT nxt_int_t nxt_clone_vldt_credential_gidmap(nxt_task_t *task,
491306St.nateldemoura@f5.com     nxt_clone_credential_map_t *map, nxt_credential_t *creds);
501306St.nateldemoura@f5.com 
511182St.nateldemoura@f5.com #endif
521182St.nateldemoura@f5.com 
531488St.nateldemoura@f5.com 
541488St.nateldemoura@f5.com #endif /* _NXT_CLONE_H_INCLUDED_ */
55