Re: [rt-tests v1 1/6] rt-utils: Introduce parse_mem_string()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Fri, 13 Nov 2020, Daniel Wagner wrote:

> Add helper to parse common memory prefixes on strings.
> 
> Signed-off-by: Daniel Wagner <dwagner@xxxxxxx>
> ---
>  src/include/rt-utils.h |  1 +
>  src/lib/rt-utils.c     | 30 ++++++++++++++++++++++++++++++
>  2 files changed, 31 insertions(+)
> 
> diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h
> index c6fb220cdb0a..39ddbd9eae29 100644
> --- a/src/include/rt-utils.h
> +++ b/src/include/rt-utils.h
> @@ -28,6 +28,7 @@ uint32_t string_to_policy(const char *str);
>  pid_t gettid(void);
>  
>  int parse_time_string(char *val);
> +int parse_mem_string(char *str, uint64_t *val);
>  
>  void enable_trace_mark(void);
>  void tracemark(char *fmt, ...) __attribute__((format(printf, 1, 2)));
> diff --git a/src/lib/rt-utils.c b/src/lib/rt-utils.c
> index a30e1e4ce436..2d68d62cd875 100644
> --- a/src/lib/rt-utils.c
> +++ b/src/lib/rt-utils.c
> @@ -362,6 +362,36 @@ int parse_time_string(char *val)
>  	return t;
>  }
>  
> +int parse_mem_string(char *str, uint64_t *val)
> +{
> +	char *endptr;
> +	int v = strtol(str, &endptr, 10);
> +
> +	if (!*endptr)
> +		return v;
> +
> +	switch (*endptr) {
> +	case 'g':
> +	case 'G':
> +		v *= 1024;
> +	case 'm':
> +	case 'M':
> +		v *= 1024;
> +	case 'k':
> +	case 'K':
> +		v *= 1024;
> +	case 'b':
> +	case 'B':
> +		break;
> +	default:
> +		return -1;
> +	}
> +
> +	*val = v;
> +
> +	return 0;
> +}
> +
>  static void open_tracemark_fd(void)
>  {
>  	char path[MAX_PATH];
> -- 
> 2.29.2
> 
> 

Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux