On Mon, Mar 13, 2017 at 3:01 AM, Timothy Arceri <tarc...@itsqueeze.com> wrote: > --- > src/util/disk_cache.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c > index 3b1cffc..160774a 100644 > --- a/src/util/disk_cache.c > +++ b/src/util/disk_cache.c > @@ -71,20 +71,40 @@ struct disk_cache { > /* Pointer to total size of all objects in cache (within index_mmap) */ > uint64_t *size; > > /* Pointer to stored keys, (within index_mmap). */ > uint8_t *stored_keys; > > /* Maximum size of all cached objects (in bytes). */ > uint64_t max_size; > }; > > +struct disk_cache_put_job { > + struct util_queue_fence fence; > + > + struct disk_cache *cache; > + > + cache_key key; > + > + /* Cache data to be compressed and written. */ > + const void *data; > + > + /* Size of data to be compressed and written. */ > + size_t size; > + > + /* Memory to be freed by util_queue_execute_func cleanup. > + * > + * Note: The memory is expected to have been created with ralloc. > + */ > + void *mem; > +}; > + > /* Create a directory named 'path' if it does not already exist. > * > * Returns: 0 if path already exists as a directory or if created. > * -1 in all other cases. > */ > static int > mkdir_if_needed(const char *path) > { > struct stat sb; > > @@ -728,20 +748,48 @@ deflate_and_write_to_disk(const void *in_data, size_t > in_data_size, int dest, > } while (flush != Z_FINISH); > > /* stream should be complete */ > assert(ret == Z_STREAM_END); > > /* clean up and return */ > (void)deflateEnd(&strm); > return compressed_size; > } > > +static struct disk_cache_put_job * > +create_put_job(struct disk_cache *cache, const cache_key key, > + const void *data, size_t size, void *mem) > +{ > + struct disk_cache_put_job *dc_job = (struct disk_cache_put_job *) > + malloc(sizeof(struct disk_cache_put_job)); > + > + if (dc_job) { > + dc_job->cache = cache; > + memcpy(dc_job->key, key, sizeof(cache_key)); > + dc_job->data = data; > + dc_job->size = size; > + dc_job->mem = mem; > + } > + > + return dc_job; > +} > + > +static void > +destroy_put_job(void *job, int thread_index)
It looks like thread_index is unused by the series. GraÅžvydas _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev