DAOS API (v2.1 - dev)
Loading...
Searching...
No Matches
daos_array.h
Go to the documentation of this file.
1/*
2 * (C) Copyright 2016-2024 Intel Corporation.
3 * (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP
4 *
5 * SPDX-License-Identifier: BSD-2-Clause-Patent
6 */
15
16#ifndef __DAOS_ARRAY_H__
17#define __DAOS_ARRAY_H__
18
19#if defined(__cplusplus)
20extern "C" {
21#endif
22
23#include <daos_types.h>
24#include <daos_obj.h>
25#include <daos_obj_class.h>
26
28#define DAOS_ARRAY_LIST_IO_LIMIT 128
30#define DAOS_ARRAY_RG_LEN_THD 128
31
33typedef struct {
35 daos_off_t rg_idx;
37 daos_size_t rg_len;
39
41typedef struct {
43 daos_size_t arr_nr;
50 daos_size_t arr_nr_short_read;
52 daos_size_t arr_nr_read;
54
56typedef struct {
58 daos_size_t st_size;
60 daos_epoch_t st_max_epoch;
62
85static inline int
86daos_array_generate_oid(daos_handle_t coh, daos_obj_id_t *oid, bool add_attr, daos_oclass_id_t cid,
87 daos_oclass_hints_t hints, uint32_t args)
88{
89 enum daos_otype_t type;
90
91 type = DAOS_OT_ARRAY_ATTR;
92
93 if (add_attr)
94 type = DAOS_OT_ARRAY;
95
96 return daos_obj_generate_oid(coh, oid, type, cid, hints, args);
97}
98
133int
135 daos_size_t cell_size, daos_size_t chunk_size,
136 daos_handle_t *oh, daos_event_t *ev);
137
165int
167 unsigned int mode, daos_size_t *cell_size,
168 daos_size_t *chunk_size, daos_handle_t *oh, daos_event_t *ev);
169
198int
200 daos_handle_t th, unsigned int mode,
201 daos_size_t cell_size, daos_size_t chunk_size,
202 daos_handle_t *oh, daos_event_t *ev);
203
224int
226
244int
245daos_array_global2local(daos_handle_t coh, d_iov_t glob, unsigned int mode,
246 daos_handle_t *oh);
247
260int
261daos_array_close(daos_handle_t oh, daos_event_t *ev);
262
289int
291 d_sg_list_t *sgl, daos_event_t *ev);
292
321int
323 d_sg_list_t *sgl, daos_event_t *ev);
324
341int
342daos_array_get_size(daos_handle_t oh, daos_handle_t th, daos_size_t *size, daos_event_t *ev);
343
360int
362
382int
384 daos_event_t *ev);
385
407int
409
426int
428 daos_event_t *ev);
429
445int
446daos_array_get_attr(daos_handle_t oh, daos_size_t *chunk_size,
447 daos_size_t *cell_size);
448
461int
462daos_array_update_chunk_size(daos_handle_t oh, daos_size_t chunk_size);
463
464#if defined(__cplusplus)
465}
466#endif
467
468#endif /* __DAOS_ARRAY_H__ */
int daos_array_read(daos_handle_t oh, daos_handle_t th, daos_array_iod_t *iod, d_sg_list_t *sgl, daos_event_t *ev)
int daos_array_local2global(daos_handle_t oh, d_iov_t *glob)
int daos_array_close(daos_handle_t oh, daos_event_t *ev)
int daos_array_open(daos_handle_t coh, daos_obj_id_t oid, daos_handle_t th, unsigned int mode, daos_size_t *cell_size, daos_size_t *chunk_size, daos_handle_t *oh, daos_event_t *ev)
int daos_array_get_attr(daos_handle_t oh, daos_size_t *chunk_size, daos_size_t *cell_size)
int daos_array_set_size(daos_handle_t oh, daos_handle_t th, daos_size_t size, daos_event_t *ev)
int daos_array_get_size(daos_handle_t oh, daos_handle_t th, daos_size_t *size, daos_event_t *ev)
int daos_array_update_chunk_size(daos_handle_t oh, daos_size_t chunk_size)
int daos_array_global2local(daos_handle_t coh, d_iov_t glob, unsigned int mode, daos_handle_t *oh)
int daos_array_open_with_attr(daos_handle_t coh, daos_obj_id_t oid, daos_handle_t th, unsigned int mode, daos_size_t cell_size, daos_size_t chunk_size, daos_handle_t *oh, daos_event_t *ev)
int daos_array_punch(daos_handle_t oh, daos_handle_t th, daos_array_iod_t *iod, daos_event_t *ev)
int daos_array_write(daos_handle_t oh, daos_handle_t th, daos_array_iod_t *iod, d_sg_list_t *sgl, daos_event_t *ev)
int daos_array_stat(daos_handle_t oh, daos_handle_t th, daos_array_stbuf_t *stbuf, daos_event_t *ev)
int daos_array_destroy(daos_handle_t oh, daos_handle_t th, daos_event_t *ev)
int daos_array_create(daos_handle_t coh, daos_obj_id_t oid, daos_handle_t th, daos_size_t cell_size, daos_size_t chunk_size, daos_handle_t *oh, daos_event_t *ev)
daos_range_t * arr_rgs
Definition daos_array.h:45
daos_size_t arr_nr
Definition daos_array.h:43
daos_size_t arr_nr_short_read
Definition daos_array.h:50
daos_size_t arr_nr_read
Definition daos_array.h:52
daos_epoch_t st_max_epoch
Definition daos_array.h:60
daos_size_t st_size
Definition daos_array.h:58
daos_size_t rg_len
Definition daos_array.h:37
daos_off_t rg_idx
Definition daos_array.h:35