Changeset aa85487 in mainline for kernel/generic


Ignore:
Timestamp:
2010-03-07T15:11:56Z (16 years ago)
Author:
Lukas Mejdrech <lukasmejdrech@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
aadf01e
Parents:
2e99277 (diff), 137691a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes, revision 308

Location:
kernel/generic
Files:
33 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/atomic.h

    r2e99277 raa85487  
    2727 */
    2828
    29 /** @addtogroup generic 
     29/** @addtogroup generic
    3030 * @{
    3131 */
     
    3636#define KERN_ATOMIC_H_
    3737
     38#include <arch/types.h>
     39
    3840typedef struct atomic {
    39         volatile long count;
     41        volatile atomic_count_t count;
    4042} atomic_t;
    4143
    4244#include <arch/atomic.h>
    4345
    44 static inline void atomic_set(atomic_t *val, long i)
     46static inline void atomic_set(atomic_t *val, atomic_count_t i)
    4547{
    4648        val->count = i;
    4749}
    4850
    49 static inline long atomic_get(atomic_t *val)
     51static inline atomic_count_t atomic_get(atomic_t *val)
    5052{
    5153        return val->count;
  • kernel/generic/include/bitops.h

    r2e99277 raa85487  
    6565        }
    6666       
    67         if (arg >> 1) {
    68                 arg >>= 1;
     67        if (arg >> 1)
    6968                n += 1;
    70         }
    7169       
    7270        return n;
  • kernel/generic/include/console/chardev.h

    r2e99277 raa85487  
    5353/** Character input device. */
    5454typedef struct indev {
    55         char *name;
     55        const char *name;
    5656        waitq_t wq;
    5757       
     
    8181/** Character output device. */
    8282typedef struct outdev {
    83         char *name;
     83        const char *name;
    8484       
    8585        /** Protects everything below. */
     
    9595} outdev_t;
    9696
    97 extern void indev_initialize(char *name, indev_t *indev,
     97extern void indev_initialize(const char *name, indev_t *indev,
    9898    indev_operations_t *op);
    9999extern void indev_push_character(indev_t *indev, wchar_t ch);
    100100extern wchar_t indev_pop_character(indev_t *indev);
    101101
    102 extern void outdev_initialize(char *name, outdev_t *outdev,
     102extern void outdev_initialize(const char *name, outdev_t *outdev,
    103103    outdev_operations_t *op);
    104104
  • kernel/generic/include/console/kconsole.h

    r2e99277 raa85487  
    9494extern void kconsole_notify_init(void);
    9595extern bool kconsole_check_poll(void);
    96 extern void kconsole(char *prompt, char *msg, bool kcon);
     96extern void kconsole(const char *prompt, const char *msg, bool kcon);
    9797extern void kconsole_thread(void *data);
    9898
  • kernel/generic/include/cpu.h

    r2e99277 raa85487  
    4848 * There is one structure like this for every processor.
    4949 */
    50 typedef struct {
     50typedef struct cpu {
    5151        SPINLOCK_DECLARE(lock);
    5252
  • kernel/generic/include/errno.h

    r2e99277 raa85487  
    5757#define EADDRNOTAVAIL   -12     /* Address not available. */
    5858#define ETIMEOUT        -13     /* Timeout expired */
    59 //MH
    60 #ifndef EINVAL
    6159#define EINVAL          -14     /* Invalid value */
    62 #endif
    63 #ifndef EBUSY
    6460#define EBUSY           -15     /* Resource is busy */
    65 #endif
    6661#define EOVERFLOW       -16     /* The result does not fit its size. */
    6762#define EINTR           -17     /* Operation was interrupted. */
  • kernel/generic/include/interrupt.h

    r2e99277 raa85487  
    4646typedef void (* iroutine)(int n, istate_t *istate);
    4747
    48 extern void fault_if_from_uspace(istate_t *istate, char *fmt, ...);
     48extern void fault_if_from_uspace(istate_t *istate, const char *fmt, ...);
    4949extern iroutine exc_register(int n, const char *name, iroutine f);
    5050extern void exc_dispatch(int n, istate_t *t);
  • kernel/generic/include/lib/elf.h

    r2e99277 raa85487  
    338338#endif
    339339
    340 extern char *elf_error(unsigned int rc);
     340extern const char *elf_error(unsigned int rc);
    341341
    342342/* Interpreter string used to recognize the program loader */
  • kernel/generic/include/mm/slab.h

    r2e99277 raa85487  
    8686
    8787typedef struct {
    88         char *name;
     88        const char *name;
    8989       
    9090        link_t link;
     
    123123} slab_cache_t;
    124124
    125 extern slab_cache_t *slab_cache_create(char *, size_t, size_t,
     125extern slab_cache_t *slab_cache_create(const char *, size_t, size_t,
    126126    int (*)(void *, int), int (*)(void *), int);
    127127extern void slab_cache_destroy(slab_cache_t *);
  • kernel/generic/include/panic.h

    r2e99277 raa85487  
    6060extern bool silent;
    6161
    62 extern void panic_printf(char *fmt, ...) __attribute__((noreturn));
     62extern void panic_printf(const char *fmt, ...) __attribute__((noreturn));
    6363
    6464#endif
  • kernel/generic/include/proc/task.h

    r2e99277 raa85487  
    130130extern void task_init(void);
    131131extern void task_done(void);
    132 extern task_t *task_create(as_t *as, char *name);
     132extern task_t *task_create(as_t *as, const char *name);
    133133extern void task_destroy(task_t *t);
    134134extern task_t *task_find_by_id(task_id_t id);
  • kernel/generic/include/proc/thread.h

    r2e99277 raa85487  
    5252#define THREAD_NAME_BUFLEN      20
    5353
    54 extern char *thread_states[];
     54extern const char *thread_states[];
    5555
    5656/* Thread flags */
     
    225225
    226226extern void thread_init(void);
    227 extern thread_t *thread_create(void (*)(void *), void *, task_t *, int, char *,
    228     bool);
     227extern thread_t *thread_create(void (*)(void *), void *, task_t *, int,
     228    const char *, bool);
    229229extern void thread_attach(thread_t *, task_t *);
    230230extern void thread_ready(thread_t *);
  • kernel/generic/include/stacktrace.h

    r2e99277 raa85487  
    4646        bool (* frame_pointer_prev)(uintptr_t, uintptr_t *);
    4747        bool (* return_address_get)(uintptr_t, uintptr_t *);
    48         bool (* symbol_resolve)(uintptr_t, char **, uintptr_t *);
     48        bool (* symbol_resolve)(uintptr_t, const char **, uintptr_t *);
    4949} stack_trace_ops_t;
    5050
  • kernel/generic/include/symtab.h

    r2e99277 raa85487  
    4545};
    4646
    47 extern int symtab_name_lookup(uintptr_t, char **, uintptr_t *);
    48 extern char *symtab_fmt_name_lookup(uintptr_t);
     47extern int symtab_name_lookup(uintptr_t, const char **, uintptr_t *);
     48extern const char *symtab_fmt_name_lookup(uintptr_t);
    4949extern int symtab_addr_lookup(const char *, uintptr_t *);
    5050extern void symtab_print_search(const char *);
  • kernel/generic/include/synch/spinlock.h

    r2e99277 raa85487  
    4848       
    4949#ifdef CONFIG_DEBUG_SPINLOCK
    50         char *name;
     50        const char *name;
    5151#endif
    5252} spinlock_t;
     
    101101        SPINLOCK_STATIC_INITIALIZE_NAME(lock_name, #lock_name)
    102102
    103 extern void spinlock_initialize(spinlock_t *lock, char *name);
     103extern void spinlock_initialize(spinlock_t *lock, const char *name);
    104104extern int spinlock_trylock(spinlock_t *lock);
    105105extern void spinlock_lock_debug(spinlock_t *lock);
  • kernel/generic/src/console/chardev.c

    r2e99277 raa85487  
    4747 *
    4848 */
    49 void indev_initialize(char *name, indev_t *indev,
     49void indev_initialize(const char *name, indev_t *indev,
    5050    indev_operations_t *op)
    5151{
     
    130130 *
    131131 */
    132 void outdev_initialize(char *name, outdev_t *outdev,
     132void outdev_initialize(const char *name, outdev_t *outdev,
    133133    outdev_operations_t *op)
    134134{
  • kernel/generic/src/console/cmd.c

    r2e99277 raa85487  
    10331033        /* Execute the test */
    10341034        test_quiet = false;
    1035         char *ret = test->entry();
     1035        const char *ret = test->entry();
    10361036       
    10371037        /* Update and read thread accounting */
     
    10861086                /* Execute the test */
    10871087                test_quiet = true;
    1088                 char * ret = test->entry();
     1088                const char *ret = test->entry();
    10891089               
    10901090                /* Update and read thread accounting */
  • kernel/generic/src/console/kconsole.c

    r2e99277 raa85487  
    224224                printf("\n");
    225225                pos = NULL;
    226                 while ((hint = cmdtab_search_one(name, &pos))) {
     226                while (cmdtab_search_one(name, &pos)) {
    227227                        cmd_info_t *hlp = list_get_instance(pos, cmd_info_t, link);
    228228                        printf("%s (%s)\n", hlp->name, hlp->description);
     
    643643 *
    644644 */
    645 void kconsole(char *prompt, char *msg, bool kcon)
     645void kconsole(const char *prompt, const char *msg, bool kcon)
    646646{
    647647        if (!stdin) {
  • kernel/generic/src/debug/stacktrace.c

    r2e99277 raa85487  
    4444{
    4545        int cnt = 0;
    46         char *symbol;
     46        const char *symbol;
    4747        uintptr_t offset;
    48 
     48       
    4949        while (cnt++ < STACK_FRAMES_MAX && ops->frame_pointer_validate(fp)) {
    5050                if (ops->symbol_resolve &&
     
    8585}
    8686
    87 static bool kernel_symbol_resolve(uintptr_t addr, char **sp, uintptr_t *op)
     87static bool kernel_symbol_resolve(uintptr_t addr, const char **sp, uintptr_t *op)
    8888{
    8989        return (symtab_name_lookup(addr, sp, op) == 0);
  • kernel/generic/src/debug/symtab.c

    r2e99277 raa85487  
    5454 *
    5555 */
    56 int symtab_name_lookup(uintptr_t addr, char **name, uintptr_t *offset)
     56int symtab_name_lookup(uintptr_t addr, const char **name, uintptr_t *offset)
    5757{
    5858#ifdef CONFIG_SYMTAB
     
    9292 *
    9393 */
    94 char *symtab_fmt_name_lookup(uintptr_t addr)
    95 {
    96         char *name;
     94const char *symtab_fmt_name_lookup(uintptr_t addr)
     95{
     96        const char *name;
    9797        int rc = symtab_name_lookup(addr, &name, NULL);
    9898       
     
    239239                printf("\n");
    240240                pos = 0;
    241                 while ((hint = symtab_search_one(name, &pos))) {
     241                while (symtab_search_one(name, &pos)) {
    242242                        printf("%s\n", symbol_table[pos].symbol_name);
    243243                        pos++;
  • kernel/generic/src/interrupt/interrupt.c

    r2e99277 raa85487  
    114114
    115115/** Terminate thread and task if exception came from userspace. */
    116 void fault_if_from_uspace(istate_t *istate, char *fmt, ...)
     116void fault_if_from_uspace(istate_t *istate, const char *fmt, ...)
    117117{
    118118        task_t *task = TASK;
     
    162162#if (IVT_ITEMS > 0)
    163163        unsigned int i;
    164         char *symbol;
    165164
    166165        spinlock_lock(&exctbl_lock);
     
    177176       
    178177        for (i = 0; i < IVT_ITEMS; i++) {
    179                 symbol = symtab_fmt_name_lookup((unative_t) exc_table[i].f);
     178                const char *symbol = symtab_fmt_name_lookup((unative_t) exc_table[i].f);
    180179
    181180#ifdef __32_BITS__
  • kernel/generic/src/lib/elf.c

    r2e99277 raa85487  
    4848#include <arch.h>
    4949
    50 static char *error_codes[] = {
     50static const char *error_codes[] = {
    5151        "no error",
    5252        "invalid image",
     
    137137 * @return NULL terminated description of error.
    138138 */
    139 char *elf_error(unsigned int rc)
     139const char *elf_error(unsigned int rc)
    140140{
    141141        ASSERT(rc < sizeof(error_codes) / sizeof(char *));
     
    155155    as_t *as, int flags)
    156156{
    157         char *interp;
    158 
    159157        switch (entry->p_type) {
    160158        case PT_NULL:
     
    165163        case PT_DYNAMIC:
    166164        case PT_INTERP:
    167                 interp = (char *)elf + entry->p_offset;
    168                 /* FIXME */
    169                 /*if (memcmp((uintptr_t)interp, (uintptr_t)ELF_INTERP_ZSTR,
     165                // FIXME
     166                /*
     167                char *interp = (char *) elf + entry->p_offset;
     168                if (memcmp((uintptr_t) interp, (uintptr_t) ELF_INTERP_ZSTR,
    170169                    ELF_INTERP_ZLEN) != 0) {
    171170                        return EE_UNSUPPORTED;
    172                 }*/
     171                } */
    173172                if ((flags & ELD_F_LOADER) == 0) {
    174173                        return EE_LOADER;
  • kernel/generic/src/main/kinit.c

    r2e99277 raa85487  
    183183               
    184184                char namebuf[TASK_NAME_BUFLEN];
    185                 char *name;
    186                
    187                 name = init.tasks[i].name;
     185               
     186                const char *name = init.tasks[i].name;
    188187                if (name[0] == 0)
    189188                        name = "<unknown>";
  • kernel/generic/src/main/version.c

    r2e99277 raa85487  
    3737#include <macros.h>
    3838
    39 char *project = "SPARTAN kernel";
    40 char *copyright = "Copyright (c) 2001-2009 HelenOS project";
    41 char *release = STRING(RELEASE);
    42 char *name = STRING(NAME);
    43 char *arch = STRING(KARCH);
     39static const char *project = "SPARTAN kernel";
     40static const char *copyright = "Copyright (c) 2001-2010 HelenOS project";
     41static const char *release = STRING(RELEASE);
     42static const char *name = STRING(NAME);
     43static const char *arch = STRING(KARCH);
    4444
    4545#ifdef REVISION
    46         char *revision = ", revision " STRING(REVISION);
     46        static const char *revision = ", revision " STRING(REVISION);
    4747#else
    48         char *revision = "";
     48        static const char *revision = "";
    4949#endif
    5050
    5151#ifdef TIMESTAMP
    52         char *timestamp = " on " STRING(TIMESTAMP);
     52        static const char *timestamp = " on " STRING(TIMESTAMP);
    5353#else
    54         char *timestamp = "";
     54        static const char *timestamp = "";
    5555#endif
    5656
  • kernel/generic/src/mm/as.c

    r2e99277 raa85487  
    784784{
    785785        as_area_t *area;
    786         uintptr_t base;
    787786        link_t *cur;
    788787        ipl_t ipl;
     
    813812                return ENOTSUP;
    814813        }
    815 
    816         base = area->base;
    817814
    818815        /*
     
    952949        if (!THREAD)
    953950                return AS_PF_FAULT;
    954                
    955         ASSERT(AS);
    956 
     951       
     952        if (!AS)
     953                return AS_PF_FAULT;
     954       
    957955        mutex_lock(&AS->lock);
    958         area = find_area_and_lock(AS, page);   
     956        area = find_area_and_lock(AS, page);
    959957        if (!area) {
    960958                /*
  • kernel/generic/src/mm/backend_elf.c

    r2e99277 raa85487  
    232232void elf_frame_free(as_area_t *area, uintptr_t page, uintptr_t frame)
    233233{
    234         elf_header_t *elf = area->backend_data.elf;
    235234        elf_segment_header_t *entry = area->backend_data.segment;
    236         uintptr_t base, start_anon;
    237         size_t i;
     235        uintptr_t start_anon;
    238236
    239237        ASSERT((page >= ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) &&
    240238            (page < entry->p_vaddr + entry->p_memsz));
    241         i = (page - ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) >> PAGE_WIDTH;
    242         base = (uintptr_t) (((void *) elf) +
    243             ALIGN_DOWN(entry->p_offset, FRAME_SIZE));
    244239        start_anon = entry->p_vaddr + entry->p_filesz;
    245240
     
    257252                 * lower part is backed by the ELF image and the upper is
    258253                 * anonymous). In any case, a frame needs to be freed.
    259                  */ 
     254                 */
    260255                frame_free(frame);
    261256        }
  • kernel/generic/src/mm/slab.c

    r2e99277 raa85487  
    130130/** Caches for malloc */
    131131static slab_cache_t *malloc_caches[SLAB_MAX_MALLOC_W - SLAB_MIN_MALLOC_W + 1];
    132 static char *malloc_names[] =  {
     132static const char *malloc_names[] =  {
    133133        "malloc-16",
    134134        "malloc-32",
     
    571571
    572572/** Initialize allocated memory as a slab cache */
    573 static void
    574 _slab_cache_create(slab_cache_t *cache, char *name, size_t size, size_t align,
    575     int (*constructor)(void *obj, int kmflag), int (*destructor)(void *obj),
    576     int flags)
     573static void _slab_cache_create(slab_cache_t *cache, const char *name,
     574    size_t size, size_t align, int (*constructor)(void *obj, int kmflag),
     575    int (*destructor)(void *obj), int flags)
    577576{
    578577        int pages;
     
    631630
    632631/** Create slab cache  */
    633 slab_cache_t *
    634 slab_cache_create(char *name, size_t size, size_t align,
     632slab_cache_t *slab_cache_create(const char *name, size_t size, size_t align,
    635633    int (*constructor)(void *obj, int kmflag), int (*destructor)(void *obj),
    636634    int flags)
     
    853851                cache = list_get_instance(cur, slab_cache_t, link);
    854852
    855                 char *name = cache->name;
     853                const char *name = cache->name;
    856854                uint8_t order = cache->order;
    857855                size_t size = cache->size;
     
    896894                    NULL, NULL, SLAB_CACHE_MAGDEFERRED);
    897895        }
    898 #ifdef CONFIG_DEBUG       
     896#ifdef CONFIG_DEBUG
    899897        _slab_initialized = 1;
    900898#endif
  • kernel/generic/src/proc/scheduler.c

    r2e99277 raa85487  
    542542{
    543543        thread_t *t;
    544         int count, average, j, k = 0;
     544        int count;
     545        atomic_count_t average;
    545546        unsigned int i;
     547        int j;
     548        int k = 0;
    546549        ipl_t ipl;
    547550
  • kernel/generic/src/proc/task.c

    r2e99277 raa85487  
    171171 *
    172172 */
    173 task_t *task_create(as_t *as, char *name)
     173task_t *task_create(as_t *as, const char *name)
    174174{
    175175        ipl_t ipl;
  • kernel/generic/src/proc/thread.c

    r2e99277 raa85487  
    7676
    7777/** Thread states */
    78 char *thread_states[] = {
     78const char *thread_states[] = {
    7979        "Invalid",
    8080        "Running",
     
    264264
    265265        atomic_inc(&nrdy);
     266        // FIXME: Why is the avg value never read?
    266267        avg = atomic_get(&nrdy) / config.cpu_active;
    267268        atomic_inc(&cpu->nrdy);
     
    288289 */
    289290thread_t *thread_create(void (* func)(void *), void *arg, task_t *task,
    290     int flags, char *name, bool uncounted)
     291    int flags, const char *name, bool uncounted)
    291292{
    292293        thread_t *t;
  • kernel/generic/src/synch/spinlock.c

    r2e99277 raa85487  
    5252 *
    5353 */
    54 void spinlock_initialize(spinlock_t *lock, char *name)
     54void spinlock_initialize(spinlock_t *lock, const char *name)
    5555{
    5656        atomic_set(&lock->val, 0);
  • kernel/generic/src/sysinfo/sysinfo.c

    r2e99277 raa85487  
    4646                return NULL;
    4747       
    48         while (subtree != NULL) {
     48        while (subtree != NULL) {
    4949                int i = 0;
    5050                char *a = (char *) name;
     
    6868                /* No matches try next */
    6969                subtree = subtree->next;
    70                 i = 0;
    7170        }
    7271        return NULL;
     
    159158                        item->subinfo_type = SYSINFO_SUBINFO_NONE;
    160159                        return item;
    161                 } else {
     160                } else
    162161                        subtree = subtree->next;
    163                         i = 0;
    164                 }       
    165162        }
    166163
     
    225222                int i;
    226223                unative_t val = 0;
    227                 char *vtype = NULL;
     224                const char *vtype = NULL;
    228225               
    229226               
  • kernel/generic/src/udebug/udebug_ops.c

    r2e99277 raa85487  
    8080static int _thread_op_begin(thread_t *t, bool being_go)
    8181{
    82         task_id_t taskid;
    8382        ipl_t ipl;
    84 
    85         taskid = TASK->taskid;
    8683
    8784        mutex_lock(&TASK->udebug.lock);
Note: See TracChangeset for help on using the changeset viewer.