mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-06 07:11:51 +00:00
raw_syscalls: add lxc_raw_getpid()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
parent
38e5c2dbba
commit
d7b58715b6
@ -342,13 +342,16 @@ if ENABLE_COMMANDS
|
||||
# Binaries shipping with liblxc
|
||||
init_lxc_SOURCES = cmd/lxc_init.c \
|
||||
initutils.c initutils.h \
|
||||
raw_syscalls.c raw_syscalls.h \
|
||||
string_utils.c string_utils.h
|
||||
lxc_monitord_SOURCES = cmd/lxc_monitord.c
|
||||
lxc_monitord_SOURCES = cmd/lxc_monitord.c \
|
||||
raw_syscalls.c raw_syscalls.h
|
||||
lxc_user_nic_SOURCES = cmd/lxc_user_nic.c \
|
||||
../include/netns_ifaddrs.c ../include/netns_ifaddrs.h \
|
||||
log.c log.h \
|
||||
namespace.c namespace.h \
|
||||
network.c network.h \
|
||||
raw_syscalls.c raw_syscalls.h \
|
||||
parse.c parse.h
|
||||
lxc_usernsexec_SOURCES = cmd/lxc_usernsexec.c \
|
||||
conf.c conf.h \
|
||||
|
@ -37,6 +37,7 @@
|
||||
|
||||
#include "config.h"
|
||||
#include "log.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "utils.h"
|
||||
|
||||
#ifndef HAVE_STRLCPY
|
||||
|
@ -46,8 +46,8 @@
|
||||
#include "error.h"
|
||||
#include "initutils.h"
|
||||
#include "log.h"
|
||||
#include "namespace.h"
|
||||
#include "parse.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "string_utils.h"
|
||||
|
||||
/* option keys for long only options */
|
||||
|
@ -49,6 +49,7 @@
|
||||
#include "log.h"
|
||||
#include "mainloop.h"
|
||||
#include "monitor.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "utils.h"
|
||||
|
||||
#define CLIENTFDS_CHUNK 64
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "log.h"
|
||||
#include "lsm.h"
|
||||
#include "parse.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "utils.h"
|
||||
|
||||
lxc_log_define(apparmor, lsm);
|
||||
|
@ -65,6 +65,7 @@
|
||||
#include "namespace.h"
|
||||
#include "network.h"
|
||||
#include "parse.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "start.h"
|
||||
#include "state.h"
|
||||
#include "storage.h"
|
||||
|
@ -140,13 +140,4 @@ extern int lxc_namespace_2_ns_idx(const char *namespace);
|
||||
extern int lxc_namespace_2_std_identifiers(char *namespaces);
|
||||
extern int lxc_fill_namespace_flags(char *flaglist, int *flags);
|
||||
|
||||
/**
|
||||
* Because of older glibc's pid cache (up to 2.25) whenever clone() is called
|
||||
* the child must must retrieve it's own pid via lxc_raw_getpid().
|
||||
*/
|
||||
static inline pid_t lxc_raw_getpid(void)
|
||||
{
|
||||
return (pid_t) syscall(SYS_getpid);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -56,6 +56,7 @@
|
||||
#include "macro.h"
|
||||
#include "network.h"
|
||||
#include "nl.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "utils.h"
|
||||
|
||||
#ifndef HAVE_STRLCPY
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/*
|
||||
* lxc_raw_clone() - create a new process
|
||||
@ -73,4 +74,13 @@ extern pid_t lxc_raw_clone_cb(int (*fn)(void *), void *args, unsigned long flags
|
||||
extern int lxc_raw_execveat(int dirfd, const char *pathname, char *const argv[],
|
||||
char *const envp[], int flags);
|
||||
|
||||
/*
|
||||
* Because of older glibc's pid cache (up to 2.25) whenever clone() is called
|
||||
* the child must must retrieve it's own pid via lxc_raw_getpid().
|
||||
*/
|
||||
static inline pid_t lxc_raw_getpid(void)
|
||||
{
|
||||
return (pid_t)syscall(SYS_getpid);
|
||||
}
|
||||
|
||||
#endif /* __LXC_RAW_SYSCALL_H */
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "file_utils.h"
|
||||
#include "initutils.h"
|
||||
#include "macro.h"
|
||||
#include "raw_syscalls.h"
|
||||
#include "string_utils.h"
|
||||
|
||||
#ifdef HAVE_LINUX_MEMFD_H
|
||||
|
Loading…
Reference in New Issue
Block a user