X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Fvirt.h;h=622742dfe6fc70fd06bf2fe41baaf773c23b0167;hp=4ec33946cce6b6cc56e3079c255a1d7250aafaff;hb=eaca07ccfdf5d7dabc50afc7e539c2413dd69d3e;hpb=1cfc78c91965df340cdde100ad6cb3ed50b28927 diff --git a/src/basic/virt.h b/src/basic/virt.h index 4ec33946c..622742dfe 100644 --- a/src/basic/virt.h +++ b/src/basic/virt.h @@ -1,9 +1,11 @@ /*-*- 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 +21,54 @@ 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_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; +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); +int detect_container(void); +// UNNEEDED 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_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_;