mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
tools: add a dedicated header file for barrier definitions
Instead of having to include xenctrl.h for getting definitions of cpu barriers, add a dedicated header for that purpose. Switch the xen-9pfsd daemon to use the new header instead of xenctrl.h. This is in preparation of making Xenstore independent from libxenctrl. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
This commit is contained in:
1 parent
826a9eb072
commit
b359d38013
4 files changed
+45
-29
No files matched your search
+4
-1
@@ -13,15 +13,18 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <stdarg.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <xenctrl.h> /* For cpu barriers. */
|
#include <xen-barrier.h>
|
||||||
#include <xen-tools/common-macros.h>
|
#include <xen-tools/common-macros.h>
|
||||||
|
|
||||||
#include "xen-9pfsd.h"
|
#include "xen-9pfsd.h"
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
/* SPDX-License-Identifier: LGPL-2.1-only */
|
||||||
|
/******************************************************************************
|
||||||
|
* xen-barrier.h
|
||||||
|
*
|
||||||
|
* Definition of CPU barriers, part of libxenctrl.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2003-2004, K A Fraser.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef XEN_BARRIER_H
|
||||||
|
#define XEN_BARRIER_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DEFINITIONS FOR CPU BARRIERS
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define xen_barrier() asm volatile ( "" : : : "memory")
|
||||||
|
|
||||||
|
#if defined(__i386__)
|
||||||
|
#define xen_mb() asm volatile ( "lock addl $0, -4(%%esp)" ::: "memory" )
|
||||||
|
#define xen_rmb() xen_barrier()
|
||||||
|
#define xen_wmb() xen_barrier()
|
||||||
|
#elif defined(__x86_64__)
|
||||||
|
#define xen_mb() asm volatile ( "lock addl $0, -32(%%rsp)" ::: "memory" )
|
||||||
|
#define xen_rmb() xen_barrier()
|
||||||
|
#define xen_wmb() xen_barrier()
|
||||||
|
#elif defined(__arm__)
|
||||||
|
#define xen_mb() asm volatile ("dmb" : : : "memory")
|
||||||
|
#define xen_rmb() asm volatile ("dmb" : : : "memory")
|
||||||
|
#define xen_wmb() asm volatile ("dmb" : : : "memory")
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
#define xen_mb() asm volatile ("dmb sy" : : : "memory")
|
||||||
|
#define xen_rmb() asm volatile ("dmb sy" : : : "memory")
|
||||||
|
#define xen_wmb() asm volatile ("dmb sy" : : : "memory")
|
||||||
|
#else
|
||||||
|
#error "Define barriers"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* XEN_BARRIER_H */
|
||||||
+1
-27
@@ -48,6 +48,7 @@
|
|||||||
#include <xen/platform.h>
|
#include <xen/platform.h>
|
||||||
|
|
||||||
#include "xentoollog.h"
|
#include "xentoollog.h"
|
||||||
|
#include "xen-barrier.h"
|
||||||
|
|
||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
#include <xen/foreign/x86_32.h>
|
#include <xen/foreign/x86_32.h>
|
||||||
@@ -61,33 +62,6 @@
|
|||||||
|
|
||||||
#define INVALID_MFN (~0UL)
|
#define INVALID_MFN (~0UL)
|
||||||
|
|
||||||
/*
|
|
||||||
* DEFINITIONS FOR CPU BARRIERS
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define xen_barrier() asm volatile ( "" : : : "memory")
|
|
||||||
|
|
||||||
#if defined(__i386__)
|
|
||||||
#define xen_mb() asm volatile ( "lock addl $0, -4(%%esp)" ::: "memory" )
|
|
||||||
#define xen_rmb() xen_barrier()
|
|
||||||
#define xen_wmb() xen_barrier()
|
|
||||||
#elif defined(__x86_64__)
|
|
||||||
#define xen_mb() asm volatile ( "lock addl $0, -32(%%rsp)" ::: "memory" )
|
|
||||||
#define xen_rmb() xen_barrier()
|
|
||||||
#define xen_wmb() xen_barrier()
|
|
||||||
#elif defined(__arm__)
|
|
||||||
#define xen_mb() asm volatile ("dmb" : : : "memory")
|
|
||||||
#define xen_rmb() asm volatile ("dmb" : : : "memory")
|
|
||||||
#define xen_wmb() asm volatile ("dmb" : : : "memory")
|
|
||||||
#elif defined(__aarch64__)
|
|
||||||
#define xen_mb() asm volatile ("dmb sy" : : : "memory")
|
|
||||||
#define xen_rmb() asm volatile ("dmb sy" : : : "memory")
|
|
||||||
#define xen_wmb() asm volatile ("dmb sy" : : : "memory")
|
|
||||||
#else
|
|
||||||
#error "Define barriers"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define XENCTRL_HAS_XC_INTERFACE 1
|
#define XENCTRL_HAS_XC_INTERFACE 1
|
||||||
/* In Xen 4.0 and earlier, xc_interface_open and xc_evtchn_open would
|
/* In Xen 4.0 and earlier, xc_interface_open and xc_evtchn_open would
|
||||||
* both return ints being the file descriptor. In 4.1 and later, they
|
* both return ints being the file descriptor. In 4.1 and later, they
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
|||||||
|
|
||||||
include Makefile.common
|
include Makefile.common
|
||||||
|
|
||||||
LIBHEADER := xenctrl.h xenctrl_compat.h
|
LIBHEADER := xenctrl.h xenctrl_compat.h xen-barrier.h
|
||||||
PKG_CONFIG_FILE := xencontrol.pc
|
PKG_CONFIG_FILE := xencontrol.pc
|
||||||
PKG_CONFIG_NAME := Xencontrol
|
PKG_CONFIG_NAME := Xencontrol
|
||||||
|
|
||||||
|
|||||||