Lines Matching +full:static +full:- +full:config

2  * Copyright (c) 2015-2019, Intel Corporation
34 #include "intel-pt.h"
39 /* A global fake buffer to pacify static analyzers. */
40 static uint8_t buffer[8];
42 static struct ptunit_result from_user_null(void) in from_user_null()
44 struct pt_config config; in from_user_null() local
47 errcode = pt_config_from_user(NULL, &config); in from_user_null()
48 ptu_int_eq(errcode, -pte_internal); in from_user_null()
50 errcode = pt_config_from_user(&config, NULL); in from_user_null()
51 ptu_int_eq(errcode, -pte_invalid); in from_user_null()
56 static struct ptunit_result from_user_too_small(void) in from_user_too_small()
58 struct pt_config config, user; in from_user_too_small() local
61 user.size = sizeof(config.size); in from_user_too_small()
63 errcode = pt_config_from_user(&config, &user); in from_user_too_small()
64 ptu_int_eq(errcode, -pte_bad_config); in from_user_too_small()
69 static struct ptunit_result from_user_bad_buffer(void) in from_user_bad_buffer()
71 struct pt_config config, user; in from_user_bad_buffer() local
76 errcode = pt_config_from_user(&config, &user); in from_user_bad_buffer()
77 ptu_int_eq(errcode, -pte_bad_config); in from_user_bad_buffer()
81 errcode = pt_config_from_user(&config, &user); in from_user_bad_buffer()
82 ptu_int_eq(errcode, -pte_bad_config); in from_user_bad_buffer()
87 errcode = pt_config_from_user(&config, &user); in from_user_bad_buffer()
88 ptu_int_eq(errcode, -pte_bad_config); in from_user_bad_buffer()
93 errcode = pt_config_from_user(&config, &user); in from_user_bad_buffer()
94 ptu_int_eq(errcode, -pte_bad_config); in from_user_bad_buffer()
99 static struct ptunit_result from_user(void) in from_user()
101 struct pt_config config, user; in from_user() local
110 errcode = pt_config_from_user(&config, &user); in from_user()
112 ptu_uint_eq(config.size, sizeof(config)); in from_user()
113 ptu_ptr_eq(config.begin, buffer); in from_user()
114 ptu_ptr_eq(config.end, &buffer[sizeof(buffer)]); in from_user()
115 ptu_int_eq(config.cpu.vendor, pcv_intel); in from_user()
116 ptu_uint_eq(config.errata.bdm70, 1); in from_user()
121 static struct ptunit_result from_user_small(void) in from_user_small()
123 struct pt_config config, user; in from_user_small() local
126 memset(&config, 0xcd, sizeof(config)); in from_user_small()
132 errcode = pt_config_from_user(&config, &user); in from_user_small()
134 ptu_uint_eq(config.size, offsetof(struct pt_config, cpu)); in from_user_small()
135 ptu_ptr_eq(config.begin, buffer); in from_user_small()
136 ptu_ptr_eq(config.end, &buffer[sizeof(buffer)]); in from_user_small()
137 ptu_int_eq(config.cpu.vendor, pcv_unknown); in from_user_small()
138 ptu_uint_eq(config.errata.bdm70, 0); in from_user_small()
143 static struct ptunit_result from_user_big(void) in from_user_big()
145 struct pt_config config, user; in from_user_big() local
154 errcode = pt_config_from_user(&config, &user); in from_user_big()
156 ptu_uint_eq(config.size, sizeof(config)); in from_user_big()
157 ptu_ptr_eq(config.begin, buffer); in from_user_big()
158 ptu_ptr_eq(config.end, &buffer[sizeof(buffer)]); in from_user_big()
159 ptu_int_eq(config.cpu.vendor, pcv_intel); in from_user_big()
160 ptu_uint_eq(config.errata.bdm70, 1); in from_user_big()
165 static struct ptunit_result size(void) in size()
172 static struct ptunit_result addr_filter_size(void) in addr_filter_size()
176 ptu_uint_eq(sizeof(conf.config), 8); in addr_filter_size()
181 static struct ptunit_result addr_filter_none(void) in addr_filter_none()
183 struct pt_config config; in addr_filter_none() local
186 pt_config_init(&config); in addr_filter_none()
188 ptu_uint_eq(config.addr_filter.config.addr_cfg, 0ull); in addr_filter_none()
193 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, filter); in addr_filter_none()
201 static struct ptunit_result addr_filter_0(void) in addr_filter_0()
203 struct pt_config config; in addr_filter_0() local
208 pt_config_init(&config); in addr_filter_0()
209 config.addr_filter.config.ctl.addr0_cfg = pt_addr_cfg_filter; in addr_filter_0()
210 config.addr_filter.addr0_a = 0xa000ull; in addr_filter_0()
211 config.addr_filter.addr0_b = 0xb000ull; in addr_filter_0()
213 ptu_uint_ne(config.addr_filter.config.addr_cfg, 0ull); in addr_filter_0()
215 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, 0); in addr_filter_0()
218 addr_a = pt_filter_addr_a(&config.addr_filter, 0); in addr_filter_0()
221 addr_b = pt_filter_addr_b(&config.addr_filter, 0); in addr_filter_0()
226 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, filter); in addr_filter_0()
234 static struct ptunit_result addr_filter_1_3(void) in addr_filter_1_3()
236 struct pt_config config; in addr_filter_1_3() local
240 pt_config_init(&config); in addr_filter_1_3()
241 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_filter; in addr_filter_1_3()
242 config.addr_filter.addr1_a = 0xa000ull; in addr_filter_1_3()
243 config.addr_filter.addr1_b = 0xb000ull; in addr_filter_1_3()
244 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_stop; in addr_filter_1_3()
245 config.addr_filter.addr3_a = 0x100a000ull; in addr_filter_1_3()
246 config.addr_filter.addr3_b = 0x100b000ull; in addr_filter_1_3()
248 ptu_uint_ne(config.addr_filter.config.addr_cfg, 0ull); in addr_filter_1_3()
250 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, 0); in addr_filter_1_3()
253 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, 1); in addr_filter_1_3()
256 addr_a = pt_filter_addr_a(&config.addr_filter, 1); in addr_filter_1_3()
259 addr_b = pt_filter_addr_b(&config.addr_filter, 1); in addr_filter_1_3()
262 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, 2); in addr_filter_1_3()
265 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, 3); in addr_filter_1_3()
268 addr_a = pt_filter_addr_a(&config.addr_filter, 3); in addr_filter_1_3()
271 addr_b = pt_filter_addr_b(&config.addr_filter, 3); in addr_filter_1_3()
277 static struct ptunit_result addr_filter_oob(uint8_t filter) in addr_filter_oob()
279 struct pt_config config; in addr_filter_oob() local
283 pt_config_init(&config); in addr_filter_oob()
285 memset(&config.addr_filter, 0xcc, sizeof(config.addr_filter)); in addr_filter_oob()
287 addr_cfg = pt_filter_addr_cfg(&config.addr_filter, filter); in addr_filter_oob()
290 addr_a = pt_filter_addr_a(&config.addr_filter, filter); in addr_filter_oob()
293 addr_b = pt_filter_addr_b(&config.addr_filter, filter); in addr_filter_oob()
299 static struct ptunit_result addr_filter_ip_in(void) in addr_filter_ip_in()
301 struct pt_config config; in addr_filter_ip_in() local
304 pt_config_init(&config); in addr_filter_ip_in()
305 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_filter; in addr_filter_ip_in()
306 config.addr_filter.addr1_a = 0xa000; in addr_filter_ip_in()
307 config.addr_filter.addr1_b = 0xb000; in addr_filter_ip_in()
308 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_filter; in addr_filter_ip_in()
309 config.addr_filter.addr3_a = 0x10a000; in addr_filter_ip_in()
310 config.addr_filter.addr3_b = 0x10b000; in addr_filter_ip_in()
312 status = pt_filter_addr_check(&config.addr_filter, 0xa000); in addr_filter_ip_in()
315 status = pt_filter_addr_check(&config.addr_filter, 0xaf00); in addr_filter_ip_in()
318 status = pt_filter_addr_check(&config.addr_filter, 0xb000); in addr_filter_ip_in()
321 status = pt_filter_addr_check(&config.addr_filter, 0x10a000); in addr_filter_ip_in()
324 status = pt_filter_addr_check(&config.addr_filter, 0x10af00); in addr_filter_ip_in()
327 status = pt_filter_addr_check(&config.addr_filter, 0x10b000); in addr_filter_ip_in()
333 static struct ptunit_result addr_filter_ip_out(void) in addr_filter_ip_out()
335 struct pt_config config; in addr_filter_ip_out() local
338 pt_config_init(&config); in addr_filter_ip_out()
339 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_filter; in addr_filter_ip_out()
340 config.addr_filter.addr1_a = 0xa000; in addr_filter_ip_out()
341 config.addr_filter.addr1_b = 0xb000; in addr_filter_ip_out()
342 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_filter; in addr_filter_ip_out()
343 config.addr_filter.addr3_a = 0x10a000; in addr_filter_ip_out()
344 config.addr_filter.addr3_b = 0x10b000; in addr_filter_ip_out()
346 status = pt_filter_addr_check(&config.addr_filter, 0xfff); in addr_filter_ip_out()
349 status = pt_filter_addr_check(&config.addr_filter, 0xb001); in addr_filter_ip_out()
352 status = pt_filter_addr_check(&config.addr_filter, 0x100fff); in addr_filter_ip_out()
355 status = pt_filter_addr_check(&config.addr_filter, 0x10b001); in addr_filter_ip_out()
361 static struct ptunit_result addr_filter_stop_in(void) in addr_filter_stop_in()
363 struct pt_config config; in addr_filter_stop_in() local
366 pt_config_init(&config); in addr_filter_stop_in()
367 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_stop; in addr_filter_stop_in()
368 config.addr_filter.addr1_a = 0xa000; in addr_filter_stop_in()
369 config.addr_filter.addr1_b = 0xb000; in addr_filter_stop_in()
370 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_stop; in addr_filter_stop_in()
371 config.addr_filter.addr3_a = 0x10a000; in addr_filter_stop_in()
372 config.addr_filter.addr3_b = 0x10b000; in addr_filter_stop_in()
374 status = pt_filter_addr_check(&config.addr_filter, 0xa000); in addr_filter_stop_in()
377 status = pt_filter_addr_check(&config.addr_filter, 0xaf00); in addr_filter_stop_in()
380 status = pt_filter_addr_check(&config.addr_filter, 0xb000); in addr_filter_stop_in()
383 status = pt_filter_addr_check(&config.addr_filter, 0x10a000); in addr_filter_stop_in()
386 status = pt_filter_addr_check(&config.addr_filter, 0x10af00); in addr_filter_stop_in()
389 status = pt_filter_addr_check(&config.addr_filter, 0x10b000); in addr_filter_stop_in()
395 static struct ptunit_result addr_filter_stop_out(void) in addr_filter_stop_out()
397 struct pt_config config; in addr_filter_stop_out() local
400 pt_config_init(&config); in addr_filter_stop_out()
401 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_stop; in addr_filter_stop_out()
402 config.addr_filter.addr1_a = 0xa000; in addr_filter_stop_out()
403 config.addr_filter.addr1_b = 0xb000; in addr_filter_stop_out()
404 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_stop; in addr_filter_stop_out()
405 config.addr_filter.addr3_a = 0x10a000; in addr_filter_stop_out()
406 config.addr_filter.addr3_b = 0x10b000; in addr_filter_stop_out()
408 status = pt_filter_addr_check(&config.addr_filter, 0xfff); in addr_filter_stop_out()
411 status = pt_filter_addr_check(&config.addr_filter, 0xb001); in addr_filter_stop_out()
414 status = pt_filter_addr_check(&config.addr_filter, 0x100fff); in addr_filter_stop_out()
417 status = pt_filter_addr_check(&config.addr_filter, 0x10b001); in addr_filter_stop_out()
423 static struct ptunit_result addr_filter_ip_out_stop_in(void) in addr_filter_ip_out_stop_in()
425 struct pt_config config; in addr_filter_ip_out_stop_in() local
428 pt_config_init(&config); in addr_filter_ip_out_stop_in()
429 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_filter; in addr_filter_ip_out_stop_in()
430 config.addr_filter.addr1_a = 0x100f00; in addr_filter_ip_out_stop_in()
431 config.addr_filter.addr1_b = 0x10af00; in addr_filter_ip_out_stop_in()
432 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_stop; in addr_filter_ip_out_stop_in()
433 config.addr_filter.addr3_a = 0x10a000; in addr_filter_ip_out_stop_in()
434 config.addr_filter.addr3_b = 0x10b000; in addr_filter_ip_out_stop_in()
436 status = pt_filter_addr_check(&config.addr_filter, 0x10af01); in addr_filter_ip_out_stop_in()
439 status = pt_filter_addr_check(&config.addr_filter, 0x10b000); in addr_filter_ip_out_stop_in()
445 static struct ptunit_result addr_filter_ip_in_stop_in(void) in addr_filter_ip_in_stop_in()
447 struct pt_config config; in addr_filter_ip_in_stop_in() local
450 pt_config_init(&config); in addr_filter_ip_in_stop_in()
451 config.addr_filter.config.ctl.addr1_cfg = pt_addr_cfg_filter; in addr_filter_ip_in_stop_in()
452 config.addr_filter.addr1_a = 0x100f00; in addr_filter_ip_in_stop_in()
453 config.addr_filter.addr1_b = 0x10af00; in addr_filter_ip_in_stop_in()
454 config.addr_filter.config.ctl.addr3_cfg = pt_addr_cfg_stop; in addr_filter_ip_in_stop_in()
455 config.addr_filter.addr3_a = 0x10a000; in addr_filter_ip_in_stop_in()
456 config.addr_filter.addr3_b = 0x10b000; in addr_filter_ip_in_stop_in()
458 status = pt_filter_addr_check(&config.addr_filter, 0x10af00); in addr_filter_ip_in_stop_in()
461 status = pt_filter_addr_check(&config.addr_filter, 0x10a0ff); in addr_filter_ip_in_stop_in()
467 static struct ptunit_result cpu_errata_null(void) in cpu_errata_null()
474 ptu_int_eq(errcode, -pte_invalid); in cpu_errata_null()
477 ptu_int_eq(errcode, -pte_invalid); in cpu_errata_null()
482 static struct ptunit_result cpu_errata_unknown(void) in cpu_errata_unknown()
491 ptu_int_eq(errcode, -pte_bad_cpu); in cpu_errata_unknown()
496 static struct ptunit_result cpu_errata_bad_vendor(void) in cpu_errata_bad_vendor()
506 ptu_int_eq(errcode, -pte_bad_cpu); in cpu_errata_bad_vendor()
511 static struct ptunit_result cpu_errata_bad_cpuid(void) in cpu_errata_bad_cpuid()
523 ptu_int_eq(errcode, -pte_bad_cpu); in cpu_errata_bad_cpuid()