Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.15.
 1#ifndef _LIB_UBSAN_H
 2#define _LIB_UBSAN_H
 3
 4enum {
 5	type_kind_int = 0,
 6	type_kind_float = 1,
 7	type_unknown = 0xffff
 8};
 9
10struct type_descriptor {
11	u16 type_kind;
12	u16 type_info;
13	char type_name[1];
14};
15
16struct source_location {
17	const char *file_name;
18	union {
19		unsigned long reported;
20		struct {
21			u32 line;
22			u32 column;
23		};
24	};
25};
26
27struct overflow_data {
28	struct source_location location;
29	struct type_descriptor *type;
30};
31
32struct type_mismatch_data {
33	struct source_location location;
34	struct type_descriptor *type;
35	unsigned long alignment;
36	unsigned char type_check_kind;
37};
38
39struct nonnull_arg_data {
40	struct source_location location;
41	struct source_location attr_location;
42	int arg_index;
43};
44
45struct nonnull_return_data {
46	struct source_location location;
47	struct source_location attr_location;
48};
49
50struct vla_bound_data {
51	struct source_location location;
52	struct type_descriptor *type;
53};
54
55struct out_of_bounds_data {
56	struct source_location location;
57	struct type_descriptor *array_type;
58	struct type_descriptor *index_type;
59};
60
61struct shift_out_of_bounds_data {
62	struct source_location location;
63	struct type_descriptor *lhs_type;
64	struct type_descriptor *rhs_type;
65};
66
67struct unreachable_data {
68	struct source_location location;
69};
70
71struct invalid_value_data {
72	struct source_location location;
73	struct type_descriptor *type;
74};
75
76#if defined(CONFIG_ARCH_SUPPORTS_INT128) && defined(__SIZEOF_INT128__)
77typedef __int128 s_max;
78typedef unsigned __int128 u_max;
79#else
80typedef s64 s_max;
81typedef u64 u_max;
82#endif
83
84#endif