]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/dev/munge.c
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / dev / munge.c
index 7d2433cd16fc23ac4fe4c622509d5a31a0d3f7ac..800757bf53f39f98a2a9f87e549f64ff52b1f43f 100644 (file)
@@ -232,6 +232,20 @@ munge_wlll(void *args)
        out_args[0] = in_args[0];
 }
 
        out_args[0] = in_args[0];
 }
 
+void
+munge_wlllww(void *args)
+{
+       volatile uint64_t *out_args = (volatile uint64_t*)args;
+       volatile uint32_t *in_args = (volatile uint32_t*)args;
+
+       out_args[5] = in_args[8];
+       out_args[4] = in_args[7];
+       out_args[3] = *(volatile uint64_t*)&in_args[5];
+       out_args[2] = *(volatile uint64_t*)&in_args[3];
+       out_args[1] = *(volatile uint64_t*)&in_args[1];
+       out_args[0] = in_args[0];
+}
+
 void
 munge_wllll(void *args)
 {
 void
 munge_wllll(void *args)
 {
@@ -300,6 +314,21 @@ munge_wwwlww(void *args)
        out_args[0] = in_args[0];
 }
 
        out_args[0] = in_args[0];
 }
 
+void
+munge_wwwlwww(void *args)
+{
+       volatile uint64_t *out_args = (volatile uint64_t*)args;
+       volatile uint32_t *in_args = (volatile uint32_t*)args;
+
+       out_args[6] = in_args[7];
+       out_args[5] = in_args[6];
+       out_args[4] = in_args[5];
+       out_args[3] = *(volatile uint64_t*)&in_args[3];
+       out_args[2] = in_args[2];
+       out_args[1] = in_args[1];
+       out_args[0] = in_args[0];
+}
+
 void
 munge_wwwl(void *args)
 {
 void
 munge_wwwl(void *args)
 {
@@ -326,6 +355,22 @@ munge_wwwwlw(void *args)
        out_args[0] = in_args[0];
 }
 
        out_args[0] = in_args[0];
 }
 
+void
+munge_wwwwllww(void *args)
+{
+       volatile uint64_t *out_args = (volatile uint64_t*)args;
+       volatile uint32_t *in_args = (volatile uint32_t*)args;
+
+       out_args[7] = in_args[9];
+       out_args[6] = in_args[8];
+       out_args[5] = *(volatile uint64_t*)&in_args[6];
+       out_args[4] = *(volatile uint64_t*)&in_args[4];
+       out_args[3] = in_args[3];
+       out_args[2] = in_args[2];
+       out_args[1] = in_args[1];
+       out_args[0] = in_args[0];
+}
+
 void
 munge_wwwwl(void *args)
 {
 void
 munge_wwwwl(void *args)
 {
@@ -502,6 +547,12 @@ munge_llllll(void *args __unused)
        /* Nothing to do, already all 64-bit */
 }
 
        /* Nothing to do, already all 64-bit */
 }
 
+void
+munge_llll(void *args __unused)
+{
+       /* Nothing to do, already all 64-bit */
+}
+
 void
 munge_ll(void *args __unused)
 {
 void
 munge_ll(void *args __unused)
 {