1a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin/*
2a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
3a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
4a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
5a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
6a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * Copyright (c) 2005-2016 Dmitry V. Levin <ldv@altlinux.org>
7a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * All rights reserved.
8a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin *
9a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * Redistribution and use in source and binary forms, with or without
10a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * modification, are permitted provided that the following conditions
11a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * are met:
12a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * 1. Redistributions of source code must retain the above copyright
13a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin *    notice, this list of conditions and the following disclaimer.
14a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * 2. Redistributions in binary form must reproduce the above copyright
15a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin *    notice, this list of conditions and the following disclaimer in the
16a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin *    documentation and/or other materials provided with the distribution.
17a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * 3. The name of the author may not be used to endorse or promote products
18a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin *    derived from this software without specific prior written permission.
19a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin *
20a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin */
31a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin
32a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin#include "tests.h"
33a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin#include "xlat.h"
34a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin#include <stdio.h>
35a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin
36a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levinint
37a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levinprintxval(const struct xlat *xlat, unsigned long long val,
38a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin	  const char *const dflt)
39a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin{
40a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin	for (; xlat->str; xlat++) {
41a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin		if (xlat->val == val) {
42a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin			fputs(xlat->str, stdout);
43a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin			return 1;
44a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin		}
45a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin	}
46a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin
47a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin	printf("%#llx", val);
48a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin	if (dflt)
49a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin		printf(" /* %s */", dflt);
50a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin	return 0;
51a182d8c6c1c98536979110f1bd17d3c5e41f910cDmitry V. Levin}
52