Lines Matching refs:dyxlat
29 struct dyxlat { struct
41 struct dyxlat * argument
44 struct dyxlat *const dyxlat = xmalloc(sizeof(*dyxlat)); in dyxlat_alloc() local
46 dyxlat->used = 1; in dyxlat_alloc()
47 dyxlat->allocated = nmemb; in dyxlat_alloc()
48 dyxlat->xlat = xgrowarray(NULL, &dyxlat->allocated, sizeof(struct xlat)); in dyxlat_alloc()
49 MARK_END(dyxlat->xlat[0]); in dyxlat_alloc()
51 return dyxlat; in dyxlat_alloc()
55 dyxlat_free(struct dyxlat *const dyxlat) in dyxlat_free() argument
59 for (i = 0; i < dyxlat->used - 1; ++i) { in dyxlat_free()
60 free((void *) dyxlat->xlat[i].str); in dyxlat_free()
61 dyxlat->xlat[i].str = NULL; in dyxlat_free()
64 free(dyxlat->xlat); in dyxlat_free()
65 dyxlat->xlat = NULL; in dyxlat_free()
66 free(dyxlat); in dyxlat_free()
70 dyxlat_get(const struct dyxlat *const dyxlat) in dyxlat_get() argument
72 return dyxlat->xlat; in dyxlat_get()
76 dyxlat_add_pair(struct dyxlat *const dyxlat, const uint64_t val, in dyxlat_add_pair() argument
81 for (i = 0; i < dyxlat->used - 1; ++i) { in dyxlat_add_pair()
82 if (dyxlat->xlat[i].val == val) { in dyxlat_add_pair()
83 if (strncmp(dyxlat->xlat[i].str, str, len) == 0 in dyxlat_add_pair()
84 && dyxlat->xlat[i].str[len] == '\0') in dyxlat_add_pair()
87 free((void *) dyxlat->xlat[i].str); in dyxlat_add_pair()
88 dyxlat->xlat[i].str = xstrndup(str, len); in dyxlat_add_pair()
93 if (dyxlat->used >= dyxlat->allocated) in dyxlat_add_pair()
94 dyxlat->xlat = xgrowarray(dyxlat->xlat, &dyxlat->allocated, in dyxlat_add_pair()
97 dyxlat->xlat[dyxlat->used - 1].val = val; in dyxlat_add_pair()
98 dyxlat->xlat[dyxlat->used - 1].str = xstrndup(str, len); in dyxlat_add_pair()
99 MARK_END(dyxlat->xlat[dyxlat->used]); in dyxlat_add_pair()
100 dyxlat->used++; in dyxlat_add_pair()