home *** CD-ROM | disk | FTP | other *** search
- #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 Public License.
- */
-
- #define LO_NAME_SIZE 64
- #define LO_KEY_SIZE 32
-
- struct loop_device {
- int lo_number;
- struct inode *lo_inode;
- int lo_refcnt;
- dev_t lo_device;
- int lo_offset;
- int lo_encrypt_type;
- int lo_encrypt_key_size;
- int lo_flags;
- int (*transfer)(struct loop_device *, int cmd,
- char *raw_buf, char *loop_buf, int size);
- char lo_name[LO_NAME_SIZE];
- char lo_encrypt_key[LO_KEY_SIZE];
- #ifdef DES_AVAILABLE
- des_key_schedule lo_des_key;
- unsigned long lo_des_init[2];
- #endif
- };
-
- typedef int (* transfer_proc_t)(struct loop_device *, int cmd,
- char *raw_buf, char *loop_buf, int size);
-
- /*
- * Loop flags
- */
- #define LO_FLAGS_DO_BMAP 0x00000001
-
- struct loop_info {
- int lo_number; /* ioctl r/o */
- dev_t lo_device; /* ioctl r/o */
- unsigned long lo_inode; /* ioctl r/o */
- 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];
- };
-
- /*
- * Loop encryption types --- LO_CRYPT_IDEA isn't supported yet
- */
-
- #define LO_CRYPT_NONE 0
- #define LO_CRYPT_XOR 1
- #define LO_CRYPT_DES 2
- #define LO_CRYPT_IDEA 4
- #define MAX_LO_CRYPT 3
-
- /*
- * 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
-
- #endif
-