Lines Matching full:d
23 void data_free(struct data d) in data_free() argument
27 m = d.markers; in data_free()
35 if (d.val) in data_free()
36 free(d.val); in data_free()
39 struct data data_grow_for(struct data d, int xlen) in data_grow_for() argument
45 return d; in data_grow_for()
47 nd = d; in data_grow_for()
51 while ((d.len + xlen) > newsize) in data_grow_for()
54 nd.val = xrealloc(d.val, newsize); in data_grow_for()
61 struct data d; in data_copy_mem() local
63 d = data_grow_for(empty_data, len); in data_copy_mem()
65 d.len = len; in data_copy_mem()
66 memcpy(d.val, mem, len); in data_copy_mem()
68 return d; in data_copy_mem()
108 struct data d; in data_copy_escape_string() local
111 d = data_grow_for(empty_data, strlen(s)+1); in data_copy_escape_string()
113 q = d.val; in data_copy_escape_string()
118 q[d.len++] = c; in data_copy_escape_string()
126 q[d.len++] = '\a'; in data_copy_escape_string()
129 q[d.len++] = '\b'; in data_copy_escape_string()
132 q[d.len++] = '\t'; in data_copy_escape_string()
135 q[d.len++] = '\n'; in data_copy_escape_string()
138 q[d.len++] = '\v'; in data_copy_escape_string()
141 q[d.len++] = '\f'; in data_copy_escape_string()
144 q[d.len++] = '\r'; in data_copy_escape_string()
156 q[d.len++] = get_oct_char(s, &i); in data_copy_escape_string()
159 q[d.len++] = get_hex_char(s, &i); in data_copy_escape_string()
162 q[d.len++] = c; in data_copy_escape_string()
166 q[d.len++] = '\0'; in data_copy_escape_string()
167 return d; in data_copy_escape_string()
172 struct data d = empty_data; in data_copy_file() local
174 while (!feof(f) && (d.len < maxlen)) { in data_copy_file()
180 chunksize = maxlen - d.len; in data_copy_file()
182 d = data_grow_for(d, chunksize); in data_copy_file()
183 ret = fread(d.val + d.len, 1, chunksize, f); in data_copy_file()
188 if (d.len + ret < d.len) in data_copy_file()
191 d.len += ret; in data_copy_file()
194 return d; in data_copy_file()
197 struct data data_append_data(struct data d, const void *p, int len) in data_append_data() argument
199 d = data_grow_for(d, len); in data_append_data()
200 memcpy(d.val + d.len, p, len); in data_append_data()
201 d.len += len; in data_append_data()
202 return d; in data_append_data()
205 struct data data_insert_at_marker(struct data d, struct marker *m, in data_insert_at_marker() argument
208 d = data_grow_for(d, len); in data_insert_at_marker()
209 memmove(d.val + m->offset + len, d.val + m->offset, d.len - m->offset); in data_insert_at_marker()
210 memcpy(d.val + m->offset, p, len); in data_insert_at_marker()
211 d.len += len; in data_insert_at_marker()
217 return d; in data_insert_at_marker()
220 static struct data data_append_markers(struct data d, struct marker *m) in data_append_markers() argument
222 struct marker **mp = &d.markers; in data_append_markers()
228 return d; in data_append_markers()
233 struct data d; in data_merge() local
236 d = data_append_markers(data_append_data(d1, d2.val, d2.len), m2); in data_merge()
245 return d; in data_merge()
248 struct data data_append_cell(struct data d, cell_t word) in data_append_cell() argument
252 return data_append_data(d, &beword, sizeof(beword)); in data_append_cell()
255 struct data data_append_re(struct data d, const struct fdt_reserve_entry *re) in data_append_re() argument
262 return data_append_data(d, &bere, sizeof(bere)); in data_append_re()
265 struct data data_append_addr(struct data d, uint64_t addr) in data_append_addr() argument
269 return data_append_data(d, &beaddr, sizeof(beaddr)); in data_append_addr()
272 struct data data_append_byte(struct data d, uint8_t byte) in data_append_byte() argument
274 return data_append_data(d, &byte, 1); in data_append_byte()
277 struct data data_append_zeroes(struct data d, int len) in data_append_zeroes() argument
279 d = data_grow_for(d, len); in data_append_zeroes()
281 memset(d.val + d.len, 0, len); in data_append_zeroes()
282 d.len += len; in data_append_zeroes()
283 return d; in data_append_zeroes()
286 struct data data_append_align(struct data d, int align) in data_append_align() argument
288 int newlen = ALIGN(d.len, align); in data_append_align()
289 return data_append_zeroes(d, newlen - d.len); in data_append_align()
292 struct data data_add_marker(struct data d, enum markertype type, char *ref) in data_add_marker() argument
297 m->offset = d.len; in data_add_marker()
302 return data_append_markers(d, m); in data_add_marker()
305 int data_is_one_string(struct data d) in data_is_one_string() argument
308 int len = d.len; in data_is_one_string()
314 if (d.val[i] == '\0') in data_is_one_string()
317 if (d.val[len-1] != '\0') in data_is_one_string()