Ignore:
Timestamp:
2025-04-10T20:02:30Z (4 days ago)
Author:
GitHub <noreply@…>
Children:
b8b031f
Parents:
a92290d (diff), 90dd8aee (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.
git-author:
Wayne Thornton <wmthornton-dev@…> (2025-04-10 20:02:30)
git-committer:
GitHub <noreply@…> (2025-04-10 20:02:30)
Message:

Merge pull request #6 from HelenOS/master

Merge pending changes from downstream helenos/master

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/synch/condvar.h

    ra92290d rc0d814a  
    11/*
    22 * Copyright (c) 2001-2004 Jakub Jermar
     3 * Copyright (c) 2025 Jiří Zárevúcky
    34 * All rights reserved.
    45 *
     
    5354        condvar_t name = CONDVAR_INITIALIZER(name)
    5455
    55 #ifdef CONFIG_SMP
    56 #define _condvar_wait_timeout_spinlock(cv, lock, usec, flags) \
    57         _condvar_wait_timeout_spinlock_impl((cv), (lock), (usec), (flags))
    58 #else
    59 #define _condvar_wait_timeout_spinlock(cv, lock, usec, flags) \
    60         _condvar_wait_timeout_spinlock_impl((cv), NULL, (usec), (flags))
    61 #endif
    62 
    6356extern void condvar_initialize(condvar_t *cv);
    6457extern void condvar_signal(condvar_t *cv);
    6558extern void condvar_broadcast(condvar_t *cv);
    6659
    67 extern errno_t condvar_wait(condvar_t *cv, mutex_t *mtx);
    68 extern errno_t condvar_wait_timeout(condvar_t *cv, mutex_t *mtx, uint32_t usec);
     60extern errno_t __condvar_wait_mutex(condvar_t *cv, mutex_t *mtx);
     61extern errno_t __condvar_wait_spinlock(condvar_t *cv, spinlock_t *mtx);
     62extern errno_t __condvar_wait_irq_spinlock(condvar_t *cv, irq_spinlock_t *mtx);
     63extern errno_t __condvar_wait_timeout_mutex(condvar_t *cv, mutex_t *mtx, uint32_t usec);
     64extern errno_t __condvar_wait_timeout_spinlock(condvar_t *cv, spinlock_t *mtx, uint32_t usec);
     65extern errno_t __condvar_wait_timeout_irq_spinlock(condvar_t *cv, irq_spinlock_t *mtx, uint32_t usec);
    6966
    70 extern errno_t _condvar_wait_timeout_spinlock_impl(condvar_t *cv, spinlock_t *lock,
    71     uint32_t usec, int flags);
    72 extern errno_t _condvar_wait_timeout_irq_spinlock(condvar_t *cv,
    73     irq_spinlock_t *irq_lock, uint32_t usec, int flags);
     67#define condvar_wait(cv, mtx) (_Generic((mtx), \
     68        mutex_t *: __condvar_wait_mutex, \
     69        spinlock_t *: __condvar_wait_spinlock, \
     70        irq_spinlock_t *: __condvar_wait_irq_spinlock \
     71)(cv, mtx))
     72
     73#define condvar_wait_timeout(cv, mtx, usec) (_Generic((mtx), \
     74        mutex_t *: __condvar_wait_timeout_mutex, \
     75        spinlock_t *: __condvar_wait_timeout_spinlock, \
     76        irq_spinlock_t *: __condvar_wait_timeout_irq_spinlock \
     77)(cv, mtx))
    7478
    7579#endif
Note: See TracChangeset for help on using the changeset viewer.