266 lines
8.2 KiB
Diff
266 lines
8.2 KiB
Diff
|
Do not redefine READ and WRITE, which are defined in linux/fs.h. Instead prefix them
|
||
|
with XEN to avoid namespace clash.
|
||
|
|
||
|
--- tools/blktap2/include/blktaplib.h.orig 2011-01-10 11:10:18.362560374 +0100
|
||
|
+++ tools/blktap2/include/blktaplib.h 2011-01-10 11:11:53.007679832 +0100
|
||
|
@@ -197,8 +197,8 @@ typedef struct msg_lock {
|
||
|
int uuid_len;
|
||
|
} msg_lock_t;
|
||
|
|
||
|
-#define READ 0
|
||
|
-#define WRITE 1
|
||
|
+#define XEN_READ 0
|
||
|
+#define XEN_WRITE 1
|
||
|
|
||
|
/*Control Messages between manager and tapdev*/
|
||
|
#define CTLMSG_PARAMS 1
|
||
|
--- tools/blktap/lib/blktaplib.h.orig 2011-01-10 11:12:38.633561491 +0100
|
||
|
+++ tools/blktap/lib/blktaplib.h 2011-01-10 11:12:47.110717080 +0100
|
||
|
@@ -195,8 +195,8 @@ typedef struct msg_pid {
|
||
|
pid_t pid;
|
||
|
} msg_pid_t;
|
||
|
|
||
|
-#define READ 0
|
||
|
-#define WRITE 1
|
||
|
+#define XEN_READ 0
|
||
|
+#define XEN_WRITE 1
|
||
|
|
||
|
/*Control Messages between manager and tapdev*/
|
||
|
#define CTLMSG_PARAMS 1
|
||
|
--- tools/blktap/drivers/blktapctrl.c.orig 2010-08-25 12:22:07.000000000 +0200
|
||
|
+++ tools/blktap/drivers/blktapctrl.c 2011-01-10 11:30:15.176697136 +0100
|
||
|
@@ -128,13 +128,13 @@ static int get_tapdisk_pid(blkif_t *blki
|
||
|
{
|
||
|
int ret;
|
||
|
|
||
|
- if ((ret = write_msg(blkif->fds[WRITE], CTLMSG_PID, blkif, NULL))
|
||
|
+ if ((ret = write_msg(blkif->fds[XEN_WRITE], CTLMSG_PID, blkif, NULL))
|
||
|
<= 0) {
|
||
|
DPRINTF("Write_msg failed - CTLMSG_PID(%d)\n", ret);
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
|
||
|
- if ((ret = read_msg(blkif->fds[READ], CTLMSG_PID_RSP, blkif))
|
||
|
+ if ((ret = read_msg(blkif->fds[XEN_READ], CTLMSG_PID_RSP, blkif))
|
||
|
<= 0) {
|
||
|
DPRINTF("Read_msg failure - CTLMSG_PID(%d)\n", ret);
|
||
|
return -EINVAL;
|
||
|
@@ -576,8 +576,8 @@ static int connect_qemu(blkif_t *blkif,
|
||
|
}
|
||
|
|
||
|
DPRINTF("Using tapdisk-ioemu connection\n");
|
||
|
- blkif->fds[READ] = dom0_readfd;
|
||
|
- blkif->fds[WRITE] = dom0_writefd;
|
||
|
+ blkif->fds[XEN_READ] = dom0_readfd;
|
||
|
+ blkif->fds[XEN_WRITE] = dom0_writefd;
|
||
|
|
||
|
if (refresh_pid) {
|
||
|
get_tapdisk_pid(blkif);
|
||
|
@@ -587,8 +587,8 @@ static int connect_qemu(blkif_t *blkif,
|
||
|
} else if (access(rdctldev, R_OK | W_OK) == 0) {
|
||
|
/* Use existing pipe to the device model */
|
||
|
DPRINTF("Using qemu-dm connection\n");
|
||
|
- blkif->fds[READ] = open_ctrl_socket(wrctldev);
|
||
|
- blkif->fds[WRITE] = open_ctrl_socket(rdctldev);
|
||
|
+ blkif->fds[XEN_READ] = open_ctrl_socket(wrctldev);
|
||
|
+ blkif->fds[XEN_WRITE] = open_ctrl_socket(rdctldev);
|
||
|
} else {
|
||
|
/* No device model => try with tapdisk-ioemu */
|
||
|
DPRINTF("No device model\n");
|
||
|
@@ -598,7 +598,7 @@ static int connect_qemu(blkif_t *blkif,
|
||
|
free(rdctldev);
|
||
|
free(wrctldev);
|
||
|
|
||
|
- if (blkif->fds[READ] == -1 || blkif->fds[WRITE] == -1)
|
||
|
+ if (blkif->fds[XEN_READ] == -1 || blkif->fds[XEN_WRITE] == -1)
|
||
|
return -1;
|
||
|
|
||
|
DPRINTF("Attached to qemu blktap pipes\n");
|
||
|
@@ -621,10 +621,10 @@ static int connect_tapdisk(blkif_t *blki
|
||
|
"%s/tapctrlwrite%d", BLKTAP_CTRL_DIR, minor) == -1)
|
||
|
goto fail;
|
||
|
|
||
|
- blkif->fds[READ] = open_ctrl_socket(rdctldev);
|
||
|
- blkif->fds[WRITE] = open_ctrl_socket(wrctldev);
|
||
|
+ blkif->fds[XEN_READ] = open_ctrl_socket(rdctldev);
|
||
|
+ blkif->fds[XEN_WRITE] = open_ctrl_socket(wrctldev);
|
||
|
|
||
|
- if (blkif->fds[READ] == -1 || blkif->fds[WRITE] == -1)
|
||
|
+ if (blkif->fds[XEN_READ] == -1 || blkif->fds[XEN_WRITE] == -1)
|
||
|
goto fail;
|
||
|
|
||
|
/*launch the new process*/
|
||
|
@@ -683,8 +683,8 @@ static int blktapctrl_new_blkif(blkif_t
|
||
|
|
||
|
} else {
|
||
|
DPRINTF("Process exists!\n");
|
||
|
- blkif->fds[READ] = exist->fds[READ];
|
||
|
- blkif->fds[WRITE] = exist->fds[WRITE];
|
||
|
+ blkif->fds[XEN_READ] = exist->fds[XEN_READ];
|
||
|
+ blkif->fds[XEN_WRITE] = exist->fds[XEN_WRITE];
|
||
|
}
|
||
|
|
||
|
add_disktype(blkif, type);
|
||
|
@@ -703,13 +703,13 @@ static int blktapctrl_new_blkif(blkif_t
|
||
|
|
||
|
/* Both of the following read and write calls will block up to
|
||
|
* max_timeout val*/
|
||
|
- if (write_msg(blkif->fds[WRITE], CTLMSG_PARAMS, blkif, ptr)
|
||
|
+ if (write_msg(blkif->fds[XEN_WRITE], CTLMSG_PARAMS, blkif, ptr)
|
||
|
<= 0) {
|
||
|
DPRINTF("Write_msg failed - CTLMSG_PARAMS\n");
|
||
|
goto fail;
|
||
|
}
|
||
|
|
||
|
- if (read_msg(blkif->fds[READ], CTLMSG_IMG, blkif) <= 0) {
|
||
|
+ if (read_msg(blkif->fds[XEN_READ], CTLMSG_IMG, blkif) <= 0) {
|
||
|
DPRINTF("Read_msg failure - CTLMSG_IMG\n");
|
||
|
goto fail;
|
||
|
}
|
||
|
@@ -725,12 +725,12 @@ fail:
|
||
|
static int map_new_blktapctrl(blkif_t *blkif)
|
||
|
{
|
||
|
DPRINTF("Received a poll for a new devmap\n");
|
||
|
- if (write_msg(blkif->fds[WRITE], CTLMSG_NEWDEV, blkif, NULL) <= 0) {
|
||
|
+ if (write_msg(blkif->fds[XEN_WRITE], CTLMSG_NEWDEV, blkif, NULL) <= 0) {
|
||
|
DPRINTF("Write_msg failed - CTLMSG_NEWDEV\n");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
|
||
|
- if (read_msg(blkif->fds[READ], CTLMSG_NEWDEV_RSP, blkif) <= 0) {
|
||
|
+ if (read_msg(blkif->fds[XEN_READ], CTLMSG_NEWDEV_RSP, blkif) <= 0) {
|
||
|
DPRINTF("Read_msg failed - CTLMSG_NEWDEV_RSP\n");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
@@ -743,15 +743,15 @@ static int unmap_blktapctrl(blkif_t *blk
|
||
|
{
|
||
|
DPRINTF("Unmapping vbd\n");
|
||
|
|
||
|
- if (write_msg(blkif->fds[WRITE], CTLMSG_CLOSE, blkif, NULL) <= 0) {
|
||
|
+ if (write_msg(blkif->fds[XEN_WRITE], CTLMSG_CLOSE, blkif, NULL) <= 0) {
|
||
|
DPRINTF("Write_msg failed - CTLMSG_CLOSE\n");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
|
||
|
if (del_disktype(blkif)) {
|
||
|
DPRINTF("Closing communication pipe to pid %d\n", blkif->tappid);
|
||
|
- close(blkif->fds[WRITE]);
|
||
|
- close(blkif->fds[READ]);
|
||
|
+ close(blkif->fds[XEN_WRITE]);
|
||
|
+ close(blkif->fds[XEN_READ]);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
--- tools/blktap/drivers/tapdisk.c.orig 2011-01-10 11:33:42.160375869 +0100
|
||
|
+++ tools/blktap/drivers/tapdisk.c 2011-01-10 11:36:42.820168882 +0100
|
||
|
@@ -138,10 +138,10 @@ static inline int LOCAL_FD_SET(fd_set *r
|
||
|
if (ptr->tap_fd) {
|
||
|
FD_SET(ptr->tap_fd, readfds);
|
||
|
td_for_each_disk(ptr->s, dd) {
|
||
|
- if (dd->io_fd[READ])
|
||
|
- FD_SET(dd->io_fd[READ], readfds);
|
||
|
- maxfds = (dd->io_fd[READ] > maxfds ?
|
||
|
- dd->io_fd[READ] : maxfds);
|
||
|
+ if (dd->io_fd[INPUT])
|
||
|
+ FD_SET(dd->io_fd[INPUT], readfds);
|
||
|
+ maxfds = (dd->io_fd[INPUT] > maxfds ?
|
||
|
+ dd->io_fd[INPUT] : maxfds);
|
||
|
}
|
||
|
maxfds = (ptr->tap_fd > maxfds ? ptr->tap_fd : maxfds);
|
||
|
}
|
||
|
@@ -380,7 +380,7 @@ static int read_msg(char *buf)
|
||
|
struct td_state *s = NULL;
|
||
|
fd_list_entry_t *entry;
|
||
|
|
||
|
- length = read(fds[READ], buf, MSG_SIZE);
|
||
|
+ length = read(fds[INPUT], buf, MSG_SIZE);
|
||
|
|
||
|
if (length > 0 && length >= sizeof(msg_hdr_t))
|
||
|
{
|
||
|
@@ -435,7 +435,7 @@ static int read_msg(char *buf)
|
||
|
msg->type = CTLMSG_IMG_FAIL;
|
||
|
msg->len = msglen;
|
||
|
}
|
||
|
- len = write(fds[WRITE], buf, msglen);
|
||
|
+ len = write(fds[OUTPUT], buf, msglen);
|
||
|
free(path);
|
||
|
return 1;
|
||
|
|
||
|
@@ -457,7 +457,7 @@ static int read_msg(char *buf)
|
||
|
: CTLMSG_NEWDEV_FAIL);
|
||
|
msg->len = msglen;
|
||
|
|
||
|
- len = write(fds[WRITE], buf, msglen);
|
||
|
+ len = write(fds[OUTPUT], buf, msglen);
|
||
|
return 1;
|
||
|
|
||
|
case CTLMSG_CLOSE:
|
||
|
@@ -479,7 +479,7 @@ static int read_msg(char *buf)
|
||
|
process = getpid();
|
||
|
msg_pid->pid = process;
|
||
|
|
||
|
- len = write(fds[WRITE], buf, msglen);
|
||
|
+ len = write(fds[OUTPUT], buf, msglen);
|
||
|
return 1;
|
||
|
|
||
|
default:
|
||
|
@@ -782,12 +782,12 @@ int main(int argc, char *argv[])
|
||
|
signal (SIGINT, sig_handler);
|
||
|
|
||
|
/*Open the control channel*/
|
||
|
- fds[READ] = open(argv[1],O_RDWR|O_NONBLOCK);
|
||
|
- fds[WRITE] = open(argv[2],O_RDWR|O_NONBLOCK);
|
||
|
+ fds[INPUT] = open(argv[1],O_RDWR|O_NONBLOCK);
|
||
|
+ fds[OUTPUT] = open(argv[2],O_RDWR|O_NONBLOCK);
|
||
|
|
||
|
- if ( (fds[READ] < 0) || (fds[WRITE] < 0) )
|
||
|
+ if ( (fds[INPUT] < 0) || (fds[OUTPUT] < 0) )
|
||
|
{
|
||
|
- DPRINTF("FD open failed [%d,%d]\n", fds[READ], fds[WRITE]);
|
||
|
+ DPRINTF("FD open failed [%d,%d]\n", fds[INPUT], fds[OUTPUT]);
|
||
|
exit(-1);
|
||
|
}
|
||
|
|
||
|
@@ -803,8 +803,8 @@ int main(int argc, char *argv[])
|
||
|
{
|
||
|
ret = 0;
|
||
|
FD_ZERO(&readfds);
|
||
|
- FD_SET(fds[READ], &readfds);
|
||
|
- maxfds = fds[READ];
|
||
|
+ FD_SET(fds[INPUT], &readfds);
|
||
|
+ maxfds = fds[INPUT];
|
||
|
|
||
|
/*Set all tap fds*/
|
||
|
LOCAL_FD_SET(&readfds);
|
||
|
@@ -822,10 +822,10 @@ int main(int argc, char *argv[])
|
||
|
tapdev_info_t *info = ptr->s->ring_info;
|
||
|
|
||
|
td_for_each_disk(ptr->s, dd) {
|
||
|
- if (dd->io_fd[READ] &&
|
||
|
- FD_ISSET(dd->io_fd[READ],
|
||
|
+ if (dd->io_fd[INPUT] &&
|
||
|
+ FD_ISSET(dd->io_fd[INPUT],
|
||
|
&readfds)) {
|
||
|
- io_done(dd, READ);
|
||
|
+ io_done(dd, INPUT);
|
||
|
progress_made = 1;
|
||
|
}
|
||
|
}
|
||
|
@@ -851,13 +851,13 @@ int main(int argc, char *argv[])
|
||
|
ptr = ptr->next;
|
||
|
}
|
||
|
|
||
|
- if (FD_ISSET(fds[READ], &readfds))
|
||
|
+ if (FD_ISSET(fds[INPUT], &readfds))
|
||
|
read_msg(buf);
|
||
|
}
|
||
|
}
|
||
|
free(buf);
|
||
|
- close(fds[READ]);
|
||
|
- close(fds[WRITE]);
|
||
|
+ close(fds[INPUT]);
|
||
|
+ close(fds[OUTPUT]);
|
||
|
|
||
|
ptr = fd_start;
|
||
|
while (ptr != NULL) {
|