xref: /aosp_15_r20/external/minigbm/drv_array_helpers.h (revision d95af8df99a05bcb8679a54dc3ab8e5cd312b38e)
1*d95af8dfSAndroid Build Coastguard Worker /*
2*d95af8dfSAndroid Build Coastguard Worker  * Copyright 2017 The Chromium OS Authors. All rights reserved.
3*d95af8dfSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
4*d95af8dfSAndroid Build Coastguard Worker  * found in the LICENSE file.
5*d95af8dfSAndroid Build Coastguard Worker  */
6*d95af8dfSAndroid Build Coastguard Worker 
7*d95af8dfSAndroid Build Coastguard Worker #ifndef DRV_ARRAY_HELPERS_H
8*d95af8dfSAndroid Build Coastguard Worker #define DRV_ARRAY_HELPERS_H
9*d95af8dfSAndroid Build Coastguard Worker 
10*d95af8dfSAndroid Build Coastguard Worker #include <stdint.h>
11*d95af8dfSAndroid Build Coastguard Worker 
12*d95af8dfSAndroid Build Coastguard Worker struct drv_array;
13*d95af8dfSAndroid Build Coastguard Worker 
14*d95af8dfSAndroid Build Coastguard Worker struct drv_array *drv_array_init(uint32_t item_size);
15*d95af8dfSAndroid Build Coastguard Worker 
16*d95af8dfSAndroid Build Coastguard Worker /* The data will be copied and appended to the array. */
17*d95af8dfSAndroid Build Coastguard Worker void *drv_array_append(struct drv_array *array, void *data);
18*d95af8dfSAndroid Build Coastguard Worker 
19*d95af8dfSAndroid Build Coastguard Worker /* The data at the specified index will be freed -- the array will shrink. */
20*d95af8dfSAndroid Build Coastguard Worker void drv_array_remove(struct drv_array *array, uint32_t idx);
21*d95af8dfSAndroid Build Coastguard Worker 
22*d95af8dfSAndroid Build Coastguard Worker void *drv_array_at_idx(struct drv_array *array, uint32_t idx);
23*d95af8dfSAndroid Build Coastguard Worker 
24*d95af8dfSAndroid Build Coastguard Worker uint32_t drv_array_size(struct drv_array *array);
25*d95af8dfSAndroid Build Coastguard Worker 
26*d95af8dfSAndroid Build Coastguard Worker /* The array and all associated data will be freed. */
27*d95af8dfSAndroid Build Coastguard Worker void drv_array_destroy(struct drv_array *array);
28*d95af8dfSAndroid Build Coastguard Worker 
29*d95af8dfSAndroid Build Coastguard Worker #endif
30