Ignore:
Timestamp:
2019-08-03T08:40:30Z (6 years ago)
Author:
Matthieu Riolo <matthieu.riolo@…>
Children:
7671231
Parents:
8432ae1
git-author:
Michal Koutny <xm.koutny+hos@…> (2015-04-25 00:30:34)
git-committer:
Matthieu Riolo <matthieu.riolo@…> (2019-08-03 08:40:30)
Message:

libc: Add more dyn_array functions
Conflicts:

boot/Makefile.common

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/adt/dyn_array.h

    r8432ae1 r4b1c6a4b  
    9797/** Dynamic array iteration
    9898 *
    99  * @param[in]  it   name of variable used as iterator, it's pointer to @p type
     99 * @param[in]  dyn_array   dyn_array_t (not pointer)
     100 * @param[in]  it          name of variable used as iterator, it's pointer
     101 *                         to @p type
    100102 */
    101103#define dyn_array_foreach(dyn_array, type, it)                                 \
     
    103105            it != ((type *)(dyn_array)._data + (dyn_array).size); ++it)
    104106
     107/** Find first occurence of value
     108 *
     109 * @param[in]  dyn_array   dyn_array_t *
     110 * @param[in]  value       value to search for
     111 *
     112 * @return  index of found value or size of array when no found
     113 */
     114#define dyn_array_find(dyn_array, type, value)                                 \
     115({                                                                             \
     116        size_t _result = (dyn_array)->size;                                    \
     117        dyn_array_foreach(*(dyn_array), type, _it) {                           \
     118                if (*_it == value) {                                           \
     119                        _result = _it - (type *)(dyn_array)->_data;            \
     120                        break;                                                 \
     121                }                                                              \
     122        }                                                                      \
     123        _result;                                                               \
     124})
    105125
    106126extern void dyn_array_destroy(dyn_array_t *);
    107127extern void dyn_array_remove(dyn_array_t *, size_t);
     128void dyn_array_clear(dyn_array_t *);
    108129
    109130extern int _dyn_array_initialize(dyn_array_t *, size_t, size_t);
Note: See TracChangeset for help on using the changeset viewer.