Linux Audio

Check our new training course

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