cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

linux_loop.h (2696B)


      1/* Copied from 2.6.25 kernel headers to avoid problems on older hosts,
      2 * and subsequently updated to match newer additions to the API.
      3 */
      4
      5#ifndef LINUX_LOOP_H
      6#define LINUX_LOOP_H
      7
      8/*
      9 * include/linux/loop.h
     10 *
     11 * Written by Theodore Ts'o, 3/29/93.
     12 *
     13 * Copyright 1993 by Theodore Ts'o.  Redistribution of this file is
     14 * permitted under the GNU General Public License.
     15 */
     16
     17#define LO_NAME_SIZE	64
     18#define LO_KEY_SIZE	32
     19
     20
     21/*
     22 * Loop flags
     23 */
     24enum {
     25	LO_FLAGS_READ_ONLY	= 1,
     26	LO_FLAGS_USE_AOPS	= 2,
     27	LO_FLAGS_AUTOCLEAR	= 4,
     28};
     29
     30#include <linux/version.h>
     31#include <asm/posix_types.h>	/* for __kernel_old_dev_t */
     32#include <asm/types.h>		/* for __u64 */
     33
     34#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* This is a guess.  */
     35#define __kernel_old_dev_t __kernel_dev_t
     36#endif
     37
     38/* Backwards compatibility version */
     39struct loop_info {
     40	int		   lo_number;		/* ioctl r/o */
     41	__kernel_old_dev_t lo_device; 		/* ioctl r/o */
     42	unsigned long	   lo_inode; 		/* ioctl r/o */
     43	__kernel_old_dev_t lo_rdevice; 		/* ioctl r/o */
     44	int		   lo_offset;
     45	int		   lo_encrypt_type;
     46	int		   lo_encrypt_key_size; 	/* ioctl w/o */
     47	int		   lo_flags;			/* ioctl r/o */
     48	char		   lo_name[LO_NAME_SIZE];
     49	unsigned char	   lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
     50	unsigned long	   lo_init[2];
     51	char		   reserved[4];
     52};
     53
     54struct loop_info64 {
     55	__u64		   lo_device;			/* ioctl r/o */
     56	__u64		   lo_inode;			/* ioctl r/o */
     57	__u64		   lo_rdevice;			/* ioctl r/o */
     58	__u64		   lo_offset;
     59	__u64		   lo_sizelimit;/* bytes, 0 == max available */
     60	__u32		   lo_number;			/* ioctl r/o */
     61	__u32		   lo_encrypt_type;
     62	__u32		   lo_encrypt_key_size;		/* ioctl w/o */
     63	__u32		   lo_flags;			/* ioctl r/o */
     64	__u8		   lo_file_name[LO_NAME_SIZE];
     65	__u8		   lo_crypt_name[LO_NAME_SIZE];
     66	__u8		   lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
     67	__u64		   lo_init[2];
     68};
     69
     70/*
     71 * Loop filter types
     72 */
     73
     74#define LO_CRYPT_NONE		0
     75#define LO_CRYPT_XOR		1
     76#define LO_CRYPT_DES		2
     77#define LO_CRYPT_FISH2		3    /* Twofish encryption */
     78#define LO_CRYPT_BLOW		4
     79#define LO_CRYPT_CAST128	5
     80#define LO_CRYPT_IDEA		6
     81#define LO_CRYPT_DUMMY		9
     82#define LO_CRYPT_SKIPJACK	10
     83#define LO_CRYPT_CRYPTOAPI	18
     84#define MAX_LO_CRYPT		20
     85
     86/*
     87 * IOCTL commands --- we will commandeer 0x4C ('L')
     88 */
     89
     90#define LOOP_SET_FD		0x4C00
     91#define LOOP_CLR_FD		0x4C01
     92#define LOOP_SET_STATUS		0x4C02
     93#define LOOP_GET_STATUS		0x4C03
     94#define LOOP_SET_STATUS64	0x4C04
     95#define LOOP_GET_STATUS64	0x4C05
     96#define LOOP_CHANGE_FD		0x4C06
     97#define LOOP_SET_CAPACITY       0x4C07
     98#define LOOP_SET_DIRECT_IO      0x4C08
     99
    100/* /dev/loop-control interface */
    101#define LOOP_CTL_ADD            0x4C80
    102#define LOOP_CTL_REMOVE         0x4C81
    103#define LOOP_CTL_GET_FREE       0x4C82
    104
    105#endif