1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2019 Joyent, Inc. 14 */ 15 16 #ifndef _IMC_TEST_H 17 #define _IMC_TEST_H 18 19 #include <stdint.h> 20 #include <inttypes.h> 21 22 #include "imc.h" 23 24 /* 25 * Standard interfaces for the IMC test files. 26 */ 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 typedef struct imc_test_case { 33 const char *itc_desc; 34 uint64_t itc_pa; 35 const imc_t *itc_imc; 36 boolean_t itc_pass; 37 imc_decode_failure_t itc_fail; 38 /* 39 * These will all be checked on the success case unless set to the 40 * respective UINTXX_MAX value. 41 */ 42 uint32_t itc_nodeid; 43 uint32_t itc_tadid; 44 uint32_t itc_channelid; 45 uint64_t itc_chanaddr; 46 uint32_t itc_dimmid; 47 uint32_t itc_rankid; 48 uint64_t itc_rankaddr; 49 } imc_test_case_t; 50 51 /* 52 * Arrays of tests cases that exist. They are terminated with a NULL itc_desc 53 * member. 54 */ 55 extern const imc_test_case_t imc_test_basics[]; 56 extern const imc_test_case_t imc_test_badaddr[]; 57 extern const imc_test_case_t imc_test_fail[]; 58 extern const imc_test_case_t imc_test_rir[]; 59 extern const imc_test_case_t imc_test_sad[]; 60 extern const imc_test_case_t imc_test_skx_loop[]; 61 extern const imc_test_case_t imc_test_tad[]; 62 63 64 #ifdef __cplusplus 65 } 66 #endif 67 68 #endif /* _IMC_TEST_H */ 69