X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust%2Ferror.h;fp=liblttng-ust%2Ferror.h;h=b0afcdba8253c629d1f34f5626b6c3dcb9155646;hb=8f3f8c99b969e097e9bdb176a096dd4acf31c4cd;hp=0000000000000000000000000000000000000000;hpb=4f2a0b893bb8dc33ec43a7bc012524c55d84a286;p=lttng-ust.git diff --git a/liblttng-ust/error.h b/liblttng-ust/error.h new file mode 100644 index 00000000..b0afcdba --- /dev/null +++ b/liblttng-ust/error.h @@ -0,0 +1,54 @@ +#ifndef _LTTNG_ERROR_H +#define _LTTNG_ERROR_H + +/* + * Copyright (c) 2011 - Mathieu Desnoyers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; only + * version 2.1 of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#define MAX_ERRNO 4095 + +static inline +int IS_ERR_VALUE(long value) +{ + if (caa_unlikely((unsigned long) value >= (unsigned long) -MAX_ERRNO)) + return 1; + else + return 0; +} + +static inline +void *ERR_PTR(long error) +{ + return (void *) error; +} + +static inline +long PTR_ERR(const void *ptr) +{ + return (long) ptr; +} + +static inline +int IS_ERR(const void *ptr) +{ + return IS_ERR_VALUE((long) ptr); +} + +#endif /* _LTTNG_ERROR_H */