1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch/* Copyright 2013 The Chromium Authors. All rights reserved.
2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch * Use of this source code is governed by a BSD-style license that can be
3ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch * found in the LICENSE file. */
4ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
5ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "nacl_io/ossocket.h"
6ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#if defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) && !defined(__BIONIC__)
8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include <string.h>
10ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochinline uint32_t ntohl(uint32_t networklong) {
12ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  uint8_t input[4];
13ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  memcpy(input, &networklong, 4);
14ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
15ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  return ((((uint32_t) input[0]) << 24) |
16ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch          (((uint32_t) input[1]) << 16) |
17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch          (((uint32_t) input[2]) << 8) |
18ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch          ((uint32_t) input[3]));
19ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif  /* defined(PROVIDES_SOCKET_API) && !defined(__GLIBC__) ... */
22