162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ERR_H__
362306a36Sopenharmony_ci#define __ERR_H__
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#define MAX_ERRNO 4095
662306a36Sopenharmony_ci#define IS_ERR_VALUE(x) (unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO
762306a36Sopenharmony_ci
862306a36Sopenharmony_cistatic inline int IS_ERR_OR_NULL(const void *ptr)
962306a36Sopenharmony_ci{
1062306a36Sopenharmony_ci	return !ptr || IS_ERR_VALUE((unsigned long)ptr);
1162306a36Sopenharmony_ci}
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic inline long PTR_ERR(const void *ptr)
1462306a36Sopenharmony_ci{
1562306a36Sopenharmony_ci	return (long) ptr;
1662306a36Sopenharmony_ci}
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#endif /* __ERR_H__ */
19