Logo Search packages:      
Sourcecode: qemu version File versions

linux_loop.h

/* Copied from 2.6.25 kernel headers to avoid problems on older hosts.  */
#ifndef _LINUX_LOOP_H
#define _LINUX_LOOP_H

/*
 * include/linux/loop.h
 *
 * Written by Theodore Ts'o, 3/29/93.
 *
 * Copyright 1993 by Theodore Ts'o.  Redistribution of this file is
 * permitted under the GNU General Public License.
 */

#define LO_NAME_SIZE    64
#define LO_KEY_SIZE     32


/*
 * Loop flags
 */
enum {
      LO_FLAGS_READ_ONLY      = 1,
      LO_FLAGS_USE_AOPS = 2,
      LO_FLAGS_AUTOCLEAR      = 4,
};

#include <linux/version.h>
#include <asm/posix_types.h>  /* for __kernel_old_dev_t */
#include <asm/types.h>        /* for __u64 */

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* This is a guess.  */
#define __kernel_old_dev_t __kernel_dev_t
#endif

/* Backwards compatibility version */
struct loop_info {
      int            lo_number;           /* ioctl r/o */
      __kernel_old_dev_t lo_device;             /* ioctl r/o */
      unsigned long        lo_inode;            /* ioctl r/o */
      __kernel_old_dev_t lo_rdevice;            /* ioctl r/o */
      int            lo_offset;
      int            lo_encrypt_type;
      int            lo_encrypt_key_size;       /* ioctl w/o */
      int            lo_flags;                  /* ioctl r/o */
      char           lo_name[LO_NAME_SIZE];
      unsigned char        lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
      unsigned long        lo_init[2];
      char           reserved[4];
};

struct loop_info64 {
      __u64          lo_device;                 /* ioctl r/o */
      __u64          lo_inode;                  /* ioctl r/o */
      __u64          lo_rdevice;                /* ioctl r/o */
      __u64          lo_offset;
      __u64          lo_sizelimit;/* bytes, 0 == max available */
      __u32          lo_number;                 /* ioctl r/o */
      __u32          lo_encrypt_type;
      __u32          lo_encrypt_key_size;       /* ioctl w/o */
      __u32          lo_flags;                  /* ioctl r/o */
      __u8           lo_file_name[LO_NAME_SIZE];
      __u8           lo_crypt_name[LO_NAME_SIZE];
      __u8           lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
      __u64          lo_init[2];
};

/*
 * Loop filter types
 */

#define LO_CRYPT_NONE         0
#define LO_CRYPT_XOR          1
#define LO_CRYPT_DES          2
#define LO_CRYPT_FISH2        3    /* Twofish encryption */
#define LO_CRYPT_BLOW         4
#define LO_CRYPT_CAST128      5
#define LO_CRYPT_IDEA         6
#define LO_CRYPT_DUMMY        9
#define LO_CRYPT_SKIPJACK     10
#define LO_CRYPT_CRYPTOAPI    18
#define MAX_LO_CRYPT          20

/*
 * IOCTL commands --- we will commandeer 0x4C ('L')
 */

#define LOOP_SET_FD           0x4C00
#define LOOP_CLR_FD           0x4C01
#define LOOP_SET_STATUS       0x4C02
#define LOOP_GET_STATUS       0x4C03
#define LOOP_SET_STATUS64     0x4C04
#define LOOP_GET_STATUS64     0x4C05
#define LOOP_CHANGE_FD        0x4C06

#endif

Generated by  Doxygen 1.6.0   Back to index