]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/dev/i386/munge.s
xnu-1486.2.11.tar.gz
[apple/xnu.git] / bsd / dev / i386 / munge.s
index 414dd6fe18c8e6880c9ce3b296b68d241cccf7d5..d174c06e3183e47e4ed1a2657f4b9386d27cac5b 100644 (file)
@@ -29,7 +29,7 @@
 /*
  * Syscall argument mungers.
  *
- * The data to be munged has been explicitly copied in to the arguement area,
+ * The data to be munged has been explicitly copied in to the argument area,
  * and will be munged in place in the uu_arg[] array.  Because of this, the
  * functions all take the same arguments as their PPC equivalents, but the
  * first argument is ignored.  These mungers are for 32-bit app's syscalls,
@@ -150,18 +150,36 @@ ENTRY(munge_wlw)
        movl    %edx,4(%ecx)
        ret
 
+Entry(munge_wwwlw)
+       movl    8(%esp),%ecx    // get &uu_args
+       xorl    %edx,%edx
+       movl    20(%ecx),%eax
+       movl    %eax,32(%ecx)
+       movl    %edx,36(%ecx)
+       jmp     Lwwwl
+       
 ENTRY(munge_wwwl)
        movl    8(%esp),%ecx    // get &uu_args
        xorl    %edx,%edx
+Lwwwl:
        movl    12(%ecx),%eax
        movl    %eax,24(%ecx)
        movl    16(%ecx),%eax
        movl    %eax,28(%ecx)
        jmp     Lw3
 
+ENTRY(munge_wwwwlw)
+       movl    8(%esp),%ecx    // get &uu_args
+       xorl    %edx,%edx
+       movl    24(%ecx),%eax
+       movl    %eax,40(%ecx)
+       movl    %edx,44(%ecx)
+       jmp     Lwwwwl
+
 ENTRY(munge_wwwwl)
        movl    8(%esp),%ecx    // get &uu_args
        xorl    %edx,%edx
+Lwwwwl:
        movl    16(%ecx),%eax
        movl    %eax,32(%ecx)
        movl    20(%ecx),%eax
@@ -177,6 +195,32 @@ ENTRY(munge_wwwwwl)
        movl    %eax,44(%ecx)
        jmp     Lw5
 
+ENTRY(munge_wwwwwwlw)
+       movl    8(%esp),%ecx    // get &uu_args
+       xorl    %edx,%edx
+       movl    32(%ecx),%eax
+       movl    %eax,56(%ecx)
+       movl    %edx,60(%ecx)
+       movl    24(%ecx),%eax
+       movl    %eax,48(%ecx)
+       movl    28(%ecx),%eax
+       movl    %eax,52(%ecx)
+       jmp     Lw6
+       
+
+ENTRY(munge_wwwwwwll)
+       movl    8(%esp),%ecx    // get &uu_args
+       xorl    %edx,%edx
+       movl    32(%ecx),%eax
+       movl    %eax,56(%ecx)
+       movl    36(%ecx),%eax
+       movl    %eax,60(%ecx)
+       movl    24(%ecx),%eax
+       movl    %eax,48(%ecx)
+       movl    28(%ecx),%eax
+       movl    %eax,52(%ecx)
+       jmp     Lw6
+
 ENTRY(munge_wsw)
        movl    8(%esp),%ecx    // get &uu_args
        movl    8(%ecx),%eax
@@ -209,3 +253,8 @@ ENTRY(munge_wwwsw)
        movl    %edx,28(%ecx)
        xorl    %edx,%edx
        jmp     Lw3
+
+ENTRY(munge_llllll)
+       ret                                             // actually, this method has nothing to do - all
+                                                       // arguments are already 64-bits, with no mixing of
+                                                       // args that need sign/zero extension