瀏覽代碼

9p: linux: Fix a couple Linux assumptions

 - Guard Linux only headers.
 - Add qemu/statfs.h header to abstract over the which
   headers are needed for struct statfs
 - Define `ENOATTR` only if not only defined
   (it's defined in system headers on Darwin).

Signed-off-by: Keno Fischer <keno@juliacomputing.com>
[Michael Roitzsch: - Rebase for NixOS]
Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>

While it might at first appear that fsdev/virtfs-proxy-header.c would
need similar adjustment for darwin as file-op-9p here, a later patch in
this series disables virtfs-proxy-helper for non-Linux. Allowing
virtfs-proxy-helper on darwin could potentially be an additional
optimization later.

[Will Cohen: - Fix headers for Alpine
             - Integrate statfs.h back into file-op-9p.h
             - Remove superfluous header guards from file-opt-9p
             - Add note about virtfs-proxy-helper being disabled
               on non-Linux for this patch series]
Signed-off-by: Will Cohen <wwcohen@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Message-Id: <20220227223522.91937-2-wwcohen@gmail.com>
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Keno Fischer 3 年之前
父節點
當前提交
e0bd743bb2
共有 4 個文件被更改,包括 17 次插入2 次删除
  1. 8 1
      fsdev/file-op-9p.h
  2. 2 0
      hw/9pfs/9p-local.c
  3. 4 0
      hw/9pfs/9p.c
  4. 3 1
      include/qemu/xattr.h

+ 8 - 1
fsdev/file-op-9p.h

@@ -16,10 +16,17 @@
 
 
 #include <dirent.h>
 #include <dirent.h>
 #include <utime.h>
 #include <utime.h>
-#include <sys/vfs.h>
 #include "qemu-fsdev-throttle.h"
 #include "qemu-fsdev-throttle.h"
 #include "p9array.h"
 #include "p9array.h"
 
 
+#ifdef CONFIG_LINUX
+# include <sys/vfs.h>
+#endif
+#ifdef CONFIG_DARWIN
+# include <sys/param.h>
+# include <sys/mount.h>
+#endif
+
 #define SM_LOCAL_MODE_BITS    0600
 #define SM_LOCAL_MODE_BITS    0600
 #define SM_LOCAL_DIR_MODE_BITS    0700
 #define SM_LOCAL_DIR_MODE_BITS    0700
 
 

+ 2 - 0
hw/9pfs/9p-local.c

@@ -32,10 +32,12 @@
 #include "qemu/error-report.h"
 #include "qemu/error-report.h"
 #include "qemu/option.h"
 #include "qemu/option.h"
 #include <libgen.h>
 #include <libgen.h>
+#ifdef CONFIG_LINUX
 #include <linux/fs.h>
 #include <linux/fs.h>
 #ifdef CONFIG_LINUX_MAGIC_H
 #ifdef CONFIG_LINUX_MAGIC_H
 #include <linux/magic.h>
 #include <linux/magic.h>
 #endif
 #endif
+#endif
 #include <sys/ioctl.h>
 #include <sys/ioctl.h>
 
 
 #ifndef XFS_SUPER_MAGIC
 #ifndef XFS_SUPER_MAGIC

+ 4 - 0
hw/9pfs/9p.c

@@ -32,7 +32,11 @@
 #include "migration/blocker.h"
 #include "migration/blocker.h"
 #include "qemu/xxhash.h"
 #include "qemu/xxhash.h"
 #include <math.h>
 #include <math.h>
+#ifdef CONFIG_LINUX
 #include <linux/limits.h>
 #include <linux/limits.h>
+#else
+#include <limits.h>
+#endif
 
 
 int open_fd_hw;
 int open_fd_hw;
 int total_open_fd;
 int total_open_fd;

+ 3 - 1
include/qemu/xattr.h

@@ -22,7 +22,9 @@
 #ifdef CONFIG_LIBATTR
 #ifdef CONFIG_LIBATTR
 #  include <attr/xattr.h>
 #  include <attr/xattr.h>
 #else
 #else
-#  define ENOATTR ENODATA
+#  if !defined(ENOATTR)
+#    define ENOATTR ENODATA
+#  endif
 #  include <sys/xattr.h>
 #  include <sys/xattr.h>
 #endif
 #endif