X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fbasic%2Fvirt.h;h=f448f4e8fbc0afe8190c2f7e1f73a8ba18a4cba5;hb=70f7776c6e8c549e13adf858c57fe339583c7cec;hp=4ec33946cce6b6cc56e3079c255a1d7250aafaff;hpb=1cfc78c91965df340cdde100ad6cb3ed50b28927;p=elogind.git diff --git a/src/basic/virt.h b/src/basic/virt.h index 4ec33946c..f448f4e8f 100644 --- a/src/basic/virt.h +++ b/src/basic/virt.h @@ -1,9 +1,9 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ +#pragma once /*** This file is part of systemd. - Copyright 2014 Tom Gundersen + Copyright 2011 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 @@ -19,49 +19,60 @@ along with systemd; If not, see . ***/ -#pragma once - -typedef struct VxLan VxLan; - -#include "networkd-netdev.h" - -#include "in-addr-util.h" - -#define VXLAN_VID_MAX (1u << 24) - 1 - -struct VxLan { - NetDev meta; - - uint64_t id; +#include + +#include "macro.h" + +enum { + VIRTUALIZATION_NONE = 0, + + VIRTUALIZATION_VM_FIRST, + VIRTUALIZATION_KVM = VIRTUALIZATION_VM_FIRST, + VIRTUALIZATION_QEMU, + VIRTUALIZATION_BOCHS, + VIRTUALIZATION_XEN, + VIRTUALIZATION_UML, + VIRTUALIZATION_VMWARE, + VIRTUALIZATION_ORACLE, + VIRTUALIZATION_MICROSOFT, + VIRTUALIZATION_ZVM, + VIRTUALIZATION_PARALLELS, + VIRTUALIZATION_BHYVE, + VIRTUALIZATION_VM_OTHER, + VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER, + + VIRTUALIZATION_CONTAINER_FIRST, + VIRTUALIZATION_SYSTEMD_NSPAWN = VIRTUALIZATION_CONTAINER_FIRST, + VIRTUALIZATION_LXC_LIBVIRT, + VIRTUALIZATION_LXC, + VIRTUALIZATION_OPENVZ, + VIRTUALIZATION_DOCKER, + VIRTUALIZATION_RKT, + VIRTUALIZATION_CONTAINER_OTHER, + VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER, + + _VIRTUALIZATION_MAX, + _VIRTUALIZATION_INVALID = -1 +}; - int family; - union in_addr_union group; +#if 0 /// UNNEEDED by elogind +static inline bool VIRTUALIZATION_IS_VM(int x) { + return x >= VIRTUALIZATION_VM_FIRST && x <= VIRTUALIZATION_VM_LAST; +} - unsigned tos; - unsigned ttl; +static inline bool VIRTUALIZATION_IS_CONTAINER(int x) { + return x >= VIRTUALIZATION_CONTAINER_FIRST && x <= VIRTUALIZATION_CONTAINER_LAST; +} - usec_t fdb_ageing; +int detect_vm(void); +#endif // 0 +int detect_container(void); +#if 0 /// UNNEEDED by elogind +int detect_virtualization(void); - bool learning; - bool arp_proxy; - bool route_short_circuit; - bool l2miss; - bool l3miss; - bool udpcsum; - bool udp6zerocsumtx; - bool udp6zerocsumrx; - bool group_policy; -}; +int running_in_userns(void); +#endif // 0 +int running_in_chroot(void); -extern const NetDevVTable vxlan_vtable; - -int config_parse_vxlan_group_address(const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata); +const char *virtualization_to_string(int v) _const_; +int virtualization_from_string(const char *s) _pure_;