Changeset 597fa24 in mainline for kernel/generic/src


Ignore:
Timestamp:
2025-04-09T16:19:40Z (9 months ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master
Children:
9f945464, a188131
Parents:
3e7948c
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2025-04-09 16:08:09)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2025-04-09 16:19:40)
Message:

Enable static initialization of kernel synchronization primitives

Location:
kernel/generic/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ddi/ddi.c

    r3e7948c r597fa24  
    6060
    6161/** This lock protects the @c pareas ordered dictionary. */
    62 static mutex_t pareas_lock;
     62static MUTEX_INITIALIZE(pareas_lock, MUTEX_PASSIVE);
    6363
    6464/** Ordered dictionary of enabled physical memory areas by base address. */
     
    7474{
    7575        odict_initialize(&pareas, pareas_getkey, pareas_cmp);
    76         mutex_initialize(&pareas_lock, MUTEX_PASSIVE);
    7776}
    7877
  • kernel/generic/src/main/main.c

    r3e7948c r597fa24  
    5353#include <stdio.h>
    5454#include <panic.h>
    55 #include <assert.h>
    5655#include <config.h>
    5756#include <time/clock.h>
  • kernel/generic/src/mm/frame.c

    r3e7948c r597fa24  
    6363#include <proc/thread.h> /* THREAD */
    6464
    65 zones_t zones;
     65zones_t zones = {
     66        .count = 0,
     67        .lock = IRQ_SPINLOCK_INITIALIZER("frame.zones.lock"),
     68};
    6669
    6770/*
     
    6972 * available.
    7073 */
    71 static mutex_t mem_avail_mtx;
    72 static condvar_t mem_avail_cv;
     74static MUTEX_INITIALIZE(mem_avail_mtx, MUTEX_ACTIVE);
     75static CONDVAR_INITIALIZE(mem_avail_cv);
    7376static size_t mem_avail_req = 0;  /**< Number of frames requested. */
    7477static size_t mem_avail_gen = 0;  /**< Generation counter. */
     
    11081111void frame_init(void)
    11091112{
    1110         if (config.cpu_active == 1) {
    1111                 zones.count = 0;
    1112                 irq_spinlock_initialize(&zones.lock, "frame.zones.lock");
    1113                 mutex_initialize(&mem_avail_mtx, MUTEX_ACTIVE);
    1114                 condvar_initialize(&mem_avail_cv);
    1115         }
    1116 
    11171113        /* Tell the architecture to create some memory */
    11181114        frame_low_arch_init();
  • kernel/generic/src/proc/thread.c

    r3e7948c r597fa24  
    667667void thread_usleep(uint32_t usec)
    668668{
    669         waitq_t wq;
    670 
    671         waitq_initialize(&wq);
    672 
     669        WAITQ_INITIALIZE(wq);
    673670        (void) waitq_sleep_timeout(&wq, usec);
    674671}
  • kernel/generic/src/synch/condvar.c

    r3e7948c r597fa24  
    4848void condvar_initialize(condvar_t *cv)
    4949{
    50         waitq_initialize(&cv->wq);
     50        *cv = CONDVAR_INITIALIZER(*cv);
    5151}
    5252
  • kernel/generic/src/synch/mutex.c

    r3e7948c r597fa24  
    5353void mutex_initialize(mutex_t *mtx, mutex_type_t type)
    5454{
    55         mtx->type = type;
    56         mtx->owner = NULL;
    57         mtx->nesting = 0;
    58         semaphore_initialize(&mtx->sem, 1);
     55        *mtx = MUTEX_INITIALIZER(*mtx, type);
    5956}
    6057
  • kernel/generic/src/synch/semaphore.c

    r3e7948c r597fa24  
    5252void semaphore_initialize(semaphore_t *sem, int val)
    5353{
    54         waitq_initialize_with_count(&sem->wq, val);
     54        *sem = SEMAPHORE_INITIALIZER(*sem, val);
    5555}
    5656
  • kernel/generic/src/synch/waitq.c

    r3e7948c r597fa24  
    7070void waitq_initialize(waitq_t *wq)
    7171{
    72         memsetb(wq, sizeof(*wq), 0);
    73         irq_spinlock_initialize(&wq->lock, "wq.lock");
    74         list_initialize(&wq->sleepers);
     72        *wq = WAITQ_INITIALIZER(*wq);
    7573}
    7674
     
    8179void waitq_initialize_with_count(waitq_t *wq, int count)
    8280{
    83         waitq_initialize(wq);
    84         wq->wakeup_balance = count;
     81        *wq = WAITQ_INITIALIZER_WITH_COUNT(*wq, count);
    8582}
    8683
  • kernel/generic/src/sysinfo/stats.c

    r3e7948c r597fa24  
    9090
    9191/** Load calculation lock */
    92 static mutex_t load_lock;
     92static MUTEX_INITIALIZE(load_lock, MUTEX_PASSIVE);
    9393
    9494/** Get statistics of all CPUs
     
    846846void stats_init(void)
    847847{
    848         mutex_initialize(&load_lock, MUTEX_PASSIVE);
    849 
    850848        sysinfo_set_item_gen_data("system.cpus", NULL, get_stats_cpus, NULL);
    851849        sysinfo_set_item_gen_data("system.physmem", NULL, get_stats_physmem, NULL);
  • kernel/generic/src/sysinfo/sysinfo.c

    r3e7948c r597fa24  
    5757
    5858/** Sysinfo lock */
    59 static mutex_t sysinfo_lock;
     59static MUTEX_INITIALIZE(sysinfo_lock, MUTEX_ACTIVE);
    6060
    6161/** Sysinfo item constructor
     
    102102            sizeof(sysinfo_item_t), 0, sysinfo_item_constructor,
    103103            sysinfo_item_destructor, SLAB_CACHE_MAGDEFERRED);
    104 
    105         mutex_initialize(&sysinfo_lock, MUTEX_ACTIVE);
    106104}
    107105
Note: See TracChangeset for help on using the changeset viewer.