Changeset bd1deed in mainline for kernel/generic/src


Ignore:
Timestamp:
2007-02-11T20:04:08Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c993e45
Parents:
ce8aed1
Message:

experimental support for Objective C
(disabled by default)

Location:
kernel/generic/src
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/lib/memstr.c

    rce8aed1 rbd1deed  
    7575        }
    7676               
    77         return (char *)src;
     77        return (char *) src;
    7878}
    7979
     
    9393        uint8_t *p = (uint8_t *) dst;
    9494       
    95         for(i=0; i<cnt; i++)
     95        for (i = 0; i < cnt; i++)
    9696                p[i] = x;
    9797}
     
    112112        uint16_t *p = (uint16_t *) dst;
    113113       
    114         for(i=0; i<cnt; i++)
     114        for (i = 0; i < cnt; i++)
    115115                p[i] = x;       
     116}
     117
     118/** Copy string
     119 *
     120 * Copy string from src address to dst address.
     121 * The copying is done char-by-char until the null
     122 * character. The source and destination memory areas
     123 * cannot overlap.
     124 *
     125 * @param src Origin string to copy from.
     126 * @param dst Origin string to copy to.
     127 *
     128 */
     129char *strcpy(char *dest, const char *src)
     130{
     131        char *orig = dest;
     132       
     133        while ((*(dest++) = *(src++)));
     134        return orig;
    116135}
    117136
  • kernel/generic/src/mm/as.c

    rce8aed1 rbd1deed  
    8282#endif /* CONFIG_VIRT_IDX_DCACHE */
    8383
     84#ifndef __OBJC__
    8485/**
    8586 * Each architecture decides what functions will be used to carry out
     
    8788 */
    8889as_operations_t *as_operations = NULL;
     90#endif
    8991
    9092/**
     
    993995pte_t *page_table_create(int flags)
    994996{
    995         ASSERT(as_operations);
    996         ASSERT(as_operations->page_table_create);
    997 
    998         return as_operations->page_table_create(flags);
     997#ifdef __OBJC__
     998        return [as_t page_table_create: flags];
     999#else
     1000        ASSERT(as_operations);
     1001        ASSERT(as_operations->page_table_create);
     1002       
     1003        return as_operations->page_table_create(flags);
     1004#endif
    9991005}
    10001006
     
    10071013void page_table_destroy(pte_t *page_table)
    10081014{
    1009         ASSERT(as_operations);
    1010         ASSERT(as_operations->page_table_destroy);
    1011 
    1012         as_operations->page_table_destroy(page_table);
     1015#ifdef __OBJC__
     1016        return [as_t page_table_destroy: page_table];
     1017#else
     1018        ASSERT(as_operations);
     1019        ASSERT(as_operations->page_table_destroy);
     1020       
     1021        as_operations->page_table_destroy(page_table);
     1022#endif
    10131023}
    10141024
     
    10271037void page_table_lock(as_t *as, bool lock)
    10281038{
     1039#ifdef __OBJC__
     1040        [as page_table_lock: lock];
     1041#else
    10291042        ASSERT(as_operations);
    10301043        ASSERT(as_operations->page_table_lock);
    1031 
     1044       
    10321045        as_operations->page_table_lock(as, lock);
     1046#endif
    10331047}
    10341048
     
    10401054void page_table_unlock(as_t *as, bool unlock)
    10411055{
     1056#ifdef __OBJC__
     1057        [as page_table_unlock: unlock];
     1058#else
    10421059        ASSERT(as_operations);
    10431060        ASSERT(as_operations->page_table_unlock);
    1044 
     1061       
    10451062        as_operations->page_table_unlock(as, unlock);
     1063#endif
    10461064}
    10471065
  • kernel/generic/src/printf/vprintf.c

    rce8aed1 rbd1deed  
    3737#include <putchar.h>
    3838
    39 int vprintf_write(const char *str, size_t count, void *unused);
     39static int vprintf_write(const char *str, size_t count, void *unused)
     40{
     41        size_t i;
     42        for (i = 0; i < count; i++)
     43                putchar(str[i]);
     44        return i;
     45}
    4046
    41 int vprintf_write(const char *str, size_t count, void *unused)
     47int puts(const char *s)
    4248{
    43         size_t i = 0;
    44         for (; i < count; i++)
    45                 putchar(str[i]);
     49        size_t i;
     50        for (i = 0; s[i] != 0; i++)
     51                putchar(s[i]);
    4652        return i;
    4753}
     
    4955int vprintf(const char *fmt, va_list ap)
    5056{
    51         struct printf_spec ps = {(int(*)(void *, size_t, void *))vprintf_write, NULL};
     57        struct printf_spec ps = {(int(*)(void *, size_t, void *)) vprintf_write, NULL};
    5258        return printf_core(fmt, &ps, ap);
    5359
Note: See TracChangeset for help on using the changeset viewer.