| /* |
| * Copyright © 2022 Collabora, Ltd. |
| * |
| * SPDX-License-Identifier: MIT |
| */ |
| |
| #ifndef MESA_CACHE_DB_MULTIPART_H |
| #define MESA_CACHE_DB_MULTIPART_H |
| |
| #include "mesa_cache_db.h" |
| |
| struct mesa_cache_db_multipart { |
| struct mesa_cache_db *parts; |
| unsigned int num_parts; |
| volatile unsigned int last_read_part; |
| volatile unsigned int last_written_part; |
| }; |
| |
| bool |
| mesa_cache_db_multipart_open(struct mesa_cache_db_multipart *db, |
| const char *cache_path); |
| |
| void |
| mesa_cache_db_multipart_close(struct mesa_cache_db_multipart *db); |
| |
| void |
| mesa_cache_db_multipart_set_size_limit(struct mesa_cache_db_multipart *db, |
| uint64_t max_cache_size); |
| |
| void * |
| mesa_cache_db_multipart_read_entry(struct mesa_cache_db_multipart *db, |
| const uint8_t *cache_key_160bit, |
| size_t *size); |
| |
| bool |
| mesa_cache_db_multipart_entry_write(struct mesa_cache_db_multipart *db, |
| const uint8_t *cache_key_160bit, |
| const void *blob, size_t blob_size); |
| |
| void |
| mesa_cache_db_multipart_entry_remove(struct mesa_cache_db_multipart *db, |
| const uint8_t *cache_key_160bit); |
| |
| #endif /* MESA_CACHE_DB_MULTIPART_H */ |