2#ifndef _LINUX_STRING_HELPERS_H_
3#define _LINUX_STRING_HELPERS_H_
15static inline bool string_is_terminated(
const char *s,
int len)
37#define UNESCAPE_SPACE BIT(0)
38#define UNESCAPE_OCTAL BIT(1)
39#define UNESCAPE_HEX BIT(2)
40#define UNESCAPE_SPECIAL BIT(3)
42 (UNESCAPE_SPACE | UNESCAPE_OCTAL | UNESCAPE_HEX | UNESCAPE_SPECIAL)
44#define UNESCAPE_ALL_MASK GENMASK(3, 0)
48static inline int string_unescape_inplace(
char *buf,
unsigned int flags)
53static inline int string_unescape_any(
char *src,
char *dst,
size_t size)
58static inline int string_unescape_any_inplace(
char *buf)
60 return string_unescape_any(buf, buf, 0);
63#define ESCAPE_SPACE BIT(0)
64#define ESCAPE_SPECIAL BIT(1)
65#define ESCAPE_NULL BIT(2)
66#define ESCAPE_OCTAL BIT(3)
68 (ESCAPE_SPACE | ESCAPE_OCTAL | ESCAPE_SPECIAL | ESCAPE_NULL)
69#define ESCAPE_NP BIT(4)
70#define ESCAPE_ANY_NP (ESCAPE_ANY | ESCAPE_NP)
71#define ESCAPE_HEX BIT(5)
72#define ESCAPE_NA BIT(6)
73#define ESCAPE_NAP BIT(7)
74#define ESCAPE_APPEND BIT(8)
76#define ESCAPE_ALL_MASK GENMASK(8, 0)
79 unsigned int flags,
const char *only);
81static inline int string_escape_mem_any_np(
const char *src,
size_t isz,
82 char *dst,
size_t osz,
const char *only)
87static inline int string_escape_str(
const char *src,
char *dst,
size_t sz,
88 unsigned int flags,
const char *only)
93static inline int string_escape_str_any_np(
const char *src,
char *dst,
94 size_t sz,
const char *only)
99static inline void string_upper(
char *dst,
const char *src)
106static inline void string_lower(
char *dst,
const char *src)
#define tolower(c)
Definition ctype.h:63
#define toupper(c)
Definition ctype.h:64
#define true
Definition stdbool.h:36
uint8_t flags
Definition virtio.h:0
XE_LIB void * memchr(const void *src, int c, size_t n)
Definition string.cpp:883
#define BIT(nr)
Definition bitops.h:112
#define __user
Definition compiler.h:63
size_t size
Definition drm_bridge.h:1299
const struct device * dev
Definition drm_print.h:519
size_t len
Definition initial.c:23
uint64_t u64
Definition kernel.h:17
unsigned int gfp_t
Definition kernel.h:56
char * kstrdup_quotable_cmdline(struct task_struct *task, gfp_t gfp)
char * kstrdup_quotable(const char *src, gfp_t gfp)
int parse_int_array_user(const char __user *from, size_t count, int **array)
char * kstrdup_quotable_file(struct file *file, gfp_t gfp)
char ** kasprintf_strarray(gfp_t gfp, const char *prefix, size_t n)
int string_unescape(char *src, char *dst, size_t size, unsigned int flags)
char * kstrdup_and_replace(const char *src, char old, char new, gfp_t gfp)
int parse_int_array(const char *buf, size_t count, int **array)
int string_escape_mem(const char *src, size_t isz, char *dst, size_t osz, unsigned int flags, const char *only)
char ** devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
#define UNESCAPE_ANY
Definition string_helpers.h:41
void kfree_strarray(char **array, size_t n)
#define ESCAPE_ANY_NP
Definition string_helpers.h:70
int string_get_size(u64 size, u64 blk_size, const enum string_size_units units, char *buf, int len)
string_size_units
Definition string_helpers.h:21
@ STRING_UNITS_2
Definition string_helpers.h:23
@ STRING_UNITS_NO_SPACE
Definition string_helpers.h:27
@ STRING_UNITS_MASK
Definition string_helpers.h:24
@ STRING_UNITS_10
Definition string_helpers.h:22
@ STRING_UNITS_NO_BYTES
Definition string_helpers.h:28