Re: [Qemu-devel] sem* and msg* for qemu

2007-03-25 Thread Kirill A. Shutemov
On [Thu, 01.02.2007 04:53], Hetz Ben Hamo wrote:
 attached? where?
Sorry. Attached now.
--- qemu.orig/linux-user/syscall.c.orig 2007-02-01 00:15:37 +0300
+++ qemu/linux-user/syscall.c   2007-02-01 00:03:56 +0300
@@ -1226,6 +1226,35 @@
 gemu_log(Unsupported ipc call: %ld (version %d)\n, call, version);
 ret = -ENOSYS;
 break;
+
+   case IPCOP_msgget:
+   ret = get_errno(msgget(first, second));
+   break;
+
+   case IPCOP_msgsnd:
+   ret = get_errno(msgsnd(first, (struct msgbuf *) ptr, second, 
third));
+   break;
+
+   case IPCOP_msgctl:
+   ret = get_errno(msgctl(first, second, (struct msqid_ds *) ptr));
+   break;
+
+   case IPCOP_msgrcv:
+   {
+   struct ipc_kludge
+   {
+   void *__unbounded msgp;
+   long int msgtyp;
+   };
+
+   struct ipc_kludge *foo = (struct ipc_kludge *) ptr;
+   struct msgbuf *msgp = (struct msgbuf *) foo-msgp;
+
+   ret = get_errno(msgrcv(first, msgp, second, 0, third));
+
+   }
+   break;
+
 case IPCOP_shmat:
/* SHM_* flags are the same on all linux platforms */
ret = get_errno((long) shmat(first, (void *) ptr, second));
--- qemu-0.8.2.orig/linux-user/syscall.c2007-01-31 23:06:58 +0300
+++ qemu-0.8.2/linux-user/syscall.c 2007-01-31 23:22:12 +0300
@@ -43,6 +43,7 @@
 #include sys/poll.h
 #include sys/times.h
 #include sys/shm.h
+#include sys/sem.h
 #include sys/statfs.h
 #include utime.h
 #include sys/sysinfo.h
@@ -1188,6 +1189,12 @@
 uint32_t   size;
 } shm_regions[N_SHM_REGIONS];
 
+union semun {
+   int val;
+   struct senid_ds *buf;
+   unsigned short *array;
+};
+
 /* ??? This only works with linear mappings.  */
 static long do_ipc(long call, long first, long second, long third,
   long ptr, long fifth)
@@ -1202,6 +1209,23 @@
 call = 0x;
 
 switch (call) {
+case IPCOP_semop:
+ret = get_errno(semop(first,(struct sembuf *) ptr, second));
+break;
+
+case IPCOP_semget:
+ret = get_errno(semget(first, second, third));
+break;
+
+case IPCOP_semctl:
+ret = get_errno(semctl(first, second, third, ((union 
semun*)ptr)-val));
+
+break;
+
+case IPCOP_semtimedop:
+gemu_log(Unsupported ipc call: %ld (version %d)\n, call, version);
+ret = -ENOSYS;
+break;
 case IPCOP_shmat:
/* SHM_* flags are the same on all linux platforms */
ret = get_errno((long) shmat(first, (void *) ptr, second));


signature.asc
Description: Digital signature


Re: [Qemu-devel] sem* and msg* for qemu

2007-02-01 Thread Kirill A. Shutemov
On [Thu, 01.02.2007 04:53], Hetz Ben Hamo wrote:
 attached? where?
Oh... Sorry. Attached now.
--- qemu-0.8.2.orig/linux-user/syscall.c2007-01-31 23:06:58 +0300
+++ qemu-0.8.2/linux-user/syscall.c 2007-01-31 23:22:12 +0300
@@ -43,6 +43,7 @@
 #include sys/poll.h
 #include sys/times.h
 #include sys/shm.h
+#include sys/sem.h
 #include sys/statfs.h
 #include utime.h
 #include sys/sysinfo.h
@@ -1188,6 +1189,12 @@
 uint32_t   size;
 } shm_regions[N_SHM_REGIONS];
 
+union semun {
+   int val;
+   struct senid_ds *buf;
+   unsigned short *array;
+};
+
 /* ??? This only works with linear mappings.  */
 static long do_ipc(long call, long first, long second, long third,
   long ptr, long fifth)
@@ -1202,6 +1209,23 @@
 call = 0x;
 
 switch (call) {
+case IPCOP_semop:
+ret = get_errno(semop(first,(struct sembuf *) ptr, second));
+break;
+
+case IPCOP_semget:
+ret = get_errno(semget(first, second, third));
+break;
+
+case IPCOP_semctl:
+ret = get_errno(semctl(first, second, third, ((union 
semun*)ptr)-val));
+
+break;
+
+case IPCOP_semtimedop:
+gemu_log(Unsupported ipc call: %ld (version %d)\n, call, version);
+ret = -ENOSYS;
+break;
 case IPCOP_shmat:
/* SHM_* flags are the same on all linux platforms */
ret = get_errno((long) shmat(first, (void *) ptr, second));
--- qemu.orig/linux-user/syscall.c.orig 2007-02-01 00:15:37 +0300
+++ qemu/linux-user/syscall.c   2007-02-01 00:03:56 +0300
@@ -1226,6 +1226,35 @@
 gemu_log(Unsupported ipc call: %ld (version %d)\n, call, version);
 ret = -ENOSYS;
 break;
+
+   case IPCOP_msgget:
+   ret = get_errno(msgget(first, second));
+   break;
+
+   case IPCOP_msgsnd:
+   ret = get_errno(msgsnd(first, (struct msgbuf *) ptr, second, 
third));
+   break;
+
+   case IPCOP_msgctl:
+   ret = get_errno(msgctl(first, second, (struct msqid_ds *) ptr));
+   break;
+
+   case IPCOP_msgrcv:
+   {
+   struct ipc_kludge
+   {
+   void *__unbounded msgp;
+   long int msgtyp;
+   };
+
+   struct ipc_kludge *foo = (struct ipc_kludge *) ptr;
+   struct msgbuf *msgp = (struct msgbuf *) foo-msgp;
+
+   ret = get_errno(msgrcv(first, msgp, second, 0, third));
+
+   }
+   break;
+
 case IPCOP_shmat:
/* SHM_* flags are the same on all linux platforms */
ret = get_errno((long) shmat(first, (void *) ptr, second));


signature.asc
Description: Digital signature
___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] sem* and msg* for qemu

2007-01-31 Thread Kirill A. Shutemov
In the attachment patches to add support System V semaphores and message
queues. This is fixed and tested debian patch.


signature.asc
Description: Digital signature
___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] sem* and msg* for qemu

2007-01-31 Thread Hetz Ben Hamo

attached? where?

Thanks,
Hetz

On 1/31/07, Kirill A. Shutemov [EMAIL PROTECTED] wrote:

In the attachment patches to add support System V semaphores and message
queues. This is fixed and tested debian patch.

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFFwQtmbWYnhzC5v6oRAl/oAJ0T4X44En/65pE4H4EzFVJemtbZhQCcCIh5
RG1cpmTCmKn0fMSb62DKa24=
=6Ius
-END PGP SIGNATURE-

___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel





--
Skepticism is the lazy person's default position.
Visit my blog (hebrew) for things that (sometimes) matter:
http://wp.dad-answers.com


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel