1 /* 2 * Copyright © 2022 Collabora, Ltd. 3 * 4 * SPDX-License-Identifier: MIT 5 */ 6 7 #ifndef MESA_CACHE_DB_MULTIPART_H 8 #define MESA_CACHE_DB_MULTIPART_H 9 10 #include "mesa_cache_db.h" 11 12 struct mesa_cache_db_multipart { 13 struct mesa_cache_db *parts; 14 unsigned int num_parts; 15 volatile unsigned int last_read_part; 16 volatile unsigned int last_written_part; 17 }; 18 19 bool 20 mesa_cache_db_multipart_open(struct mesa_cache_db_multipart *db, 21 const char *cache_path); 22 23 void 24 mesa_cache_db_multipart_close(struct mesa_cache_db_multipart *db); 25 26 void 27 mesa_cache_db_multipart_set_size_limit(struct mesa_cache_db_multipart *db, 28 uint64_t max_cache_size); 29 30 void * 31 mesa_cache_db_multipart_read_entry(struct mesa_cache_db_multipart *db, 32 const uint8_t *cache_key_160bit, 33 size_t *size); 34 35 bool 36 mesa_cache_db_multipart_entry_write(struct mesa_cache_db_multipart *db, 37 const uint8_t *cache_key_160bit, 38 const void *blob, size_t blob_size); 39 40 void 41 mesa_cache_db_multipart_entry_remove(struct mesa_cache_db_multipart *db, 42 const uint8_t *cache_key_160bit); 43 44 #endif /* MESA_CACHE_DB_MULTIPART_H */ 45