Changeset a2ae4f4 in mainline for libc


Ignore:
Timestamp:
2006-06-01T14:22:33Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
88c3151
Parents:
cf28036c
Message:

Big framebuffer changes, currently not integrated with console.

Location:
libc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libc/generic/string.c

    rcf28036c ra2ae4f4  
    4343}
    4444
    45 void * memcpy(void *dest, void *src, size_t n)
    46 {
    47         char *os = src;
    48         char *odst = dest;
    49         while (n--)
    50                 *(odst++) = *(os++);
    51         return dest;
    52 }
     45void * memcpy(void *dst, const void *src, size_t n)
     46{
     47        int i, j;
     48
     49        for (i = 0; i < n/sizeof(unsigned long); i++)
     50                ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
     51               
     52        for (j = 0; j < n%sizeof(unsigned long); j++)
     53                ((unsigned char *)(((unsigned long *) dst) + i))[j] = ((unsigned char *)(((unsigned long *) src) + i))[j];
     54               
     55        return (char *)src;
     56}
     57
     58void * memmove(void *dst, const void *src, size_t n)
     59{
     60        int i, j;
     61       
     62        if (src > dst)
     63                return memcpy(dst, src, n);
     64
     65        for (j = (n%sizeof(unsigned long))-1; j >= 0; j--)
     66                ((unsigned char *)(((unsigned long *) dst) + i))[j] = ((unsigned char *)(((unsigned long *) src) + i))[j];
     67
     68        for (i = n/sizeof(unsigned long)-1; i >=0 ; i--)
     69                ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
     70               
     71        return (char *)src;
     72}
     73
    5374
    5475/** Count the number of characters in the string, not including terminating 0.
  • libc/include/ipc/fb.h

    rcf28036c ra2ae4f4  
    77#define __libc__FB_H__
    88
    9 #define FB_GET_VFB 1024
    10 #define FB_PUTCHAR 1025
    11 
    12 #define METHOD_WIDTH 16
    13 #define ITEM_WIDTH 16
    14 #define COUNT_WIDTH 16 /* Should be 8 times integer */
     9#define FB_PUTCHAR     1025
     10#define FB_CLEAR       1026
     11#define FB_GET_CSIZE   1027
    1512
    1613
    17 struct _fb_method {
    18         unsigned m : METHOD_WIDTH;
    19         unsigned item : ITEM_WIDTH;
    20 } __attribute__((packed));
    21 
    22 union fb_method {
    23         struct _fb_method m;
    24         __native fill;
    25 } __attribute__((packed));
    26 
    27 struct fb_call_args {
    28         union fb_method method;
    29         union {
    30                 struct {
    31                         unsigned count : COUNT_WIDTH;
    32                         char chars[3 * sizeof(__native) - (COUNT_WIDTH >> 3)];
    33                 } putchar __attribute__((packed));
    34         } data ; // __attribute__((packed));   
    35 } __attribute__((packed));
    36 
    37 struct fb_ipc_args {
    38         __native method;
    39         __native arg1;
    40         __native arg2;
    41         __native arg3;
    42 } __attribute__((packed));
    43 
    44 union fb_args {
    45         struct fb_call_args fb_args;
    46         struct fb_ipc_args ipc_args;
    47 } __attribute__((packed));
    48 
    49 typedef union fb_args fb_args_t;
    50 
    5114#endif
  • libc/include/string.h

    rcf28036c ra2ae4f4  
    3636
    3737void * memset(void *s, int c, size_t n);
    38 void * memcpy(void *dest, void *src, size_t n);
     38void * memcpy(void *dest, const void *src, size_t n);
     39void * memmove(void *dest, const void *src, size_t n);
    3940
    4041int strcmp(const char *, const char *);
Note: See TracChangeset for help on using the changeset viewer.