linux-headers (unknown)

(root)/
include/
linux/
cachefiles.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef _LINUX_CACHEFILES_H
       3  #define _LINUX_CACHEFILES_H
       4  
       5  #include <linux/types.h>
       6  #include <linux/ioctl.h>
       7  
       8  /*
       9   * Fscache ensures that the maximum length of cookie key is 255. The volume key
      10   * is controlled by netfs, and generally no bigger than 255.
      11   */
      12  #define CACHEFILES_MSG_MAX_SIZE	1024
      13  
      14  enum cachefiles_opcode {
      15  	CACHEFILES_OP_OPEN,
      16  	CACHEFILES_OP_CLOSE,
      17  	CACHEFILES_OP_READ,
      18  };
      19  
      20  /*
      21   * Message Header
      22   *
      23   * @msg_id	a unique ID identifying this message
      24   * @opcode	message type, CACHEFILE_OP_*
      25   * @len		message length, including message header and following data
      26   * @object_id	a unique ID identifying a cache file
      27   * @data	message type specific payload
      28   */
      29  struct cachefiles_msg {
      30  	__u32 msg_id;
      31  	__u32 opcode;
      32  	__u32 len;
      33  	__u32 object_id;
      34  	__u8  data[];
      35  };
      36  
      37  /*
      38   * @data contains the volume_key followed directly by the cookie_key. volume_key
      39   * is a NUL-terminated string; @volume_key_size indicates the size of the volume
      40   * key in bytes. cookie_key is binary data, which is netfs specific;
      41   * @cookie_key_size indicates the size of the cookie key in bytes.
      42   *
      43   * @fd identifies an anon_fd referring to the cache file.
      44   */
      45  struct cachefiles_open {
      46  	__u32 volume_key_size;
      47  	__u32 cookie_key_size;
      48  	__u32 fd;
      49  	__u32 flags;
      50  	__u8  data[];
      51  };
      52  
      53  /*
      54   * @off		indicates the starting offset of the requested file range
      55   * @len		indicates the length of the requested file range
      56   */
      57  struct cachefiles_read {
      58  	__u64 off;
      59  	__u64 len;
      60  };
      61  
      62  /*
      63   * Reply for READ request
      64   * @arg for this ioctl is the @id field of READ request.
      65   */
      66  #define CACHEFILES_IOC_READ_COMPLETE	_IOW(0x98, 1, int)
      67  
      68  #endif