blob: 4917728e582858995f4a2ae1e86cf7b91202c97a [file] [log] [blame]
Heiko Carstensc30f6822015-02-02 07:08:44 +01001/*
2 * Copyright IBM Corp. 2015
3 */
4
5#ifndef S390_GEN_FACILITIES_C
6#error "This file can only be included by gen_facilities.c"
7#endif
8
9#include <linux/kconfig.h>
10
11struct facility_def {
12 char *name;
13 int *bits;
14};
15
16static struct facility_def facility_defs[] = {
17 {
18 /*
19 * FACILITIES_ALS contains the list of facilities that are
20 * required to run a kernel that is compiled e.g. with
21 * -march=<machine>.
22 */
23 .name = "FACILITIES_ALS",
24 .bits = (int[]){
25#ifdef CONFIG_HAVE_MARCH_Z900_FEATURES
26 0, /* N3 instructions */
27 1, /* z/Arch mode installed */
28#endif
29#ifdef CONFIG_HAVE_MARCH_Z990_FEATURES
30 18, /* long displacement facility */
31#endif
32#ifdef CONFIG_HAVE_MARCH_Z9_109_FEATURES
33 7, /* stfle */
Heiko Carstensc30f6822015-02-02 07:08:44 +010034 17, /* message security assist */
Heiko Carstensc30f6822015-02-02 07:08:44 +010035 21, /* extended-immediate facility */
Heiko Carstensc30f6822015-02-02 07:08:44 +010036 25, /* store clock fast */
Heiko Carstensc30f6822015-02-02 07:08:44 +010037#endif
38#ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
Heiko Carstensc30f6822015-02-02 07:08:44 +010039 27, /* mvcos */
40 32, /* compare and swap and store */
41 33, /* compare and swap and store 2 */
42 34, /* general extension facility */
43 35, /* execute extensions */
Heiko Carstensc30f6822015-02-02 07:08:44 +010044#endif
45#ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
Heiko Carstensc30f6822015-02-02 07:08:44 +010046 45, /* fast-BCR, etc. */
47#endif
48#ifdef CONFIG_HAVE_MARCH_ZEC12_FEATURES
Heiko Carstensc30f6822015-02-02 07:08:44 +010049 49, /* misc-instruction-extensions */
50 52, /* interlocked facility 2 */
51#endif
Heiko Carstensf3d05f92015-11-25 12:54:46 +010052#ifdef CONFIG_HAVE_MARCH_Z13_FEATURES
53 53, /* load-and-zero-rightmost-byte, etc. */
54#endif
Heiko Carstensc30f6822015-02-02 07:08:44 +010055 -1 /* END */
56 }
57 },
58};