2018-12-03 21:43:42 +01:00
|
|
|
// 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
|
|
|
|
{
|
2020-03-20 18:04:51 +01:00
|
|
|
// 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;
|
|
|
|
|
2018-12-03 21:43:42 +01:00
|
|
|
// Test if O_DIRECT supported at target path
|
|
|
|
bool direct_io(const string_view &path);
|
2018-12-03 21:58:42 +01:00
|
|
|
|
|
|
|
// Test if fallocate() is supported at target path
|
|
|
|
bool fallocate(const string_view &path, const write_opts &wopts = write_opts_default);
|
2020-03-16 19:09:25 +01:00
|
|
|
|
2020-03-20 18:54:14 +01:00
|
|
|
size_t rlimit_nofile(); // Get the limit for number of opened files
|
|
|
|
size_t rlimit_fsize(); // Get the limit for a file's size
|
2020-03-20 18:05:50 +01:00
|
|
|
|
2020-03-16 19:09:25 +01:00
|
|
|
// Dump information to infolog
|
|
|
|
void dump_info();
|
2018-12-03 21:43:42 +01:00
|
|
|
}
|