Used in Live Traffic Update Nokia LCD Display Project

Fork of NetServices by Segundo Equipo

Committer:
rrajan8
Date:
Wed Mar 06 19:07:23 2013 +0000
Revision:
8:92b57208ab99
Parent:
0:ac1725ba162c
This project utilizes mbed's networking features to display live traffic updates on the Nokia LCD using the MapQuest API's Traffic Web Service.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
segundo 0:ac1725ba162c 1 /**
segundo 0:ac1725ba162c 2 * @file
segundo 0:ac1725ba162c 3 * Common functions used throughout the stack.
segundo 0:ac1725ba162c 4 *
segundo 0:ac1725ba162c 5 */
segundo 0:ac1725ba162c 6
segundo 0:ac1725ba162c 7 /*
segundo 0:ac1725ba162c 8 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
segundo 0:ac1725ba162c 9 * All rights reserved.
segundo 0:ac1725ba162c 10 *
segundo 0:ac1725ba162c 11 * Redistribution and use in source and binary forms, with or without modification,
segundo 0:ac1725ba162c 12 * are permitted provided that the following conditions are met:
segundo 0:ac1725ba162c 13 *
segundo 0:ac1725ba162c 14 * 1. Redistributions of source code must retain the above copyright notice,
segundo 0:ac1725ba162c 15 * this list of conditions and the following disclaimer.
segundo 0:ac1725ba162c 16 * 2. Redistributions in binary form must reproduce the above copyright notice,
segundo 0:ac1725ba162c 17 * this list of conditions and the following disclaimer in the documentation
segundo 0:ac1725ba162c 18 * and/or other materials provided with the distribution.
segundo 0:ac1725ba162c 19 * 3. The name of the author may not be used to endorse or promote products
segundo 0:ac1725ba162c 20 * derived from this software without specific prior written permission.
segundo 0:ac1725ba162c 21 *
segundo 0:ac1725ba162c 22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
segundo 0:ac1725ba162c 23 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
segundo 0:ac1725ba162c 24 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
segundo 0:ac1725ba162c 25 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
segundo 0:ac1725ba162c 26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
segundo 0:ac1725ba162c 27 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
segundo 0:ac1725ba162c 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
segundo 0:ac1725ba162c 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
segundo 0:ac1725ba162c 30 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
segundo 0:ac1725ba162c 31 * OF SUCH DAMAGE.
segundo 0:ac1725ba162c 32 *
segundo 0:ac1725ba162c 33 * This file is part of the lwIP TCP/IP stack.
segundo 0:ac1725ba162c 34 *
segundo 0:ac1725ba162c 35 * Author: Simon Goldschmidt
segundo 0:ac1725ba162c 36 *
segundo 0:ac1725ba162c 37 */
segundo 0:ac1725ba162c 38
segundo 0:ac1725ba162c 39 #include "lwip/opt.h"
segundo 0:ac1725ba162c 40 #include "lwip/def.h"
segundo 0:ac1725ba162c 41
segundo 0:ac1725ba162c 42 /**
segundo 0:ac1725ba162c 43 * These are reference implementations of the byte swapping functions.
segundo 0:ac1725ba162c 44 * Again with the aim of being simple, correct and fully portable.
segundo 0:ac1725ba162c 45 * Byte swapping is the second thing you would want to optimize. You will
segundo 0:ac1725ba162c 46 * need to port it to your architecture and in your cc.h:
segundo 0:ac1725ba162c 47 *
segundo 0:ac1725ba162c 48 * #define LWIP_PLATFORM_BYTESWAP 1
segundo 0:ac1725ba162c 49 * #define LWIP_PLATFORM_HTONS(x) <your_htons>
segundo 0:ac1725ba162c 50 * #define LWIP_PLATFORM_HTONL(x) <your_htonl>
segundo 0:ac1725ba162c 51 *
segundo 0:ac1725ba162c 52 * Note ntohs() and ntohl() are merely references to the htonx counterparts.
segundo 0:ac1725ba162c 53 */
segundo 0:ac1725ba162c 54
segundo 0:ac1725ba162c 55 #if (LWIP_PLATFORM_BYTESWAP == 0) && (BYTE_ORDER == LITTLE_ENDIAN)
segundo 0:ac1725ba162c 56
segundo 0:ac1725ba162c 57 /**
segundo 0:ac1725ba162c 58 * Convert an u16_t from host- to network byte order.
segundo 0:ac1725ba162c 59 *
segundo 0:ac1725ba162c 60 * @param n u16_t in host byte order
segundo 0:ac1725ba162c 61 * @return n in network byte order
segundo 0:ac1725ba162c 62 */
segundo 0:ac1725ba162c 63 u16_t
segundo 0:ac1725ba162c 64 lwip_htons(u16_t n)
segundo 0:ac1725ba162c 65 {
segundo 0:ac1725ba162c 66 return ((n & 0xff) << 8) | ((n & 0xff00) >> 8);
segundo 0:ac1725ba162c 67 }
segundo 0:ac1725ba162c 68
segundo 0:ac1725ba162c 69 /**
segundo 0:ac1725ba162c 70 * Convert an u16_t from network- to host byte order.
segundo 0:ac1725ba162c 71 *
segundo 0:ac1725ba162c 72 * @param n u16_t in network byte order
segundo 0:ac1725ba162c 73 * @return n in host byte order
segundo 0:ac1725ba162c 74 */
segundo 0:ac1725ba162c 75 u16_t
segundo 0:ac1725ba162c 76 lwip_ntohs(u16_t n)
segundo 0:ac1725ba162c 77 {
segundo 0:ac1725ba162c 78 return lwip_htons(n);
segundo 0:ac1725ba162c 79 }
segundo 0:ac1725ba162c 80
segundo 0:ac1725ba162c 81 /**
segundo 0:ac1725ba162c 82 * Convert an u32_t from host- to network byte order.
segundo 0:ac1725ba162c 83 *
segundo 0:ac1725ba162c 84 * @param n u32_t in host byte order
segundo 0:ac1725ba162c 85 * @return n in network byte order
segundo 0:ac1725ba162c 86 */
segundo 0:ac1725ba162c 87 u32_t
segundo 0:ac1725ba162c 88 lwip_htonl(u32_t n)
segundo 0:ac1725ba162c 89 {
segundo 0:ac1725ba162c 90 return ((n & 0xff) << 24) |
segundo 0:ac1725ba162c 91 ((n & 0xff00) << 8) |
segundo 0:ac1725ba162c 92 ((n & 0xff0000UL) >> 8) |
segundo 0:ac1725ba162c 93 ((n & 0xff000000UL) >> 24);
segundo 0:ac1725ba162c 94 }
segundo 0:ac1725ba162c 95
segundo 0:ac1725ba162c 96 /**
segundo 0:ac1725ba162c 97 * Convert an u32_t from network- to host byte order.
segundo 0:ac1725ba162c 98 *
segundo 0:ac1725ba162c 99 * @param n u32_t in network byte order
segundo 0:ac1725ba162c 100 * @return n in host byte order
segundo 0:ac1725ba162c 101 */
segundo 0:ac1725ba162c 102 u32_t
segundo 0:ac1725ba162c 103 lwip_ntohl(u32_t n)
segundo 0:ac1725ba162c 104 {
segundo 0:ac1725ba162c 105 return lwip_htonl(n);
segundo 0:ac1725ba162c 106 }
segundo 0:ac1725ba162c 107
segundo 0:ac1725ba162c 108 #endif /* (LWIP_PLATFORM_BYTESWAP == 0) && (BYTE_ORDER == LITTLE_ENDIAN) */