commit 6d0a24a5da6828e45561ee176507ef9ad5c10dc7
parent b70da9b167f88ad1d611593f4bc8bc41cf745e03
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Tue, 10 Apr 2018 10:43:29 +0200
Add a unique identifier to the sdis_medium
Diffstat:
4 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/sdis_device.c b/src/sdis_device.c
@@ -51,7 +51,9 @@ device_release(ref_T* ref)
if(dev->s2d) S2D(device_ref_put(dev->s2d));
if(dev->s3d) S3D(device_ref_put(dev->s3d));
ASSERT(flist_name_is_empty(&dev->interfaces_names));
+ ASSERT(flist_name_is_empty(&dev->media_names));
flist_name_release(&dev->interfaces_names);
+ flist_name_release(&dev->media_names);
darray_tile_release(&dev->tiles);
MEM_RM(dev->allocator, dev);
}
@@ -95,6 +97,7 @@ sdis_device_create
dev->nthreads = MMIN(nthreads_hint, (unsigned)omp_get_num_procs());
ref_init(&dev->ref);
flist_name_init(allocator, &dev->interfaces_names);
+ flist_name_init(allocator, &dev->media_names);
darray_tile_init(allocator, &dev->tiles);
res = darray_tile_resize(&dev->tiles, dev->nthreads);
diff --git a/src/sdis_device_c.h b/src/sdis_device_c.h
@@ -43,6 +43,7 @@ struct sdis_device {
int verbose;
struct flist_name interfaces_names;
+ struct flist_name media_names;
struct darray_tile tiles;
struct s2d_device* s2d;
diff --git a/src/sdis_medium.c b/src/sdis_medium.c
@@ -65,6 +65,7 @@ medium_create
SDIS(device_ref_get(dev));
medium->dev = dev;
medium->type = type;
+ medium->id = flist_name_add(&dev->media_names);
exit:
if(out_medium) *out_medium = medium;
@@ -86,6 +87,7 @@ medium_release(ref_T* ref)
medium = CONTAINER_OF(ref, struct sdis_medium, ref);
dev = medium->dev;
if(medium->data) SDIS(data_ref_put(medium->data));
+ flist_name_del(&dev->media_names, medium->id);
MEM_RM(dev->allocator, medium);
SDIS(device_ref_put(dev));
}
diff --git a/src/sdis_medium_c.h b/src/sdis_medium_c.h
@@ -26,6 +26,7 @@ struct sdis_medium {
} shader;
struct sdis_data* data;
+ struct fid id; /* Unique identifier of the medium */
ref_T ref;
struct sdis_device* dev;