#endif
#include "../config.h"
-
int debug = FALSE;
int statistics = FALSE;
};
-void logmsg(char *prefix, FILE *out, const char *format, va_list args)
+static void logmsg(char *prefix, FILE *out, const char *format, va_list args)
{
if (prefix)
fprintf(out, "%s", prefix);
fprintf(out, "\n");
}
-void DBG(const char *format, ...)
+static void DBG(const char *format, ...)
{
va_list args;
va_end(args);
}
-void ERR(const char *format, ...)
+static void ERR(const char *format, ...)
{
va_list args;
va_end(args);
}
-int sr_log(void *cb_data, int loglevel, const char *format, va_list args)
+static int sr_log(void *cb_data, int loglevel, const char *format, va_list args)
{
(void)cb_data;
return SRD_OK;
}
-int srd_log(void *cb_data, int loglevel, const char *format, va_list args)
+static int srd_log(void *cb_data, int loglevel, const char *format, va_list args)
{
(void)cb_data;
return SRD_OK;
}
-void usage(char *msg)
+static void usage(char *msg)
{
if (msg)
fprintf(stderr, "%s\n", msg);
/* This is a neutered version of libsigrokdecode's py_str_as_str(). It
* does no error checking, but then the only strings it processes are
* generated by Python's repr(), so are known good. */
-char *py_str_as_str(const PyObject *py_str)
+static char *py_str_as_str(const PyObject *py_str)
{
PyObject *py_encstr;
char *str, *outstr;
}
-int get_stats(int stats[2])
-{
- FILE *f;
- size_t len;
- int tmp;
- char *buf;
-
- stats[0] = stats[1] = -1;
- if (!(f = fopen("/proc/self/status", "r")))
- return FALSE;
- len = 128;
- buf = malloc(len);
- while (getline(&buf, &len, f) != -1) {
- if (strcasestr(buf, "vmpeak:")) {
- stats[0] = strtoul(buf + 10, NULL, 10);
- } else if (strcasestr(buf, "vmsize:")) {
- tmp = strtoul(buf + 10, NULL, 10);
- if (tmp > stats[0])
- stats[0] = tmp;
- } else if (strcasestr(buf, "vmhwm:")) {
- stats[1] = strtoul(buf + 6, NULL, 10);
- } else if (strcasestr(buf, "vmrss:")) {
- tmp = strtoul(buf + 10, NULL, 10);
- if (tmp > stats[0])
- stats[0] = tmp;
- }
- }
- free(buf);
- fclose(f);
-
- return TRUE;
-}
-
static int run_testcase(char *infile, GSList *pdlist, struct output *op)
{
struct srd_session *sess;
GHashTable *probes, *opts;
GSList *pdl, *l;
int idx;
+ int max_probe;
char **decoder_class;
if (op->outfile) {
if (pd->probes) {
probes = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,
(GDestroyNotify)g_variant_unref);
+ max_probe = 0;
for (l = pd->probes; l; l = l->next) {
probe = l->data;
+ if (probe->probe > max_probe)
+ max_probe = probe->probe;
gvar = g_variant_new_int32(probe->probe);
g_variant_ref_sink(gvar);
g_hash_table_insert(probes, probe->name, gvar);
}
- if (srd_inst_probe_set_all(di, probes) != SRD_OK)
+ if (srd_inst_probe_set_all(di, probes,
+ (max_probe + 8) / 8) != SRD_OK)
return FALSE;
g_hash_table_destroy(probes);
}
/* Only annotations and binary can have a class. */
return FALSE;
idx = 0;
- while(l) {
+ while (l) {
decoder_class = l->data;
if (!strcmp(decoder_class[0], op->class)) {
op->class_idx = idx;
pdlist = NULL;
opt_infile = NULL;
pd = NULL;
- while((c = getopt(argc, argv, "dP:p:o:i:O:f:S")) != -1) {
+ while ((c = getopt(argc, argv, "dP:p:o:i:O:f:S")) != -1) {
switch(c) {
case 'd':
debug = TRUE;
return ret;
}
-
-