]> Joshua Wise's Git repositories - netwatch.git/blob - lib/minilib.c
initial checkin of RFB
[netwatch.git] / lib / minilib.c
1 #include "console.h"
2 #include <minilib.h>
3
4 void memcpy(void *dest, const void *src, int bytes)
5 {
6         char *cdest = dest;
7         const char *csrc = src;
8         while (bytes--)
9                 *(cdest++) = *(csrc++);
10 }
11
12 void memset(void *dest, int data, int bytes)
13 {
14         unsigned char *cdest = dest;
15         while (bytes--)
16                 *(cdest++) = (unsigned char)data;
17 }
18
19 void memmove(void *dest, void *src, int bytes)
20 {
21         char * cdest = dest;
22         char * csrc = src;
23         if ((cdest > csrc) && (cdest <= (csrc + bytes)))
24         {
25                 /* do it backwards! */
26                 cdest += bytes;
27                 csrc += bytes;
28                 while (bytes--)
29                         *(--cdest) = *(--csrc);
30         } else
31                 while (bytes--)
32                         *(cdest++) = *(csrc++);
33 }
34
35 int memcmp (const char *a2, const char *a1, int bytes) {
36         while (bytes--)
37         {
38                 if (*(a2++) != *(a1++))
39                         return 1;
40         }
41         return 0;
42 }
43
44 int strcmp (const char *a2, const char *a1) {
45         while (1) {
46                 if (*a2 != *a1) return 1;
47                 if (*a2 == 0) return 0;
48                 a1++;
49                 a2++;
50         }
51 }
52
53 int strncmp (const char *a2, const char *a1, int n) {
54         while (n--) {
55                 if (*a2 != *a1) return 1;
56                 if (*a2 == 0) return 0;
57                 a1++;
58                 a2++;
59         }
60         return 0;
61 }
62
63 int strlen(const char *c)
64 {
65         int l = 0;
66         while (*(c++))
67                 l++;
68         return l;
69 }
70
71 void strcpy(char *a2, const char *a1)
72 {
73         do {
74                 *(a2++) = *a1;
75         } while (*(a1++));
76 }
77
78 void strcat(char *dest, char *src)
79 {
80         while (*dest)
81                 dest++;
82         while (*src)
83                 *(dest++) = *(src++);
84         *(dest++) = *(src++);
85 }
86
87 void puts(const char *c)
88 {
89         putbytes(c, strlen(c));
90 }
91
92 static char hexarr[] = "0123456789ABCDEF";
93 void tohex(char *s, unsigned long l)
94 {
95         int i;
96         for (i = 0; i < 8; i++)
97         {
98                 s[i] = hexarr[l >> 28];
99                 l <<= 4;
100         }
101 }
102
103 void puthex(unsigned long l)
104 {
105         char d[9];
106         d[8] = 0;
107         tohex(d, l);
108         puts(d);
109 }
110
111 unsigned short htons(unsigned short in)
112 {
113         return (in >> 8) | (in << 8);
114 }
115
116 unsigned int htonl(unsigned int in)
117 {
118         return ((in & 0xff) << 24) |
119                ((in & 0xff00) << 8) |
120                ((in & 0xff0000UL) >> 8) |
121                ((in & 0xff000000UL) >> 24);
122 }
This page took 0.033863 seconds and 4 git commands to generate.