Lines Matching refs:buf
29 static struct wpabuf_trace * wpabuf_get_trace(const struct wpabuf *buf) in wpabuf_get_trace() argument
32 ((const u8 *) buf - sizeof(struct wpabuf_trace)); in wpabuf_get_trace()
37 static void wpabuf_overflow(const struct wpabuf *buf, size_t len) in wpabuf_overflow() argument
40 struct wpabuf_trace *trace = wpabuf_get_trace(buf); in wpabuf_overflow()
47 buf, (unsigned long) buf->size, (unsigned long) buf->used, in wpabuf_overflow()
54 struct wpabuf *buf = *_buf; in wpabuf_resize() local
59 if (buf == NULL) { in wpabuf_resize()
65 trace = wpabuf_get_trace(buf); in wpabuf_resize()
73 if (buf->used + add_len > buf->size) { in wpabuf_resize()
75 if (buf->flags & WPABUF_FLAG_EXT_DATA) { in wpabuf_resize()
76 nbuf = os_realloc(buf->buf, buf->used + add_len); in wpabuf_resize()
79 memset(nbuf + buf->used, 0, add_len); in wpabuf_resize()
80 buf->buf = nbuf; in wpabuf_resize()
85 buf->used + add_len); in wpabuf_resize()
89 buf = (struct wpabuf *) (trace + 1); in wpabuf_resize()
91 sizeof(struct wpabuf) + buf->used, 0, in wpabuf_resize()
94 nbuf = (unsigned char*)os_realloc(buf, sizeof(struct wpabuf) + in wpabuf_resize()
95 buf->used + add_len); in wpabuf_resize()
98 buf = (struct wpabuf *) nbuf; in wpabuf_resize()
99 memset(nbuf + sizeof(struct wpabuf) + buf->used, 0, in wpabuf_resize()
102 buf->buf = (u8 *) (buf + 1); in wpabuf_resize()
103 *_buf = buf; in wpabuf_resize()
105 buf->size = buf->used + add_len; in wpabuf_resize()
122 struct wpabuf *buf; in wpabuf_alloc() local
126 buf = (struct wpabuf *) (trace + 1); in wpabuf_alloc()
128 struct wpabuf *buf = (struct wpabuf *)os_zalloc(sizeof(struct wpabuf) + len); in wpabuf_alloc()
129 if (buf == NULL) in wpabuf_alloc()
133 buf->size = len; in wpabuf_alloc()
134 buf->buf = (u8 *) (buf + 1); in wpabuf_alloc()
135 return buf; in wpabuf_alloc()
143 struct wpabuf *buf; in wpabuf_alloc_ext_data() local
147 buf = (struct wpabuf *) (trace + 1); in wpabuf_alloc_ext_data()
149 struct wpabuf *buf = (struct wpabuf *)os_zalloc(sizeof(struct wpabuf)); in wpabuf_alloc_ext_data()
150 if (buf == NULL) in wpabuf_alloc_ext_data()
154 buf->size = len; in wpabuf_alloc_ext_data()
155 buf->used = len; in wpabuf_alloc_ext_data()
156 buf->buf = data; in wpabuf_alloc_ext_data()
157 buf->flags |= WPABUF_FLAG_EXT_DATA; in wpabuf_alloc_ext_data()
159 return buf; in wpabuf_alloc_ext_data()
165 struct wpabuf *buf = wpabuf_alloc(len); in wpabuf_alloc_copy() local
166 if (buf) in wpabuf_alloc_copy()
167 wpabuf_put_data(buf, data, len); in wpabuf_alloc_copy()
168 return buf; in wpabuf_alloc_copy()
174 struct wpabuf *buf = wpabuf_alloc(wpabuf_len(src)); in wpabuf_dup() local
175 if (buf) in wpabuf_dup()
176 wpabuf_put_data(buf, wpabuf_head(src), wpabuf_len(src)); in wpabuf_dup()
177 return buf; in wpabuf_dup()
185 void wpabuf_free(struct wpabuf *buf) in wpabuf_free() argument
189 if (buf == NULL) in wpabuf_free()
191 trace = wpabuf_get_trace(buf); in wpabuf_free()
197 if (buf->flags & WPABUF_FLAG_EXT_DATA) in wpabuf_free()
198 os_free(buf->buf); in wpabuf_free()
201 if (buf == NULL) in wpabuf_free()
203 if (buf->flags & WPABUF_FLAG_EXT_DATA) in wpabuf_free()
204 os_free(buf->buf); in wpabuf_free()
205 os_free(buf); in wpabuf_free()
210 void wpabuf_clear_free(struct wpabuf *buf) in wpabuf_clear_free() argument
212 if (buf) { in wpabuf_clear_free()
213 os_memset(wpabuf_mhead(buf), 0, wpabuf_len(buf)); in wpabuf_clear_free()
214 wpabuf_free(buf); in wpabuf_clear_free()
219 void * wpabuf_put(struct wpabuf *buf, size_t len) in wpabuf_put() argument
221 void *tmp = wpabuf_mhead_u8(buf) + wpabuf_len(buf); in wpabuf_put()
222 buf->used += len; in wpabuf_put()
223 if (buf->used > buf->size) { in wpabuf_put()
224 wpabuf_overflow(buf, len); in wpabuf_put()
279 struct wpabuf * wpabuf_zeropad(struct wpabuf *buf, size_t len) in wpabuf_zeropad() argument
284 if (buf == NULL) in wpabuf_zeropad()
287 blen = wpabuf_len(buf); in wpabuf_zeropad()
289 return buf; in wpabuf_zeropad()
294 wpabuf_put_buf(ret, buf); in wpabuf_zeropad()
296 wpabuf_free(buf); in wpabuf_zeropad()
301 void wpabuf_printf(struct wpabuf *buf, const char *fmt, ...) in wpabuf_printf() argument
304 void *tmp = wpabuf_mhead_u8(buf) + wpabuf_len(buf); in wpabuf_printf()
308 res = vsnprintf(tmp, buf->size - buf->used, fmt, ap); in wpabuf_printf()
310 if (res < 0 || (size_t) res >= buf->size - buf->used) in wpabuf_printf()
311 wpabuf_overflow(buf, res); in wpabuf_printf()
312 buf->used += res; in wpabuf_printf()