/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */#ifndef _LINUX_CACHEFILES_H#define _LINUX_CACHEFILES_H#include <linux/types.h>#include <linux/ioctl.h>/* * Fscache ensures that the maximum length of cookie key is 255. The volume key * is controlled by netfs, and generally no bigger than 255. */#define CACHEFILES_MSG_MAX_SIZE 1024enum cachefiles_opcode { CACHEFILES_OP_OPEN, CACHEFILES_OP_CLOSE, CACHEFILES_OP_READ,};/* * Message Header * * @msg_id a unique ID identifying this message * @opcode message type, CACHEFILE_OP_* * @len message length, including message header and following data * @object_id a unique ID identifying a cache file * @data message type specific payload */struct cachefiles_msg { __u32 msg_id; __u32 opcode; __u32 len; __u32 object_id; __u8 data[];};/* * @data contains the volume_key followed directly by the cookie_key. volume_key * is a NUL-terminated string; @volume_key_size indicates the size of the volume * key in bytes. cookie_key is binary data, which is netfs specific; * @cookie_key_size indicates the size of the cookie key in bytes. * * @fd identifies an anon_fd referring to the cache file. */struct cachefiles_open { __u32 volume_key_size; __u32 cookie_key_size; __u32 fd; __u32 flags; __u8 data[];};/* * @off indicates the starting offset of the requested file range * @len indicates the length of the requested file range */struct cachefiles_read { __u64 off; __u64 len;};/* * Reply for READ request * @arg for this ioctl is the @id field of READ request. */#define CACHEFILES_IOC_READ_COMPLETE _IOW(0x98, 1, int)#endif
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _LINUX_CACHEFILES_H
#define _LINUX_CACHEFILES_H
#include <linux/types.h>
#include <linux/ioctl.h>
/*
* Fscache ensures that the maximum length of cookie key is 255. The volume key
* is controlled by netfs, and generally no bigger than 255.
*/
#define CACHEFILES_MSG_MAX_SIZE 1024
enum cachefiles_opcode {
CACHEFILES_OP_OPEN,
CACHEFILES_OP_CLOSE,
CACHEFILES_OP_READ,
};
/*
* Message Header
*
* @msg_id a unique ID identifying this message
* @opcode message type, CACHEFILE_OP_*
* @len message length, including message header and following data
* @object_id a unique ID identifying a cache file
* @data message type specific payload
*/
struct cachefiles_msg {
__u32 msg_id;
__u32 opcode;
__u32 len;
__u32 object_id;
__u8 data[];
};
/*
* @data contains the volume_key followed directly by the cookie_key. volume_key
* is a NUL-terminated string; @volume_key_size indicates the size of the volume
* key in bytes. cookie_key is binary data, which is netfs specific;
* @cookie_key_size indicates the size of the cookie key in bytes.
*
* @fd identifies an anon_fd referring to the cache file.
*/
struct cachefiles_open {
__u32 volume_key_size;
__u32 cookie_key_size;
__u32 fd;
__u32 flags;
__u8 data[];
};
/*
* @off indicates the starting offset of the requested file range
* @len indicates the length of the requested file range
*/
struct cachefiles_read {
__u64 off;
__u64 len;
};
/*
* Reply for READ request
* @arg for this ioctl is the @id field of READ request.
*/
#define CACHEFILES_IOC_READ_COMPLETE _IOW(0x98, 1, int)
#endif