summaryrefslogtreecommitdiff
path: root/portable/src/pendian.c
diff options
context:
space:
mode:
Diffstat (limited to 'portable/src/pendian.c')
-rw-r--r--portable/src/pendian.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/portable/src/pendian.c b/portable/src/pendian.c
new file mode 100644
index 0000000..3649ab0
--- /dev/null
+++ b/portable/src/pendian.c
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*
+ * pendian.c *
+ * *
+ * Copyright 2007, 2008 Nuance Communciations, Inc. *
+ * *
+ * Licensed under the Apache License, Version 2.0 (the 'License'); *
+ * you may not use this file except in compliance with the License. *
+ * *
+ * You may obtain a copy of the License at *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, software *
+ * distributed under the License is distributed on an 'AS IS' BASIS, *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
+ * See the License for the specific language governing permissions and *
+ * limitations under the License. *
+ * *
+ *---------------------------------------------------------------------------*/
+
+
+
+
+
+
+#include "pendian.h"
+
+void swap_byte_order(void *buffer, size_t count, size_t itemSize)
+{
+ char *data = (char *) buffer;
+ register char *p, *q, c;
+
+ /* Process every item */
+ while (count > 0)
+ {
+ p = data;
+ q = data + itemSize - 1;
+
+ while (p < q)
+ {
+ c = *p;
+ *p++ = *q;
+ *q-- = c;
+ }
+
+ /* Prepare for next pass */
+ data += itemSize;
+ count--;
+ }
+}