Message ID | 1427904935-14387-5-git-send-email-emil.l.velikov@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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);}
Used locally in bof.c. Cc: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> --- radeon/bof.c | 96 ++++++++++++++++++++++++++++++------------------------------ radeon/bof.h | 3 -- 2 files changed, 48 insertions(+), 51 deletions(-)