Commit 689d7c2a authored by Dave Airlie's avatar Dave Airlie

drm/radeon: cleanup mkregtable.c

This cleans up the code in mkregtable.c to be more kernel style.
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent a1a2d1d3
...@@ -25,10 +25,8 @@ ...@@ -25,10 +25,8 @@
* *
*/ */
#define container_of(ptr, type, member) ({ \ #define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \ const typeof(((type *)0)->member)*__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );}) (type *)((char *)__mptr - offsetof(type, member)); })
/* /*
* Simple doubly linked list implementation. * Simple doubly linked list implementation.
...@@ -63,8 +61,7 @@ static inline void INIT_LIST_HEAD(struct list_head *list) ...@@ -63,8 +61,7 @@ static inline void INIT_LIST_HEAD(struct list_head *list)
*/ */
#ifndef CONFIG_DEBUG_LIST #ifndef CONFIG_DEBUG_LIST
static inline void __list_add(struct list_head *new, static inline void __list_add(struct list_head *new,
struct list_head *prev, struct list_head *prev, struct list_head *next)
struct list_head *next)
{ {
next->prev = new; next->prev = new;
new->next = next; new->next = next;
...@@ -73,8 +70,7 @@ static inline void __list_add(struct list_head *new, ...@@ -73,8 +70,7 @@ static inline void __list_add(struct list_head *new,
} }
#else #else
extern void __list_add(struct list_head *new, extern void __list_add(struct list_head *new,
struct list_head *prev, struct list_head *prev, struct list_head *next);
struct list_head *next);
#endif #endif
/** /**
...@@ -90,7 +86,6 @@ static inline void list_add(struct list_head *new, struct list_head *head) ...@@ -90,7 +86,6 @@ static inline void list_add(struct list_head *new, struct list_head *head)
__list_add(new, head, head->next); __list_add(new, head, head->next);
} }
/** /**
* list_add_tail - add a new entry * list_add_tail - add a new entry
* @new: new entry to be added * @new: new entry to be added
...@@ -111,7 +106,7 @@ static inline void list_add_tail(struct list_head *new, struct list_head *head) ...@@ -111,7 +106,7 @@ static inline void list_add_tail(struct list_head *new, struct list_head *head)
* This is only for internal list manipulation where we know * This is only for internal list manipulation where we know
* the prev/next entries already! * the prev/next entries already!
*/ */
static inline void __list_del(struct list_head * prev, struct list_head * next) static inline void __list_del(struct list_head *prev, struct list_head *next)
{ {
next->prev = prev; next->prev = prev;
prev->next = next; prev->next = next;
...@@ -127,8 +122,8 @@ static inline void __list_del(struct list_head * prev, struct list_head * next) ...@@ -127,8 +122,8 @@ static inline void __list_del(struct list_head * prev, struct list_head * next)
static inline void list_del(struct list_head *entry) static inline void list_del(struct list_head *entry)
{ {
__list_del(entry->prev, entry->next); __list_del(entry->prev, entry->next);
entry->next = (void*)0xDEADBEEF; entry->next = (void *)0xDEADBEEF;
entry->prev = (void*)0xBEEFDEAD; entry->prev = (void *)0xBEEFDEAD;
} }
#else #else
extern void list_del(struct list_head *entry); extern void list_del(struct list_head *entry);
...@@ -141,8 +136,7 @@ extern void list_del(struct list_head *entry); ...@@ -141,8 +136,7 @@ extern void list_del(struct list_head *entry);
* *
* If @old was empty, it will be overwritten. * If @old was empty, it will be overwritten.
*/ */
static inline void list_replace(struct list_head *old, static inline void list_replace(struct list_head *old, struct list_head *new)
struct list_head *new)
{ {
new->next = old->next; new->next = old->next;
new->next->prev = new; new->next->prev = new;
...@@ -239,7 +233,8 @@ static inline int list_is_singular(const struct list_head *head) ...@@ -239,7 +233,8 @@ static inline int list_is_singular(const struct list_head *head)
} }
static inline void __list_cut_position(struct list_head *list, static inline void __list_cut_position(struct list_head *list,
struct list_head *head, struct list_head *entry) struct list_head *head,
struct list_head *entry)
{ {
struct list_head *new_first = entry->next; struct list_head *new_first = entry->next;
list->next = head->next; list->next = head->next;
...@@ -265,12 +260,12 @@ static inline void __list_cut_position(struct list_head *list, ...@@ -265,12 +260,12 @@ static inline void __list_cut_position(struct list_head *list,
* *
*/ */
static inline void list_cut_position(struct list_head *list, static inline void list_cut_position(struct list_head *list,
struct list_head *head, struct list_head *entry) struct list_head *head,
struct list_head *entry)
{ {
if (list_empty(head)) if (list_empty(head))
return; return;
if (list_is_singular(head) && if (list_is_singular(head) && (head->next != entry && head != entry))
(head->next != entry && head != entry))
return; return;
if (entry == head) if (entry == head)
INIT_LIST_HEAD(list); INIT_LIST_HEAD(list);
...@@ -279,8 +274,7 @@ static inline void list_cut_position(struct list_head *list, ...@@ -279,8 +274,7 @@ static inline void list_cut_position(struct list_head *list,
} }
static inline void __list_splice(const struct list_head *list, static inline void __list_splice(const struct list_head *list,
struct list_head *prev, struct list_head *prev, struct list_head *next)
struct list_head *next)
{ {
struct list_head *first = list->next; struct list_head *first = list->next;
struct list_head *last = list->prev; struct list_head *last = list->prev;
...@@ -567,11 +561,11 @@ struct table { ...@@ -567,11 +561,11 @@ struct table {
char *gpu_prefix; char *gpu_prefix;
}; };
struct offset* offset_new(unsigned o) struct offset *offset_new(unsigned o)
{ {
struct offset *offset; struct offset *offset;
offset = (struct offset*)malloc(sizeof(struct offset)); offset = (struct offset *)malloc(sizeof(struct offset));
if (offset) { if (offset) {
INIT_LIST_HEAD(&offset->list); INIT_LIST_HEAD(&offset->list);
offset->offset = o; offset->offset = o;
...@@ -598,16 +592,18 @@ void table_print(struct table *t) ...@@ -598,16 +592,18 @@ void table_print(struct table *t)
nlloop = (t->nentry + 3) / 4; nlloop = (t->nentry + 3) / 4;
c = t->nentry; c = t->nentry;
printf("static const unsigned %s_reg_safe_bm[%d] = {\n", t->gpu_prefix, t->nentry); printf("static const unsigned %s_reg_safe_bm[%d] = {\n", t->gpu_prefix,
for(i = 0, id = 0; i < nlloop; i++) { t->nentry);
for (i = 0, id = 0; i < nlloop; i++) {
n = 4; n = 4;
if (n > c) { if (n > c)
n = c; n = c;
}
c -= n; c -= n;
for(j = 0; j < n; j++) { for (j = 0; j < n; j++) {
if (j == 0) printf("\t"); if (j == 0)
else printf(" "); printf("\t");
else
printf(" ");
printf("0x%08X,", t->table[id++]); printf("0x%08X,", t->table[id++]);
} }
printf("\n"); printf("\n");
...@@ -621,10 +617,9 @@ int table_build(struct table *t) ...@@ -621,10 +617,9 @@ int table_build(struct table *t)
unsigned i, m; unsigned i, m;
t->nentry = ((t->offset_max >> 2) + 31) / 32; t->nentry = ((t->offset_max >> 2) + 31) / 32;
t->table = (unsigned*)malloc(sizeof(unsigned) * t->nentry); t->table = (unsigned *)malloc(sizeof(unsigned) * t->nentry);
if (t->table == NULL) { if (t->table == NULL)
return -1; return -1;
}
memset(t->table, 0xff, sizeof(unsigned) * t->nentry); memset(t->table, 0xff, sizeof(unsigned) * t->nentry);
list_for_each_entry(offset, &t->offsets, list) { list_for_each_entry(offset, &t->offsets, list) {
i = (offset->offset >> 2) / 32; i = (offset->offset >> 2) / 32;
...@@ -651,7 +646,8 @@ int parser_auth(struct table *t, const char *filename) ...@@ -651,7 +646,8 @@ int parser_auth(struct table *t, const char *filename)
char last_reg_s[10]; char last_reg_s[10];
int last_reg; int last_reg;
if (regcomp(&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { if (regcomp
(&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
fprintf(stderr, "Failed to compile regular expression\n"); fprintf(stderr, "Failed to compile regular expression\n");
return -1; return -1;
} }
...@@ -678,14 +674,14 @@ int parser_auth(struct table *t, const char *filename) ...@@ -678,14 +674,14 @@ int parser_auth(struct table *t, const char *filename)
if (fgets(buf, 1024, file) == NULL) if (fgets(buf, 1024, file) == NULL)
return -1; return -1;
len = strlen(buf); len = strlen(buf);
if (ftell(file) == end) { if (ftell(file) == end)
done = 1; done = 1;
}
if (len) { if (len) {
r = regexec(&mask_rex, buf, 4, match, 0); r = regexec(&mask_rex, buf, 4, match, 0);
if (r == REG_NOMATCH) { if (r == REG_NOMATCH) {
} else if (r) { } else if (r) {
fprintf(stderr, "Error matching regular expression %d in %s\n", fprintf(stderr,
"Error matching regular expression %d in %s\n",
r, filename); r, filename);
return -1; return -1;
} else { } else {
...@@ -695,11 +691,10 @@ int parser_auth(struct table *t, const char *filename) ...@@ -695,11 +691,10 @@ int parser_auth(struct table *t, const char *filename)
o = strtol(&buf[match[1].rm_so], NULL, 16); o = strtol(&buf[match[1].rm_so], NULL, 16);
offset = offset_new(o); offset = offset_new(o);
table_offset_add(t, offset); table_offset_add(t, offset);
if (o > t->offset_max) { if (o > t->offset_max)
t->offset_max = o; t->offset_max = o;
} }
} }
}
} while (!done); } while (!done);
fclose(file); fclose(file);
if (t->offset_max < last_reg) if (t->offset_max < last_reg)
...@@ -712,8 +707,7 @@ int main(int argc, char *argv[]) ...@@ -712,8 +707,7 @@ int main(int argc, char *argv[])
struct table t; struct table t;
if (argc != 2) { if (argc != 2) {
fprintf(stderr, "Usage: %s <authfile>\n", fprintf(stderr, "Usage: %s <authfile>\n", argv[0]);
argv[0]);
exit(1); exit(1);
} }
table_init(&t); table_init(&t);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment