Lines Matching +full:num +full:- +full:strings
1 // SPDX-License-Identifier: GPL-2.0
3 * trace_events_inject - trace event injection
53 len = i - s; in parse_field()
55 return -EINVAL; in parse_field()
59 return -ENOMEM; in parse_field()
63 return -ENOENT; in parse_field()
69 return -EINVAL; in parse_field()
74 if (isdigit(str[i]) || str[i] == '-') { in parse_field()
75 char *num, c; in parse_field() local
80 return -EINVAL; in parse_field()
82 if (str[i] == '-') in parse_field()
88 num = str + s; in parse_field()
91 return -EINVAL; in parse_field()
94 if (field->is_signed) in parse_field()
95 ret = kstrtoll(num, 0, &val); in parse_field()
97 ret = kstrtoull(num, 0, &val); in parse_field()
107 /* Make sure the field is OK for strings */ in parse_field()
109 return -EINVAL; in parse_field()
120 return -EINVAL; in parse_field()
124 len = i - s; in parse_field()
126 return -EINVAL; in parse_field()
135 return -EINVAL; in parse_field()
146 if (field->size + field->offset > size) in trace_get_entry_size()
147 size = field->size + field->offset; in trace_get_entry_size()
169 if (field->filter_type == FILTER_STATIC_STRING) in trace_alloc_entry()
171 if (field->filter_type == FILTER_DYN_STRING) { in trace_alloc_entry()
175 str_item = (u32 *)(entry + field->offset); in trace_alloc_entry()
180 paddr = (char **)(entry + field->offset); in trace_alloc_entry()
204 return -ENOMEM; in parse_entry()
207 tracing_generic_entry_update(entry, call->event.type, irq_flags, in parse_entry()
212 return -EINVAL; in parse_entry()
217 if (field->filter_type == FILTER_STATIC_STRING) { in parse_entry()
218 strlcpy(entry + field->offset, addr, field->size); in parse_entry()
219 } else if (field->filter_type == FILTER_DYN_STRING) { in parse_entry()
228 return -ENOMEM; in parse_entry()
232 strlcpy(entry + (entry_size - str_len), addr, str_len); in parse_entry()
233 str_item = (u32 *)(entry + field->offset); in parse_entry()
238 paddr = (char **)(entry + field->offset); in parse_entry()
242 switch (field->size) { in parse_entry()
246 memcpy(entry + field->offset, &tmp, 1); in parse_entry()
252 memcpy(entry + field->offset, &tmp, 2); in parse_entry()
258 memcpy(entry + field->offset, &tmp, 4); in parse_entry()
262 memcpy(entry + field->offset, &val, 8); in parse_entry()
265 return -EINVAL; in parse_entry()
284 int err = -ENODEV, size; in event_inject_write()
289 return -EINVAL; in event_inject_write()
299 call = file->event_call; in event_inject_write()
322 return -EPERM; in event_inject_read()