davide carboni / Mbed 2 deprecated pymite_http_get

Dependencies:   mbed

Committer:
dadaista
Date:
Wed Jul 21 12:50:41 2010 +0000
Revision:
0:14e5e829dffe

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dadaista 0:14e5e829dffe 1 /*
dadaista 0:14e5e829dffe 2 # This file is Copyright 2003, 2006, 2007, 2009 Dean Hall.
dadaista 0:14e5e829dffe 3 #
dadaista 0:14e5e829dffe 4 # This file is part of the PyMite VM.
dadaista 0:14e5e829dffe 5 # The PyMite VM is free software: you can redistribute it and/or modify
dadaista 0:14e5e829dffe 6 # it under the terms of the GNU GENERAL PUBLIC LICENSE Version 2.
dadaista 0:14e5e829dffe 7 #
dadaista 0:14e5e829dffe 8 # The PyMite VM is distributed in the hope that it will be useful,
dadaista 0:14e5e829dffe 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
dadaista 0:14e5e829dffe 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dadaista 0:14e5e829dffe 11 # A copy of the GNU GENERAL PUBLIC LICENSE Version 2
dadaista 0:14e5e829dffe 12 # is seen in the file COPYING in this directory.
dadaista 0:14e5e829dffe 13 */
dadaista 0:14e5e829dffe 14
dadaista 0:14e5e829dffe 15
dadaista 0:14e5e829dffe 16 #undef __FILE_ID__
dadaista 0:14e5e829dffe 17 #define __FILE_ID__ 0x11
dadaista 0:14e5e829dffe 18
dadaista 0:14e5e829dffe 19
dadaista 0:14e5e829dffe 20 /**
dadaista 0:14e5e829dffe 21 * \file
dadaista 0:14e5e829dffe 22 * \brief Standard Library Interface
dadaista 0:14e5e829dffe 23 *
dadaista 0:14e5e829dffe 24 * PyMite requires a few functions from a few different
dadaista 0:14e5e829dffe 25 * standard C libraries (memory, string, etc).
dadaista 0:14e5e829dffe 26 */
dadaista 0:14e5e829dffe 27
dadaista 0:14e5e829dffe 28
dadaista 0:14e5e829dffe 29 #include "pm.h"
dadaista 0:14e5e829dffe 30
dadaista 0:14e5e829dffe 31
dadaista 0:14e5e829dffe 32 /** use Duff's Device or simple for-loop for memcpy. */
dadaista 0:14e5e829dffe 33 #define USE_DUFFS_DEVICE 0
dadaista 0:14e5e829dffe 34
dadaista 0:14e5e829dffe 35
dadaista 0:14e5e829dffe 36 #if !HAVE_STRING_H
dadaista 0:14e5e829dffe 37
dadaista 0:14e5e829dffe 38 void *
dadaista 0:14e5e829dffe 39 sli_memcpy(unsigned char *to, unsigned char const *from, unsigned int n)
dadaista 0:14e5e829dffe 40 {
dadaista 0:14e5e829dffe 41 unsigned char *tobak;
dadaista 0:14e5e829dffe 42
dadaista 0:14e5e829dffe 43 /* Store init value of to */
dadaista 0:14e5e829dffe 44 tobak = to;
dadaista 0:14e5e829dffe 45
dadaista 0:14e5e829dffe 46 #if USE_DUFFS_DEVICE
dadaista 0:14e5e829dffe 47 if (n > 0)
dadaista 0:14e5e829dffe 48 {
dadaista 0:14e5e829dffe 49 switch (n & 0x7)
dadaista 0:14e5e829dffe 50 do
dadaista 0:14e5e829dffe 51 {
dadaista 0:14e5e829dffe 52 case 0:
dadaista 0:14e5e829dffe 53 *to++ = *from++;
dadaista 0:14e5e829dffe 54 case 7:
dadaista 0:14e5e829dffe 55 *to++ = *from++;
dadaista 0:14e5e829dffe 56 case 6:
dadaista 0:14e5e829dffe 57 *to++ = *from++;
dadaista 0:14e5e829dffe 58 case 5:
dadaista 0:14e5e829dffe 59 *to++ = *from++;
dadaista 0:14e5e829dffe 60 case 4:
dadaista 0:14e5e829dffe 61 *to++ = *from++;
dadaista 0:14e5e829dffe 62 case 3:
dadaista 0:14e5e829dffe 63 *to++ = *from++;
dadaista 0:14e5e829dffe 64 case 2:
dadaista 0:14e5e829dffe 65 *to++ = *from++;
dadaista 0:14e5e829dffe 66 case 1:
dadaista 0:14e5e829dffe 67 *to++ = *from++;
dadaista 0:14e5e829dffe 68 }
dadaista 0:14e5e829dffe 69 while ((n -= 8) > 0);
dadaista 0:14e5e829dffe 70 }
dadaista 0:14e5e829dffe 71 #else
dadaista 0:14e5e829dffe 72 for (; n > 0; n--)
dadaista 0:14e5e829dffe 73 {
dadaista 0:14e5e829dffe 74 *to = *from;
dadaista 0:14e5e829dffe 75 from++;
dadaista 0:14e5e829dffe 76 to++;
dadaista 0:14e5e829dffe 77 }
dadaista 0:14e5e829dffe 78 #endif /* USE_DUFFS_DEVICE */
dadaista 0:14e5e829dffe 79 return tobak;
dadaista 0:14e5e829dffe 80 }
dadaista 0:14e5e829dffe 81
dadaista 0:14e5e829dffe 82
dadaista 0:14e5e829dffe 83 int
dadaista 0:14e5e829dffe 84 sli_strlen(char const *s)
dadaista 0:14e5e829dffe 85 {
dadaista 0:14e5e829dffe 86 char const *si = s;
dadaista 0:14e5e829dffe 87 int len = 0;
dadaista 0:14e5e829dffe 88
dadaista 0:14e5e829dffe 89 while (*si++)
dadaista 0:14e5e829dffe 90 {
dadaista 0:14e5e829dffe 91 len++;
dadaista 0:14e5e829dffe 92 }
dadaista 0:14e5e829dffe 93 return len;
dadaista 0:14e5e829dffe 94 }
dadaista 0:14e5e829dffe 95
dadaista 0:14e5e829dffe 96
dadaista 0:14e5e829dffe 97 int
dadaista 0:14e5e829dffe 98 sli_strcmp(char const *s1, char const *s2)
dadaista 0:14e5e829dffe 99 {
dadaista 0:14e5e829dffe 100 /* While not at either strings' end and they're same */
dadaista 0:14e5e829dffe 101 while ((*s1 != C_NULL) && (*s2 != C_NULL) && (*s1 == *s2))
dadaista 0:14e5e829dffe 102 {
dadaista 0:14e5e829dffe 103 s1++;
dadaista 0:14e5e829dffe 104 s2++;
dadaista 0:14e5e829dffe 105 }
dadaista 0:14e5e829dffe 106
dadaista 0:14e5e829dffe 107 /* Return string difference */
dadaista 0:14e5e829dffe 108 return *s1 - *s2;
dadaista 0:14e5e829dffe 109 }
dadaista 0:14e5e829dffe 110
dadaista 0:14e5e829dffe 111
dadaista 0:14e5e829dffe 112 int
dadaista 0:14e5e829dffe 113 sli_strncmp(char const *s1, char const *s2, unsigned int n)
dadaista 0:14e5e829dffe 114 {
dadaista 0:14e5e829dffe 115 unsigned int i = 0;
dadaista 0:14e5e829dffe 116
dadaista 0:14e5e829dffe 117 if (n == 0)
dadaista 0:14e5e829dffe 118 {
dadaista 0:14e5e829dffe 119 return 0;
dadaista 0:14e5e829dffe 120 }
dadaista 0:14e5e829dffe 121
dadaista 0:14e5e829dffe 122 /* Scan n bytes in string */
dadaista 0:14e5e829dffe 123 for (i = 0; i < n; i++)
dadaista 0:14e5e829dffe 124 {
dadaista 0:14e5e829dffe 125 /* If bytes differ, return difference */
dadaista 0:14e5e829dffe 126 if (s1[i] != s2[i])
dadaista 0:14e5e829dffe 127 {
dadaista 0:14e5e829dffe 128 return s1[i] - s2[i];
dadaista 0:14e5e829dffe 129 }
dadaista 0:14e5e829dffe 130 }
dadaista 0:14e5e829dffe 131 return 0;
dadaista 0:14e5e829dffe 132 }
dadaista 0:14e5e829dffe 133
dadaista 0:14e5e829dffe 134 #endif /* HAVE_STRING_H */
dadaista 0:14e5e829dffe 135
dadaista 0:14e5e829dffe 136
dadaista 0:14e5e829dffe 137 /*
dadaista 0:14e5e829dffe 138 * This function is moved outside of HAVE_STRING_H because the one in string.h
dadaista 0:14e5e829dffe 139 * will not accept a null value for the second arg
dadaista 0:14e5e829dffe 140 */
dadaista 0:14e5e829dffe 141 void
dadaista 0:14e5e829dffe 142 sli_memset(unsigned char *dest, char const val, unsigned int n)
dadaista 0:14e5e829dffe 143 {
dadaista 0:14e5e829dffe 144 unsigned int i;
dadaista 0:14e5e829dffe 145
dadaista 0:14e5e829dffe 146 for (i = 0; i < n; i++)
dadaista 0:14e5e829dffe 147 {
dadaista 0:14e5e829dffe 148 *dest = (unsigned char)val;
dadaista 0:14e5e829dffe 149 dest++;
dadaista 0:14e5e829dffe 150 }
dadaista 0:14e5e829dffe 151 }