Lines Matching refs:page
152 struct u_log_page *page = ctx->cur;
156 if (!page) {
158 page = ctx->cur;
159 if (!page)
163 if (page->num_entries >= page->max_entries) {
164 unsigned new_max_entries = MAX2(16, page->num_entries * 2);
165 struct page_entry *new_entries = REALLOC(page->entries,
166 page->max_entries * sizeof(*page->entries),
167 new_max_entries * sizeof(*page->entries));
171 page->entries = new_entries;
172 page->max_entries = new_max_entries;
175 page->entries[page->num_entries].type = type;
176 page->entries[page->num_entries].data = data;
177 page->num_entries++;
185 * Convenience helper that starts a new page and prints the previous one.
200 * Return the current page from the logging context and start a new one.
202 * The caller is responsible for destroying the returned page.
209 struct u_log_page *page = ctx->cur;
211 return page;
215 * Free all data associated with \p page.
218 u_log_page_destroy(struct u_log_page *page)
220 if (!page)
223 for (unsigned i = 0; i < page->num_entries; ++i) {
224 if (page->entries[i].type->destroy)
225 page->entries[i].type->destroy(page->entries[i].data);
227 FREE(page->entries);
228 FREE(page);
232 * Print the given page to \p stream.
235 u_log_page_print(struct u_log_page *page, FILE *stream)
237 for (unsigned i = 0; i < page->num_entries; ++i)
238 page->entries[i].type->print(page->entries[i].data, stream);