Commit d7e4036e317f75884513252acbf7eece54fc2ff5
1 parent
225b4376
Fix build failure with old kernel headers (loop.h is incompatible with
glibc headers). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4543 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
96 additions
and
1 deletions
linux-user/linux_loop.h
0 → 100644
| 1 | +/* Copied from 2.6.25 kernel headers to avoid problems on older hosts. */ | ||
| 2 | +#ifndef _LINUX_LOOP_H | ||
| 3 | +#define _LINUX_LOOP_H | ||
| 4 | + | ||
| 5 | +/* | ||
| 6 | + * include/linux/loop.h | ||
| 7 | + * | ||
| 8 | + * Written by Theodore Ts'o, 3/29/93. | ||
| 9 | + * | ||
| 10 | + * Copyright 1993 by Theodore Ts'o. Redistribution of this file is | ||
| 11 | + * permitted under the GNU General Public License. | ||
| 12 | + */ | ||
| 13 | + | ||
| 14 | +#define LO_NAME_SIZE 64 | ||
| 15 | +#define LO_KEY_SIZE 32 | ||
| 16 | + | ||
| 17 | + | ||
| 18 | +/* | ||
| 19 | + * Loop flags | ||
| 20 | + */ | ||
| 21 | +enum { | ||
| 22 | + LO_FLAGS_READ_ONLY = 1, | ||
| 23 | + LO_FLAGS_USE_AOPS = 2, | ||
| 24 | + LO_FLAGS_AUTOCLEAR = 4, | ||
| 25 | +}; | ||
| 26 | + | ||
| 27 | +#include <linux/version.h> | ||
| 28 | +#include <asm/posix_types.h> /* for __kernel_old_dev_t */ | ||
| 29 | +#include <asm/types.h> /* for __u64 */ | ||
| 30 | + | ||
| 31 | +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* This is a guess. */ | ||
| 32 | +#define __kernel_old_dev_t __kernel_dev_t | ||
| 33 | +#endif | ||
| 34 | + | ||
| 35 | +/* Backwards compatibility version */ | ||
| 36 | +struct loop_info { | ||
| 37 | + int lo_number; /* ioctl r/o */ | ||
| 38 | + __kernel_old_dev_t lo_device; /* ioctl r/o */ | ||
| 39 | + unsigned long lo_inode; /* ioctl r/o */ | ||
| 40 | + __kernel_old_dev_t lo_rdevice; /* ioctl r/o */ | ||
| 41 | + int lo_offset; | ||
| 42 | + int lo_encrypt_type; | ||
| 43 | + int lo_encrypt_key_size; /* ioctl w/o */ | ||
| 44 | + int lo_flags; /* ioctl r/o */ | ||
| 45 | + char lo_name[LO_NAME_SIZE]; | ||
| 46 | + unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ | ||
| 47 | + unsigned long lo_init[2]; | ||
| 48 | + char reserved[4]; | ||
| 49 | +}; | ||
| 50 | + | ||
| 51 | +struct loop_info64 { | ||
| 52 | + __u64 lo_device; /* ioctl r/o */ | ||
| 53 | + __u64 lo_inode; /* ioctl r/o */ | ||
| 54 | + __u64 lo_rdevice; /* ioctl r/o */ | ||
| 55 | + __u64 lo_offset; | ||
| 56 | + __u64 lo_sizelimit;/* bytes, 0 == max available */ | ||
| 57 | + __u32 lo_number; /* ioctl r/o */ | ||
| 58 | + __u32 lo_encrypt_type; | ||
| 59 | + __u32 lo_encrypt_key_size; /* ioctl w/o */ | ||
| 60 | + __u32 lo_flags; /* ioctl r/o */ | ||
| 61 | + __u8 lo_file_name[LO_NAME_SIZE]; | ||
| 62 | + __u8 lo_crypt_name[LO_NAME_SIZE]; | ||
| 63 | + __u8 lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ | ||
| 64 | + __u64 lo_init[2]; | ||
| 65 | +}; | ||
| 66 | + | ||
| 67 | +/* | ||
| 68 | + * Loop filter types | ||
| 69 | + */ | ||
| 70 | + | ||
| 71 | +#define LO_CRYPT_NONE 0 | ||
| 72 | +#define LO_CRYPT_XOR 1 | ||
| 73 | +#define LO_CRYPT_DES 2 | ||
| 74 | +#define LO_CRYPT_FISH2 3 /* Twofish encryption */ | ||
| 75 | +#define LO_CRYPT_BLOW 4 | ||
| 76 | +#define LO_CRYPT_CAST128 5 | ||
| 77 | +#define LO_CRYPT_IDEA 6 | ||
| 78 | +#define LO_CRYPT_DUMMY 9 | ||
| 79 | +#define LO_CRYPT_SKIPJACK 10 | ||
| 80 | +#define LO_CRYPT_CRYPTOAPI 18 | ||
| 81 | +#define MAX_LO_CRYPT 20 | ||
| 82 | + | ||
| 83 | +/* | ||
| 84 | + * IOCTL commands --- we will commandeer 0x4C ('L') | ||
| 85 | + */ | ||
| 86 | + | ||
| 87 | +#define LOOP_SET_FD 0x4C00 | ||
| 88 | +#define LOOP_CLR_FD 0x4C01 | ||
| 89 | +#define LOOP_SET_STATUS 0x4C02 | ||
| 90 | +#define LOOP_GET_STATUS 0x4C03 | ||
| 91 | +#define LOOP_SET_STATUS64 0x4C04 | ||
| 92 | +#define LOOP_GET_STATUS64 0x4C05 | ||
| 93 | +#define LOOP_CHANGE_FD 0x4C06 | ||
| 94 | + | ||
| 95 | +#endif |
linux-user/syscall.c
| @@ -68,7 +68,7 @@ | @@ -68,7 +68,7 @@ | ||
| 68 | #include <linux/soundcard.h> | 68 | #include <linux/soundcard.h> |
| 69 | #include <linux/dirent.h> | 69 | #include <linux/dirent.h> |
| 70 | #include <linux/kd.h> | 70 | #include <linux/kd.h> |
| 71 | -#include <linux/loop.h> | 71 | +#include "linux_loop.h" |
| 72 | 72 | ||
| 73 | #include "qemu.h" | 73 | #include "qemu.h" |
| 74 | 74 |