3#define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 17) 
   10static void print_conn_info(
const char *prefix, 
struct fuse_conn_info *conn)
 
   12        printf(
"%s: want=0x%" PRIx32 
" want_ext=0x%" PRIx64 
"\n", prefix,
 
   20        conn->
want &= ~FUSE_CAP_SPLICE_READ;
 
   25        uint64_t want_ext_default = conn->
want_ext;
 
   26        uint32_t want_default = fuse_lower_32_bits(conn->
want_ext);
 
   32        conn->
want = want_default;
 
   34        application_init(conn);
 
   36        rc = convert_to_conn_want_ext(conn, want_ext_default, want_default);
 
   49        print_conn_info(
"Initial state", conn);
 
   51        uint64_t want_ext_default = conn->
want_ext;
 
   52        uint32_t want_default = fuse_lower_32_bits(conn->
want_ext);
 
   55        conn->
want = want_default;
 
   58        test_fuse_fs_init(conn);
 
   60        rc = convert_to_conn_want_ext(conn, want_ext_default, want_default);
 
   77        print_conn_info(
"After init", conn);
 
   80static void test_want_conversion_basic(
void)
 
   84        printf(
"\nTesting basic want conversion:\n");
 
   86        print_conn_info(
"After init", &conn);
 
   89static void test_want_conversion_conflict(
void)
 
   94        printf(
"\nTesting want conversion conflict:\n");
 
  104        print_conn_info(
"Test conflict initial", &conn);
 
  107        uint64_t want_ext_default_ll = conn.
want_ext;
 
  108        uint32_t want_default_ll = fuse_lower_32_bits(want_ext_default_ll);
 
  112        conn.
want &= ~FUSE_CAP_SPLICE_READ; 
 
  114        rc = convert_to_conn_want_ext(&conn, want_ext_default_ll,
 
  116        assert(rc == -EINVAL);
 
  117        print_conn_info(
"Test conflict after", &conn);
 
  119        printf(
"Want conversion conflict test passed\n");
 
  122static void test_want_conversion_high_bits(
void)
 
  127        printf(
"\nTesting want conversion high bits preservation:\n");
 
  132        print_conn_info(
"Test high bits initial", &conn);
 
  134        uint64_t want_ext_default_ll = conn.
want_ext;
 
  135        uint32_t want_default_ll = fuse_lower_32_bits(want_ext_default_ll);
 
  137        rc = convert_to_conn_want_ext(&conn, want_ext_default_ll,
 
  141        print_conn_info(
"Test high bits after", &conn);
 
  143        printf(
"Want conversion high bits test passed\n");
 
  148        test_want_conversion_basic();
 
  149        test_want_conversion_conflict();
 
  150        test_want_conversion_high_bits();
 
#define FUSE_CAP_SPLICE_READ
#define FUSE_CAP_ATOMIC_O_TRUNC
#define FUSE_CAP_ASYNC_READ
#define FUSE_CAP_SPLICE_WRITE
#define FUSE_CAP_EXPORT_SUPPORT
#define FUSE_CAP_POSIX_LOCKS
#define FUSE_CAP_SPLICE_MOVE
#define FUSE_CAP_FLOCK_LOCKS