1 /* Copyright (c) 2001 Matej Pfajfar.
2 * Copyright (c) 2001-2004, Roger Dingledine.
3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
4 * Copyright (c) 2007-2021, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
9 * @brief Header for lib/confmgt/unitparse.c
12 #ifndef TOR_LIB_CONFMGT_UNITPARSE_H
13 #define TOR_LIB_CONFMGT_UNITPARSE_H
15 #include <lib/cc/torint.h>
17 /** Mapping from a unit name to a multiplier for converting that unit into a
18 * base unit. Used by config_parse_unit. */
19 typedef struct unit_table_t
{
20 const char *unit
; /**< The name of the unit */
21 uint64_t multiplier
; /**< How many of the base unit appear in this unit */
24 extern const unit_table_t memory_units
[];
25 extern const unit_table_t time_units
[];
26 extern const struct unit_table_t time_msec_units
[];
28 uint64_t config_parse_units(const char *val
, const unit_table_t
*u
, int *ok
,
31 uint64_t config_parse_memunit(const char *s
, int *ok
);
32 int config_parse_msec_interval(const char *s
, int *ok
);
33 int config_parse_interval(const char *s
, int *ok
);
35 #endif /* !defined(TOR_LIB_CONFMGT_UNITPARSE_H) */