]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
bpf: Sync bpf.h to tools/
authorAndrey Ignatov <rdna@fb.com>
Tue, 19 Mar 2019 01:07:01 +0000 (18:07 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 12 Apr 2019 20:54:59 +0000 (13:54 -0700)
Sync bpf_strtoX related bpf UAPI changes to tools/.

Signed-off-by: Andrey Ignatov <rdna@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/include/uapi/linux/bpf.h

index 89976de909af61f21c6570eaf75ac202b031a760..c26be24fd5e21956dea03ec48b0f7bc485b6e1d2 100644 (file)
@@ -2575,6 +2575,53 @@ union bpf_attr {
  *             **-E2BIG** if the *buf_len* is too big.
  *
  *             **-EINVAL** if sysctl is being read.
+ *
+ * int bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res)
+ *     Description
+ *             Convert the initial part of the string from buffer *buf* of
+ *             size *buf_len* to a long integer according to the given base
+ *             and save the result in *res*.
+ *
+ *             The string may begin with an arbitrary amount of white space
+ *             (as determined by isspace(3)) followed by a single optional '-'
+ *             sign.
+ *
+ *             Five least significant bits of *flags* encode base, other bits
+ *             are currently unused.
+ *
+ *             Base must be either 8, 10, 16 or 0 to detect it automatically
+ *             similar to user space strtol(3).
+ *     Return
+ *             Number of characters consumed on success. Must be positive but
+ *             no more than buf_len.
+ *
+ *             **-EINVAL** if no valid digits were found or unsupported base
+ *             was provided.
+ *
+ *             **-ERANGE** if resulting value was out of range.
+ *
+ * int bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res)
+ *     Description
+ *             Convert the initial part of the string from buffer *buf* of
+ *             size *buf_len* to an unsigned long integer according to the
+ *             given base and save the result in *res*.
+ *
+ *             The string may begin with an arbitrary amount of white space
+ *             (as determined by isspace(3)).
+ *
+ *             Five least significant bits of *flags* encode base, other bits
+ *             are currently unused.
+ *
+ *             Base must be either 8, 10, 16 or 0 to detect it automatically
+ *             similar to user space strtoul(3).
+ *     Return
+ *             Number of characters consumed on success. Must be positive but
+ *             no more than buf_len.
+ *
+ *             **-EINVAL** if no valid digits were found or unsupported base
+ *             was provided.
+ *
+ *             **-ERANGE** if resulting value was out of range.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -2681,7 +2728,9 @@ union bpf_attr {
        FN(sysctl_get_name),            \
        FN(sysctl_get_current_value),   \
        FN(sysctl_get_new_value),       \
-       FN(sysctl_set_new_value),
+       FN(sysctl_set_new_value),       \
+       FN(strtol),                     \
+       FN(strtoul),
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call