Lines Matching full:cd
22 static void init_die(struct die *cd) in init_die() argument
24 cd->state = DIE_INCOMPLETE; in init_die()
25 cd->mapped = false; in init_die()
26 cd->fqn = NULL; in init_die()
27 cd->tag = -1; in init_die()
28 cd->addr = 0; in init_die()
29 INIT_LIST_HEAD(&cd->fragments); in init_die()
34 struct die *cd; in create_die() local
36 cd = xmalloc(sizeof(struct die)); in create_die()
37 init_die(cd); in create_die()
38 cd->addr = (uintptr_t)die->addr; in create_die()
40 hash_add(die_map, &cd->hash, die_hash(cd->addr, state)); in create_die()
41 return cd; in create_die()
46 struct die *cd; in __die_map_get() local
48 hash_for_each_possible(die_map, cd, hash, die_hash(addr, state)) { in __die_map_get()
49 if (cd->addr == addr && cd->state == state) { in __die_map_get()
50 *res = cd; in __die_map_get()
60 struct die *cd; in die_map_get() local
62 if (__die_map_get((uintptr_t)die->addr, state, &cd) == 0) { in die_map_get()
64 return cd; in die_map_get()
71 static void reset_die(struct die *cd) in reset_die() argument
76 list_for_each_entry_safe(df, tmp, &cd->fragments, list) { in reset_die()
82 if (cd->fqn && *cd->fqn) in reset_die()
83 free(cd->fqn); in reset_die()
84 init_die(cd); in reset_die()
90 struct die *cd; in die_map_for_each() local
92 hash_for_each_safe(die_map, cd, tmp, hash) { in die_map_for_each()
93 func(cd, arg); in die_map_for_each()
101 struct die *cd; in die_map_free() local
106 hash_for_each_safe(die_map, cd, tmp, hash) { in die_map_free()
107 stats[cd->state]++; in die_map_free()
108 reset_die(cd); in die_map_free()
109 free(cd); in die_map_free()
122 static struct die_fragment *append_item(struct die *cd) in append_item() argument
128 list_add_tail(&df->list, &cd->fragments); in append_item()
132 void die_map_add_string(struct die *cd, const char *str) in die_map_add_string() argument
136 if (!cd) in die_map_add_string()
139 df = append_item(cd); in die_map_add_string()
144 void die_map_add_linebreak(struct die *cd, int linebreak) in die_map_add_linebreak() argument
148 if (!cd) in die_map_add_linebreak()
151 df = append_item(cd); in die_map_add_linebreak()
156 void die_map_add_die(struct die *cd, struct die *child) in die_map_add_die() argument
160 if (!cd) in die_map_add_die()
163 df = append_item(cd); in die_map_add_die()