Subversion Repositories HelenOS-historic

Rev

Rev 1653 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1653 Rev 1719
Line 42... Line 42...
42
/* Dummy implementation of mem/ functions */
42
/* Dummy implementation of mem/ functions */
43
 
43
 
44
void * memset(void *s, int c, size_t n)
44
void *memset(void *s, int c, size_t n)
45
{
45
{
46
    char *os = s;
46
    char *os = s;
-
 
47
   
47
    while (n--)
48
    while (n--)
48
        *(os++) = c;
49
        *(os++) = c;
-
 
50
   
49
    return s;
51
    return s;
50
}
52
}
51
 
53
 
-
 
54
struct along {
-
 
55
    unsigned long n;
52
struct along {unsigned long n; } __attribute__ ((packed));
56
} __attribute__ ((packed));
53
 
57
 
54
static void * unaligned_memcpy(void *dst, const void *src, size_t n)
58
static void *unaligned_memcpy(void *dst, const void *src, size_t n)
55
{
59
{
56
    int i, j;
60
    int i, j;
57
    struct along *adst = dst;
61
    struct along *adst = dst;
Line 88... Line 92...
88
   
92
   
89
    if (src > dst)
93
    if (src > dst)
90
        return memcpy(dst, src, n);
94
        return memcpy(dst, src, n);
91
 
95
 
92
    for (j = (n%sizeof(unsigned long))-1; j >= 0; j--)
96
    for (j = (n % sizeof(unsigned long)) - 1; j >= 0; j--)
93
        ((unsigned char *)(((unsigned long *) dst) + i))[j] = ((unsigned char *)(((unsigned long *) src) + i))[j];
97
        ((unsigned char *) ((unsigned long *) dst))[j] = ((unsigned char *) ((unsigned long *) src))[j];
94
 
98
 
95
    for (i = n/sizeof(unsigned long)-1; i >=0 ; i--)
99
    for (i = n / sizeof(unsigned long) - 1; i >=0 ; i--)
96
        ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
100
        ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
97
       
101
       
98
    return (char *)src;
102
    return (char *) src;
Line 105... Line 109...
105
 */
109
 */
106
size_t strlen(const char *str)
110
size_t strlen(const char *str)
107
{
111
{
108
    size_t counter = 0;
112
    size_t counter = 0;
109
 
113
 
110
    while (str[counter] != 0) {
114
    while (str[counter] != 0)
111
        counter++;
115
        counter++;
112
    }
-
 
113
 
116
 
114
    return counter;
117
    return counter;
115
}
118
}
116
 
119
 
117
int strcmp(const char *a,const char *b)
120
int strcmp(const char *a, const char *b)
118
{
121
{
119
    int c=0;
122
    int c = 0;
120
   
123
   
121
    while(a[c]&&b[c]&&(!(a[c]-b[c]))) c++;
124
    while (a[c] && b[c] && (!(a[c] - b[c])))
-
 
125
        c++;
122
   
126
   
123
    return a[c]-b[c];
127
    return (a[c] - b[c]);
124
   
128
   
125
}
129
}
126
 
130
 
127
 
131
 
128
 
-
 
129
/** Return pointer to the first occurence of character c in string
132
/** Return pointer to the first occurence of character c in string
130
 * @param str scanned string
133
 * @param str scanned string
131
 * @param c searched character (taken as one byte)
134
 * @param c searched character (taken as one byte)
132
 * @return pointer to the matched character or NULL if it is not found in given string.
135
 * @return pointer to the matched character or NULL if it is not found in given string.
133
 */
136
 */
Line 295... Line 298...
295
    return (sgn?-number:number);
298
    return (sgn ? -number : number);
296
}
299
}
297
 
300
 
298
char *strcpy(char *dest, const char *src)
301
char *strcpy(char *dest, const char *src)
299
{
302
{
-
 
303
    char *orig = dest;
-
 
304
   
300
    while (*(dest++) = *(src++))
305
    while ((*(dest++) = *(src++)));
301
        ;
306
    return orig;
302
}
307
}
303
 
308
 
304
char *strncpy(char *dest, const char *src, size_t n)
309
char *strncpy(char *dest, const char *src, size_t n)
305
{
310
{
-
 
311
    char *orig = dest;
-
 
312
   
306
    while ((*(dest++) = *(src++)) && --n)
313
    while ((*(dest++) = *(src++)) && --n);
307
        ;
314
    return orig;
308
}
315
}
309
 
316
 
310
 
317
 
311
 /** @}
318
/** @}
312
 */
319
 */
313
 
-
 
314
 
-