2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
4 * Copyright (c) 2000 Michael Smith
5 * Copyright (c) 2000 BSDi
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * Status codes for block read/write commands, etc.
36 * XXX many of these would not normally be returned, as they are
37 * relevant only to FSA operations.
39 static const struct aac_code_lookup aac_command_status_table[] = {
41 {"operation not permitted", ST_PERM},
42 {"not found", ST_NOENT},
44 {"device not configured", ST_NXIO},
45 {"too big", ST_E2BIG},
46 {"permission denied", ST_ACCES},
47 {"file exists", ST_EXIST},
48 {"cross-device link", ST_XDEV},
49 {"operation not supported by device", ST_NODEV},
50 {"not a directory", ST_NOTDIR},
51 {"is a directory", ST_ISDIR},
52 {"invalid argument", ST_INVAL},
53 {"file too large", ST_FBIG},
54 {"no space on device", ST_NOSPC},
55 {"readonly filesystem", ST_ROFS},
56 {"too many links", ST_MLINK},
57 {"operation would block", ST_WOULDBLOCK},
58 {"file name too long", ST_NAMETOOLONG},
59 {"directory not empty", ST_NOTEMPTY},
60 {"quota exceeded", ST_DQUOT},
61 {"stale file handle", ST_STALE},
62 {"too many levels of remote in path", ST_REMOTE},
63 {"device busy (spinning up)", ST_NOT_READY},
64 {"bad file handle", ST_BADHANDLE},
65 {"not sync", ST_NOT_SYNC},
66 {"bad cookie", ST_BAD_COOKIE},
67 {"operation not supported", ST_NOTSUPP},
68 {"too small", ST_TOOSMALL},
69 {"server fault", ST_SERVERFAULT},
70 {"bad type", ST_BADTYPE},
71 {"jukebox", ST_JUKEBOX},
72 {"not mounted", ST_NOTMOUNTED},
73 {"in maintenance mode", ST_MAINTMODE},
74 {"stale ACL", ST_STALEACL},
75 {"bus reset - command aborted", ST_BUS_RESET},
77 {"unknown command status", 0}
80 #define AAC_COMMAND_STATUS(x) aac_describe_code(aac_command_status_table, x)
83 static const struct aac_code_lookup aac_cpu_variant[] = {
84 {"i960JX", CPUI960_JX},
85 {"i960CX", CPUI960_CX},
86 {"i960HX", CPUI960_HX},
87 {"i960RX", CPUI960_RX},
88 {"i960 80303", CPUI960_80303},
89 {"StrongARM SA110", CPUARM_SA110},
90 {"PPC603e", CPUPPC_603e},
91 {"XScale 80321", CPU_XSCALE_80321},
92 {"MIPS 4KC", CPU_MIPS_4KC},
93 {"MIPS 5KC", CPU_MIPS_5KC},
94 {"Unknown StrongARM", CPUARM_xxx},
95 {"Unknown PowerPC", CPUPPC_xxx},
97 {"Unknown processor", 0}
100 static const struct aac_code_lookup aac_battery_platform[] = {
101 {"required battery present", PLATFORM_BAT_REQ_PRESENT},
102 {"REQUIRED BATTERY NOT PRESENT", PLATFORM_BAT_REQ_NOTPRESENT},
103 {"optional battery present", PLATFORM_BAT_OPT_PRESENT},
104 {"optional battery not installed", PLATFORM_BAT_OPT_NOTPRESENT},
105 {"no battery support", PLATFORM_BAT_NOT_SUPPORTED},
107 {"unknown battery platform", 0}
110 static const struct aac_code_lookup aac_container_types[] = {
111 {"Volume", CT_VOLUME},
112 {"RAID 1 (Mirror)", CT_MIRROR},
113 {"RAID 0 (Stripe)", CT_STRIPE},
114 {"RAID 5", CT_RAID5},
118 {"Passthrough", CT_PASSTHRU},
119 {"RAID 4", CT_RAID4},
120 {"RAID 0/1", CT_RAID10},
121 {"RAID 0/0", CT_RAID00},
122 {"Volume of Mirrors", CT_VOLUME_OF_MIRRORS},
123 {"Pseudo RAID 3", CT_PSEUDO_RAID3},
124 {"RAID 0/5", CT_RAID50},
125 {"RAID 5D", CT_RAID5D},
126 {"RAID 0/5D", CT_RAID5D0},
127 {"RAID 1E", CT_RAID1E},
128 {"RAID 6", CT_RAID6},
129 {"RAID 0/6", CT_RAID60},