build-sys: move more files from core/ to share/ that are generic enough
This commit is contained in:
@@ -1,6 +1,2 @@
|
||||
/syscall-from-name.gperf
|
||||
/syscall-from-name.h
|
||||
/syscall-list.txt
|
||||
/syscall-to-name.h
|
||||
/macros.systemd
|
||||
/systemd.pc
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
/*
|
||||
* initreq.h Interface to talk to init through /dev/initctl.
|
||||
*
|
||||
* Copyright (C) 1995-2004 Miquel van Smoorenburg
|
||||
*
|
||||
* 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 of the License, or (at your option) any later version.
|
||||
*
|
||||
* Version: @(#)initreq.h 1.28 31-Mar-2004 MvS
|
||||
*
|
||||
*/
|
||||
#ifndef _INITREQ_H
|
||||
#define _INITREQ_H
|
||||
|
||||
#include <sys/param.h>
|
||||
|
||||
#if defined(__FreeBSD_kernel__)
|
||||
# define INIT_FIFO "/etc/.initctl"
|
||||
#else
|
||||
# define INIT_FIFO "/dev/initctl"
|
||||
#endif
|
||||
|
||||
#define INIT_MAGIC 0x03091969
|
||||
#define INIT_CMD_START 0
|
||||
#define INIT_CMD_RUNLVL 1
|
||||
#define INIT_CMD_POWERFAIL 2
|
||||
#define INIT_CMD_POWERFAILNOW 3
|
||||
#define INIT_CMD_POWEROK 4
|
||||
#define INIT_CMD_BSD 5
|
||||
#define INIT_CMD_SETENV 6
|
||||
#define INIT_CMD_UNSETENV 7
|
||||
|
||||
#define INIT_CMD_CHANGECONS 12345
|
||||
|
||||
#ifdef MAXHOSTNAMELEN
|
||||
# define INITRQ_HLEN MAXHOSTNAMELEN
|
||||
#else
|
||||
# define INITRQ_HLEN 64
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is what BSD 4.4 uses when talking to init.
|
||||
* Linux doesn't use this right now.
|
||||
*/
|
||||
struct init_request_bsd {
|
||||
char gen_id[8]; /* Beats me.. telnetd uses "fe" */
|
||||
char tty_id[16]; /* Tty name minus /dev/tty */
|
||||
char host[INITRQ_HLEN]; /* Hostname */
|
||||
char term_type[16]; /* Terminal type */
|
||||
int signal; /* Signal to send */
|
||||
int pid; /* Process to send to */
|
||||
char exec_name[128]; /* Program to execute */
|
||||
char reserved[128]; /* For future expansion. */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Because of legacy interfaces, "runlevel" and "sleeptime"
|
||||
* aren't in a separate struct in the union.
|
||||
*
|
||||
* The weird sizes are because init expects the whole
|
||||
* struct to be 384 bytes.
|
||||
*/
|
||||
struct init_request {
|
||||
int magic; /* Magic number */
|
||||
int cmd; /* What kind of request */
|
||||
int runlevel; /* Runlevel to change to */
|
||||
int sleeptime; /* Time between TERM and KILL */
|
||||
union {
|
||||
struct init_request_bsd bsd;
|
||||
char data[368];
|
||||
} i;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,45 +0,0 @@
|
||||
#ifndef _LINUX_SECUREBITS_H
|
||||
#define _LINUX_SECUREBITS_H 1
|
||||
|
||||
/* This is minimal version of Linux' linux/securebits.h header file,
|
||||
* which is licensed GPL2 */
|
||||
|
||||
#define SECUREBITS_DEFAULT 0x00000000
|
||||
|
||||
/* When set UID 0 has no special privileges. When unset, we support
|
||||
inheritance of root-permissions and suid-root executable under
|
||||
compatibility mode. We raise the effective and inheritable bitmasks
|
||||
*of the executable file* if the effective uid of the new process is
|
||||
0. If the real uid is 0, we raise the effective (legacy) bit of the
|
||||
executable file. */
|
||||
#define SECURE_NOROOT 0
|
||||
#define SECURE_NOROOT_LOCKED 1 /* make bit-0 immutable */
|
||||
|
||||
/* When set, setuid to/from uid 0 does not trigger capability-"fixup".
|
||||
When unset, to provide compatibility with old programs relying on
|
||||
set*uid to gain/lose privilege, transitions to/from uid 0 cause
|
||||
capabilities to be gained/lost. */
|
||||
#define SECURE_NO_SETUID_FIXUP 2
|
||||
#define SECURE_NO_SETUID_FIXUP_LOCKED 3 /* make bit-2 immutable */
|
||||
|
||||
/* When set, a process can retain its capabilities even after
|
||||
transitioning to a non-root user (the set-uid fixup suppressed by
|
||||
bit 2). Bit-4 is cleared when a process calls exec(); setting both
|
||||
bit 4 and 5 will create a barrier through exec that no exec()'d
|
||||
child can use this feature again. */
|
||||
#define SECURE_KEEP_CAPS 4
|
||||
#define SECURE_KEEP_CAPS_LOCKED 5 /* make bit-4 immutable */
|
||||
|
||||
/* Each securesetting is implemented using two bits. One bit specifies
|
||||
whether the setting is on or off. The other bit specify whether the
|
||||
setting is locked or not. A setting which is locked cannot be
|
||||
changed from user-level. */
|
||||
#define issecure_mask(X) (1 << (X))
|
||||
#define issecure(X) (issecure_mask(X) & current_cred_xxx(securebits))
|
||||
|
||||
#define SECURE_ALL_BITS (issecure_mask(SECURE_NOROOT) | \
|
||||
issecure_mask(SECURE_NO_SETUID_FIXUP) | \
|
||||
issecure_mask(SECURE_KEEP_CAPS))
|
||||
#define SECURE_ALL_LOCKS (SECURE_ALL_BITS << 1)
|
||||
|
||||
#endif /* !_LINUX_SECUREBITS_H */
|
||||
@@ -1,121 +0,0 @@
|
||||
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2010 Lennart Poettering
|
||||
|
||||
systemd 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.
|
||||
|
||||
systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
#define SPECIAL_DEFAULT_TARGET "default.target"
|
||||
|
||||
/* Shutdown targets */
|
||||
#define SPECIAL_UMOUNT_TARGET "umount.target"
|
||||
/* This is not really intended to be started by directly. This is
|
||||
* mostly so that other targets (reboot/halt/poweroff) can depend on
|
||||
* it to bring all services down that want to be brought down on
|
||||
* system shutdown. */
|
||||
#define SPECIAL_SHUTDOWN_TARGET "shutdown.target"
|
||||
#define SPECIAL_HALT_TARGET "halt.target"
|
||||
#define SPECIAL_POWEROFF_TARGET "poweroff.target"
|
||||
#define SPECIAL_REBOOT_TARGET "reboot.target"
|
||||
#define SPECIAL_KEXEC_TARGET "kexec.target"
|
||||
#define SPECIAL_EXIT_TARGET "exit.target"
|
||||
#define SPECIAL_SUSPEND_TARGET "suspend.target"
|
||||
#define SPECIAL_HIBERNATE_TARGET "hibernate.target"
|
||||
#define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target"
|
||||
|
||||
/* Special boot targets */
|
||||
#define SPECIAL_RESCUE_TARGET "rescue.target"
|
||||
#define SPECIAL_EMERGENCY_TARGET "emergency.target"
|
||||
|
||||
/* Early boot targets */
|
||||
#define SPECIAL_SYSINIT_TARGET "sysinit.target"
|
||||
#define SPECIAL_SOCKETS_TARGET "sockets.target"
|
||||
#define SPECIAL_TIMERS_TARGET "timers.target"
|
||||
#define SPECIAL_PATHS_TARGET "paths.target"
|
||||
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
|
||||
#define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
|
||||
#define SPECIAL_INITRD_FS_TARGET "initrd-fs.target"
|
||||
#define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target"
|
||||
#define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */
|
||||
#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
|
||||
#define SPECIAL_SWAP_TARGET "swap.target"
|
||||
#define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target"
|
||||
#define SPECIAL_BASIC_TARGET "basic.target"
|
||||
|
||||
/* LSB compatibility */
|
||||
#define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */
|
||||
#define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */
|
||||
#define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */
|
||||
#define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */
|
||||
|
||||
/*
|
||||
* Rules regarding adding further high level targets like the above:
|
||||
*
|
||||
* - Be conservative, only add more of these when we really need
|
||||
* them. We need strong usecases for further additions.
|
||||
*
|
||||
* - When there can be multiple implementations running side-by-side,
|
||||
* it needs to be a .target unit which can pull in all
|
||||
* implementations.
|
||||
*
|
||||
* - If something can be implemented with socket activation, and
|
||||
* without, it needs to be a .target unit, so that it can pull in
|
||||
* the appropriate unit.
|
||||
*
|
||||
* - Otherwise, it should be a .service unit.
|
||||
*
|
||||
* - In some cases it is OK to have both a .service and a .target
|
||||
* unit, i.e. if there can be multiple parallel implementations, but
|
||||
* only one is the "system" one. Example: syslog.
|
||||
*
|
||||
* Or to put this in other words: .service symlinks can be used to
|
||||
* arbitrate between multiple implementations if there can be only one
|
||||
* of a kind. .target units can be used to support multiple
|
||||
* implementations that can run side-by-side.
|
||||
*/
|
||||
|
||||
/* Magic early boot services */
|
||||
#define SPECIAL_FSCK_SERVICE "systemd-fsck@.service"
|
||||
#define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck.service"
|
||||
#define SPECIAL_QUOTAON_SERVICE "quotaon.service"
|
||||
#define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service"
|
||||
|
||||
/* Services systemd relies on */
|
||||
#define SPECIAL_DBUS_SERVICE "dbus.service"
|
||||
#define SPECIAL_DBUS_SOCKET "dbus.socket"
|
||||
#define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket"
|
||||
#define SPECIAL_JOURNALD_SERVICE "systemd-journald.service"
|
||||
|
||||
/* Magic init signals */
|
||||
#define SPECIAL_KBREQUEST_TARGET "kbrequest.target"
|
||||
#define SPECIAL_SIGPWR_TARGET "sigpwr.target"
|
||||
#define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target"
|
||||
|
||||
/* For SysV compatibility. Usually an alias for a saner target. On
|
||||
* SysV-free systems this doesn't exist. */
|
||||
#define SPECIAL_RUNLEVEL2_TARGET "runlevel2.target"
|
||||
#define SPECIAL_RUNLEVEL3_TARGET "runlevel3.target"
|
||||
#define SPECIAL_RUNLEVEL4_TARGET "runlevel4.target"
|
||||
#define SPECIAL_RUNLEVEL5_TARGET "runlevel5.target"
|
||||
|
||||
/* Where we add all our system units, users and machines by default */
|
||||
#define SPECIAL_SYSTEM_SLICE "system.slice"
|
||||
#define SPECIAL_USER_SLICE "user.slice"
|
||||
#define SPECIAL_MACHINE_SLICE "machine.slice"
|
||||
#define SPECIAL_ROOT_SLICE "-.slice"
|
||||
@@ -1,56 +0,0 @@
|
||||
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2012 Lennart Poettering
|
||||
|
||||
systemd 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.
|
||||
|
||||
systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
#include <sys/syscall.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "util.h"
|
||||
#include "syscall-list.h"
|
||||
|
||||
static const struct syscall_name* lookup_syscall(register const char *str,
|
||||
register unsigned int len);
|
||||
|
||||
#include "syscall-to-name.h"
|
||||
#include "syscall-from-name.h"
|
||||
|
||||
const char *syscall_to_name(int id) {
|
||||
id = SYSCALL_TO_INDEX(id);
|
||||
if (id < 0 || id >= (int) ELEMENTSOF(syscall_names))
|
||||
return NULL;
|
||||
|
||||
return syscall_names[id];
|
||||
}
|
||||
|
||||
int syscall_from_name(const char *name) {
|
||||
const struct syscall_name *sc;
|
||||
|
||||
assert(name);
|
||||
|
||||
sc = lookup_syscall(name, strlen(name));
|
||||
if (!sc)
|
||||
return -1;
|
||||
|
||||
return sc->id;
|
||||
}
|
||||
|
||||
int syscall_max(void) {
|
||||
return ELEMENTSOF(syscall_names);
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2012 Lennart Poettering
|
||||
|
||||
systemd 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.
|
||||
|
||||
systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
#if defined __x86_64__ && defined __ILP32__
|
||||
/* The x32 ABI defines all of its syscalls with bit 30 set, which causes
|
||||
issues when attempting to use syscalls as simple indices into an array.
|
||||
Instead, use the syscall id & ~SYSCALL_MASK as the index, and | the
|
||||
internal id with the syscall mask as needed.
|
||||
*/
|
||||
#include <asm/unistd.h>
|
||||
#define SYSCALL_TO_INDEX(x) ((x) & ~__X32_SYSCALL_BIT)
|
||||
#define INDEX_TO_SYSCALL(x) ((x) | __X32_SYSCALL_BIT)
|
||||
#else
|
||||
#define SYSCALL_TO_INDEX(x) (x)
|
||||
#define INDEX_TO_SYSCALL(x) (x)
|
||||
#endif
|
||||
|
||||
const char *syscall_to_name(int id);
|
||||
int syscall_from_name(const char *name);
|
||||
|
||||
int syscall_max(void);
|
||||
Reference in New Issue
Block a user