On Wed, Apr 01, 2015 at 05:15:15PM +0100, Emil Velikov wrote:
Used locally in bof.c.
Cc: Jerome Glisse jglisse@redhat.com Signed-off-by: Emil Velikov emil.l.velikov@gmail.com
NAK
I use all this in tools to debug lockup. Best course of action is to exclude bof.h from being distributed. My tools static link and i just point them to libdrm git tree.
Cheers, Jérôme
radeon/bof.c | 96 ++++++++++++++++++++++++++++++------------------------------ radeon/bof.h | 3 -- 2 files changed, 48 insertions(+), 51 deletions(-)
diff --git a/radeon/bof.c b/radeon/bof.c index 6f3760a..20901a0 100644 --- a/radeon/bof.c +++ b/radeon/bof.c @@ -45,6 +45,54 @@ static int bof_entry_grow(bof_t *bof) return 0; }
+static void bof_incref(bof_t *bof) +{
- bof->refcount++;
+}
+void bof_decref(bof_t *bof) +{
- unsigned i;
- if (bof == NULL)
return;
- if (--bof->refcount > 0)
return;
- for (i = 0; i < bof->array_size; i++) {
bof_decref(bof->array[i]);
bof->array[i] = NULL;
- }
- bof->array_size = 0;
- if (bof->file) {
fclose(bof->file);
bof->file = NULL;
- }
- free(bof->array);
- free(bof->value);
- free(bof);
+}
+/*
- string
- */
+static bof_t *bof_string(const char *value) +{
- bof_t *string = bof_object();
- if (string == NULL)
return NULL;
- string->type = BOF_TYPE_STRING;
- string->size = strlen(value) + 1;
- string->value = calloc(1, string->size);
- if (string->value == NULL) {
bof_decref(string);
return NULL;
- }
- strcpy(string->value, value);
- string->size += 12;
- return string;
+}
/*
- object
*/ @@ -160,27 +208,6 @@ void *bof_blob_value(bof_t *bof) }
/*
- string
- */
-bof_t *bof_string(const char *value) -{
- bof_t *string = bof_object();
- if (string == NULL)
return NULL;
- string->type = BOF_TYPE_STRING;
- string->size = strlen(value) + 1;
- string->value = calloc(1, string->size);
- if (string->value == NULL) {
bof_decref(string);
return NULL;
- }
- strcpy(string->value, value);
- string->size += 12;
- return string;
-}
-/*
- int32
*/ bof_t *bof_int32(int32_t value) @@ -316,33 +343,6 @@ out_err: return -EINVAL; }
-void bof_incref(bof_t *bof) -{
- bof->refcount++;
-}
-void bof_decref(bof_t *bof) -{
- unsigned i;
- if (bof == NULL)
return;
- if (--bof->refcount > 0)
return;
- for (i = 0; i < bof->array_size; i++) {
bof_decref(bof->array[i]);
bof->array[i] = NULL;
- }
- bof->array_size = 0;
- if (bof->file) {
fclose(bof->file);
bof->file = NULL;
- }
- free(bof->array);
- free(bof->value);
- free(bof);
-}
static int bof_file_write(bof_t *bof, FILE *file) { unsigned i; diff --git a/radeon/bof.h b/radeon/bof.h index 8e952c1..4dae923 100644 --- a/radeon/bof.h +++ b/radeon/bof.h @@ -63,14 +63,11 @@ extern unsigned bof_array_size(bof_t *bof); extern bof_t *bof_blob(unsigned size, void *value); extern unsigned bof_blob_size(bof_t *bof); extern void *bof_blob_value(bof_t *bof); -/* string */ -extern bof_t *bof_string(const char *value); /* int32 */ extern bof_t *bof_int32(int32_t value); extern int32_t bof_int32_value(bof_t *bof); /* common functions */ extern void bof_decref(bof_t *bof); -extern void bof_incref(bof_t *bof); extern int bof_dump_file(bof_t *bof, const char *filename);
static inline int bof_is_object(bof_t *bof){return (bof->type == BOF_TYPE_OBJECT);}
2.3.1
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel