construct/include/ircd/fs/support.h

43 lines
1.3 KiB
C++

// Matrix Construct
//
// Copyright (C) Matrix Construct Developers, Authors & Contributors
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#pragma once
#define HAVE_IRCD_FS_SUPPORT_H
namespace ircd::fs::support
{
// Runtime-gauged support indicators
extern const bool pwritev2;
extern const bool preadv2;
extern const bool append;
extern const bool nowait;
extern const bool hipri;
extern const bool sync;
extern const bool dsync;
extern const bool rwh_write_life;
extern const bool rwf_write_life;
extern const bool aio;
extern const bool aio_fsync;
extern const bool aio_fdsync;
extern const bool iou;
// Test if O_DIRECT supported at target path
bool direct_io(const string_view &path);
// Test if fallocate() is supported at target path
bool fallocate(const string_view &path, const write_opts &wopts = write_opts_default);
size_t rlimit_nofile(); // Get the limit for number of opened files
size_t rlimit_fsize(); // Get the limit for a file's size
// Dump information to infolog
void dump_info();
}