| /* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef CRAS_DUMPER_H_ |
| #define CRAS_DUMPER_H_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <stdio.h> |
| |
| /* dumper is an interface to output some human-readable information */ |
| struct dumper { |
| void (*vprintf)(struct dumper *dumper, const char *format, va_list ap); |
| void *data; /* private to each dumper */ |
| }; |
| |
| /* a convenience function outputs to a dumper */ |
| void dumpf(struct dumper *dumper, const char *format, ...); |
| |
| /* |
| * a dumper outputs to syslog with the given priority |
| */ |
| struct dumper *syslog_dumper_create(int priority); |
| void syslog_dumper_free(struct dumper *dumper); |
| |
| /* |
| * a dumper saves the output in a memory buffer |
| */ |
| struct dumper *mem_dumper_create(); |
| void mem_dumper_free(struct dumper *dumper); |
| |
| /* get the memory buffer of the output */ |
| void mem_dumper_get(struct dumper *dumper, char **buf, int *size); |
| |
| /* clear the memory buffer */ |
| void mem_dumper_clear(struct dumper *dumper); |
| |
| /* delete the first n characters in the memory buffer */ |
| void mem_dumper_consume(struct dumper *dumper, int n); |
| |
| #ifdef __cplusplus |
| } /* extern "C" */ |
| #endif |
| |
| #endif /* CRAS_DUMPER_H_ */ |