xref: /spdk/module/fsdev/aio/fsdev_aio.h (revision 92108e0a2be7a969e8ee761a776a1ea64465759a)
1e21c39aaSAnton Nayshtut /*   SPDX-License-Identifier: BSD-3-Clause
2e21c39aaSAnton Nayshtut  *   Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3e21c39aaSAnton Nayshtut  */
4e21c39aaSAnton Nayshtut 
5e21c39aaSAnton Nayshtut /** \file
6e21c39aaSAnton Nayshtut  * Operations on aio filesystem device
7e21c39aaSAnton Nayshtut  */
8e21c39aaSAnton Nayshtut 
9e21c39aaSAnton Nayshtut #ifndef SPDK_FSDEV_AIO_H
10e21c39aaSAnton Nayshtut #define SPDK_FSDEV_AIO_H
11e21c39aaSAnton Nayshtut 
12e21c39aaSAnton Nayshtut #include "spdk/stdinc.h"
13e21c39aaSAnton Nayshtut #include "spdk/fsdev_module.h"
14e21c39aaSAnton Nayshtut 
15e21c39aaSAnton Nayshtut struct spdk_fsdev_aio_opts {
16e21c39aaSAnton Nayshtut 	bool xattr_enabled;
17e21c39aaSAnton Nayshtut 	bool writeback_cache_enabled;
18e21c39aaSAnton Nayshtut 	uint32_t max_write;
19*92108e0aSYoray Zack 	bool skip_rw;
20e21c39aaSAnton Nayshtut };
21e21c39aaSAnton Nayshtut 
22e21c39aaSAnton Nayshtut typedef void (*spdk_delete_aio_fsdev_complete)(void *cb_arg, int fsdeverrno);
23e21c39aaSAnton Nayshtut 
24e21c39aaSAnton Nayshtut void spdk_fsdev_aio_get_default_opts(struct spdk_fsdev_aio_opts *opts);
25e21c39aaSAnton Nayshtut 
26e21c39aaSAnton Nayshtut int spdk_fsdev_aio_create(struct spdk_fsdev **fsdev, const char *name, const char *root_path,
27e21c39aaSAnton Nayshtut 			  const struct spdk_fsdev_aio_opts *opts);
28e21c39aaSAnton Nayshtut void spdk_fsdev_aio_delete(const char *name, spdk_delete_aio_fsdev_complete cb_fn, void *cb_arg);
29e21c39aaSAnton Nayshtut 
30e21c39aaSAnton Nayshtut #endif /* SPDK_FSDEV_AIO_H */
31