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()
172 field->filter_type == FILTER_RDYN_STRING) { in trace_alloc_entry()
176 if (field->filter_type == FILTER_RDYN_STRING) in trace_alloc_entry()
177 str_loc -= field->offset + field->size; in trace_alloc_entry()
179 str_item = (u32 *)(entry + field->offset); in trace_alloc_entry()
184 paddr = (char **)(entry + field->offset); in trace_alloc_entry()
207 return -ENOMEM; in parse_entry()
209 tracing_generic_entry_update(entry, call->event.type, in parse_entry()
214 return -EINVAL; in parse_entry()
219 if (field->filter_type == FILTER_STATIC_STRING) { in parse_entry()
220 strscpy(entry + field->offset, addr, field->size); in parse_entry()
221 } else if (field->filter_type == FILTER_DYN_STRING || in parse_entry()
222 field->filter_type == FILTER_RDYN_STRING) { in parse_entry()
231 return -ENOMEM; in parse_entry()
235 strscpy(entry + (entry_size - str_len), addr, str_len); in parse_entry()
236 str_item = (u32 *)(entry + field->offset); in parse_entry()
237 if (field->filter_type == FILTER_RDYN_STRING) in parse_entry()
238 str_loc -= field->offset + field->size; in parse_entry()
243 paddr = (char **)(entry + field->offset); in parse_entry()
247 switch (field->size) { in parse_entry()
251 memcpy(entry + field->offset, &tmp, 1); in parse_entry()
257 memcpy(entry + field->offset, &tmp, 2); in parse_entry()
263 memcpy(entry + field->offset, &tmp, 4); in parse_entry()
267 memcpy(entry + field->offset, &val, 8); in parse_entry()
270 return -EINVAL; in parse_entry()
289 int err = -ENODEV, size; in event_inject_write()
294 return -EINVAL; in event_inject_write()
304 call = file->event_call; in event_inject_write()
327 return -EPERM; in event_inject_read()