GCC Code Coverage Report


Directory: cvmfs/
File: cvmfs/duplex_fuse.h
Date: 2024-04-21 02:33:16
Exec Total Coverage
Lines: 6 6 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 /**
2 * This file is part of the CernVM File System.
3 */
4
5 #ifndef CVMFS_DUPLEX_FUSE_H_
6 #define CVMFS_DUPLEX_FUSE_H_
7
8 #ifdef CVMFS_LIBCVMFS
9 // Unit tests
10 #include <sys/types.h>
11 #define FUSE_VERSION 29
12 #define FUSE_ROOT_ID 1
13 extern "C" {
14 typedef unsigned long fuse_ino_t; // NOLINT
15 // Empty structs have different sizes in C and C++, hence the dummy int
16 struct fuse_chan { int dummy; };
17 struct fuse_lowlevel_ops { int dummy; }; // for loader.h
18 enum fuse_expire_flags {
19 FUSE_LL_EXPIRE_ONLY = (1 << 0),
20 };
21
22
23 // Defined in t_fuse_evict.cc
24 extern unsigned fuse_lowlevel_notify_inval_inode_cnt;
25 extern unsigned fuse_lowlevel_notify_inval_entry_cnt;
26 1536 static int __attribute__((used)) fuse_lowlevel_notify_inval_inode(
27 void *, unsigned /*fuse_ino_t*/, off_t, off_t) // NOLINT (ulong from fuse)
28 {
29 1536 fuse_lowlevel_notify_inval_inode_cnt++;
30 1536 return -1;
31 }
32 1280 static int __attribute__((used)) fuse_lowlevel_notify_inval_entry(
33 struct fuse_chan *, fuse_ino_t, const char *, size_t) // NOLINT
34 {
35 1280 fuse_lowlevel_notify_inval_entry_cnt++;
36 1280 return -1;
37 }
38 }
39 #define CVMFS_USE_LIBFUSE 2
40 #else // CVMFS_LIBCVMFS
41 #ifndef CVMFS_USE_LIBFUSE
42 #error "Build system error: CVMFS_USE_LIBFUSE unset"
43 #endif
44
45 #if CVMFS_USE_LIBFUSE == 2
46 #define FUSE_USE_VERSION 26
47 #include <fuse/fuse_lowlevel.h>
48 #include <fuse/fuse_opt.h>
49 #if(FUSE_VERSION < 28)
50 #include <cstdlib>
51 extern "C" {
52 static int __attribute__((used)) fuse_lowlevel_notify_inval_entry(
53 void *, unsigned long, const char *, size_t) // NOLINT
54 {
55 abort();
56 }
57 static int __attribute__((used)) fuse_lowlevel_notify_inval_inode(
58 void *, fuse_ino_t, off_t, off_t) // NOLINT
59 {
60 abort();
61 }
62 }
63 #endif // FUSE_VERSION < 28
64 #else
65 // CVMFS_USE_LIBFUSE == 3
66 #ifdef CVMFS_ENABLE_FUSE3_LOOP_CONFIG
67 #define FUSE_USE_VERSION 312
68 #else
69 #define FUSE_USE_VERSION 31
70 #endif
71 #include <fuse3/fuse.h>
72 #include <fuse3/fuse_lowlevel.h>
73 #include <fuse3/fuse_opt.h>
74 #endif
75 #endif
76
77 #endif // CVMFS_DUPLEX_FUSE_H_
78