29#ifndef __XEN_ERROR_H__
30#define __XEN_ERROR_H__
32#include <contrib/xen/errno.h>
35static int xen_errors[] =
38 [XEN_ENOENT] = ENOENT,
43 [XEN_ENOEXEC] = ENOEXEC,
45 [XEN_ECHILD] = ECHILD,
46 [XEN_EAGAIN] = EAGAIN,
47 [XEN_ENOMEM] = ENOMEM,
48 [XEN_EACCES] = EACCES,
49 [XEN_EFAULT] = EFAULT,
51 [XEN_EEXIST] = EEXIST,
53 [XEN_ENODEV] = ENODEV,
54 [XEN_EINVAL] = EINVAL,
55 [XEN_ENFILE] = ENFILE,
56 [XEN_EMFILE] = EMFILE,
57 [XEN_ENOSPC] = ENOSPC,
58 [XEN_EMLINK] = EMLINK,
60 [XEN_ERANGE] = ERANGE,
61 [XEN_EDEADLK] = EDEADLK,
62 [XEN_ENAMETOOLONG] = ENAMETOOLONG,
63 [XEN_ENOLCK] = ENOLCK,
64 [XEN_ENOSYS] = ENOSYS,
65 [XEN_ENODATA] = ENOENT,
66 [XEN_ETIME] = ETIMEDOUT,
67 [XEN_EBADMSG] = EBADMSG,
68 [XEN_EOVERFLOW] = EOVERFLOW,
69 [XEN_EILSEQ] = EILSEQ,
70 [XEN_ENOTSOCK] = ENOTSOCK,
71 [XEN_EOPNOTSUPP] = EOPNOTSUPP,
72 [XEN_EADDRINUSE] = EADDRINUSE,
73 [XEN_EADDRNOTAVAIL] = EADDRNOTAVAIL,
74 [XEN_ENOBUFS] = ENOBUFS,
75 [XEN_EISCONN] = EISCONN,
76 [XEN_ENOTCONN] = ENOTCONN,
77 [XEN_ETIMEDOUT] = ETIMEDOUT,
81xen_translate_error(
int error)
85 KASSERT((error < 0), (
"Value is not a valid Xen error code"));
87 if (-error >= nitems(xen_errors)) {
95 bsd_error = xen_errors[-error];
96 KASSERT((bsd_error != 0), (
"Unknown Xen error code"));