You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2015/12/08 23:22:45 UTC
incubator-mynewt-larva git commit: Add util/endian.h;
simple byte swapping macros.
Repository: incubator-mynewt-larva
Updated Branches:
refs/heads/master 6b0845f4b -> 2ffa9b4f0
Add util/endian.h; simple byte swapping macros.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/commit/2ffa9b4f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/tree/2ffa9b4f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/diff/2ffa9b4f
Branch: refs/heads/master
Commit: 2ffa9b4f01f329f8e88f139549ab82b676283156
Parents: 6b0845f
Author: Christopher Collins <cc...@gmail.com>
Authored: Tue Dec 8 14:20:18 2015 -0800
Committer: Christopher Collins <cc...@gmail.com>
Committed: Tue Dec 8 14:20:54 2015 -0800
----------------------------------------------------------------------
libs/shell/src/shell.c | 1 +
libs/util/include/util/endian.h | 89 ++++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/2ffa9b4f/libs/shell/src/shell.c
----------------------------------------------------------------------
diff --git a/libs/shell/src/shell.c b/libs/shell/src/shell.c
index 20c8251..6a51e4e 100644
--- a/libs/shell/src/shell.c
+++ b/libs/shell/src/shell.c
@@ -20,6 +20,7 @@
#include <shell/shell.h>
#include <util/base64.h>
+#include <util/endian.h>
#include <stdio.h>
#include <string.h>
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/2ffa9b4f/libs/util/include/util/endian.h
----------------------------------------------------------------------
diff --git a/libs/util/include/util/endian.h b/libs/util/include/util/endian.h
new file mode 100644
index 0000000..c8c838a
--- /dev/null
+++ b/libs/util/include/util/endian.h
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2015 Runtime 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.
+ */
+
+#ifndef H_ENDIAN_
+#define H_ENDIAN_
+
+#include <inttypes.h>
+
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+
+#ifndef ntohll
+#define ntohll(x) ((uint64_t)(x))
+#endif
+
+#ifndef htonll
+#define htonll(x) ((uint64_t)(x))
+#endif
+
+#ifndef ntohl
+#define ntohl(x) ((uint32_t)(x))
+#endif
+
+#ifndef htonl
+#define htonl(x) ((uint32_t)(x))
+#endif
+
+#ifndef ntohs
+#define ntohs(x) ((uint16_t)(x))
+#endif
+
+#ifndef htons
+#define htons(x) ((uint16_t)(x))
+#endif
+
+#else
+
+#ifndef ntohll
+#define ntohll(x) ((uint64_t) \
+ ((((x) & 0xff00000000000000ull) >> 56) | \
+ (((x) & 0x00ff000000000000ull) >> 40) | \
+ (((x) & 0x0000ff0000000000ull) >> 24) | \
+ (((x) & 0x000000ff00000000ull) >> 8) | \
+ (((x) & 0x00000000ff000000ull) << 8) | \
+ (((x) & 0x0000000000ff0000ull) << 24) | \
+ (((x) & 0x000000000000ff00ull) << 40) | \
+ (((x) & 0x00000000000000ffull) << 56)))
+#endif
+
+#ifndef htonll
+#define htonll ntohll
+#endif
+
+#ifndef ntohl
+#define ntohl(x) ((uint32_t) \
+ ((((x) & 0xff000000) >> 24) | \
+ (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0x0000ff00) << 8) | \
+ (((x) & 0x000000ff) << 24)))
+#endif
+
+#ifndef htonl
+#define htonl ntohl
+#endif
+
+#ifndef htons
+#define htons(x) ((uint16_t) \
+ ((((x) & 0xff00) >> 8) | \
+ (((x) & 0x00ff) << 8)))
+#endif
+
+#ifndef ntohs
+#define ntohs htons
+#endif
+
+#endif
+#endif