Lines Matching full:pair
85 static void hwprobe_arch_id(struct riscv_hwprobe *pair, in hwprobe_arch_id() argument
95 switch (pair->key) { in hwprobe_arch_id()
122 pair->value = id; in hwprobe_arch_id()
125 static void hwprobe_isa_ext0(struct riscv_hwprobe *pair, in hwprobe_isa_ext0() argument
131 pair->value = 0; in hwprobe_isa_ext0()
133 pair->value |= RISCV_HWPROBE_IMA_FD; in hwprobe_isa_ext0()
136 pair->value |= RISCV_HWPROBE_IMA_C; in hwprobe_isa_ext0()
139 pair->value |= RISCV_HWPROBE_IMA_V; in hwprobe_isa_ext0()
149 pair->value |= RISCV_HWPROBE_EXT_ZBA; in hwprobe_isa_ext0()
154 pair->value |= RISCV_HWPROBE_EXT_ZBB; in hwprobe_isa_ext0()
159 pair->value |= RISCV_HWPROBE_EXT_ZBS; in hwprobe_isa_ext0()
165 pair->value &= ~missing; in hwprobe_isa_ext0()
191 static void hwprobe_one_pair(struct riscv_hwprobe *pair, in hwprobe_one_pair() argument
194 switch (pair->key) { in hwprobe_one_pair()
198 hwprobe_arch_id(pair, cpus); in hwprobe_one_pair()
207 pair->value = RISCV_HWPROBE_BASE_BEHAVIOR_IMA; in hwprobe_one_pair()
211 hwprobe_isa_ext0(pair, cpus); in hwprobe_one_pair()
215 pair->value = hwprobe_misaligned(cpus); in hwprobe_one_pair()
224 pair->key = -1; in hwprobe_one_pair()
225 pair->value = 0; in hwprobe_one_pair()
269 struct riscv_hwprobe pair; in do_riscv_hwprobe() local
271 if (get_user(pair.key, &pairs->key)) in do_riscv_hwprobe()
274 pair.value = 0; in do_riscv_hwprobe()
275 hwprobe_one_pair(&pair, &cpus); in do_riscv_hwprobe()
276 ret = put_user(pair.key, &pairs->key); in do_riscv_hwprobe()
278 ret = put_user(pair.value, &pairs->value); in do_riscv_hwprobe()
294 struct riscv_hwprobe pair; in init_hwprobe_vdso_data() local
302 pair.key = key; in init_hwprobe_vdso_data()
303 hwprobe_one_pair(&pair, cpu_online_mask); in init_hwprobe_vdso_data()
305 WARN_ON_ONCE(pair.key < 0); in init_hwprobe_vdso_data()
307 avd->all_cpu_hwprobe_values[key] = pair.value; in init_hwprobe_vdso_data()
313 id_bitsmash |= pair.value; in init_hwprobe_vdso_data()