/* * Original kernel header comment: * * Kernel pointers have redundant information, so we can use a * scheme where we can return either an error code or a normal * pointer with the same return value. * * This should be a per-architecture thing, to allow different * error and pointer decisions. * * Userspace note: * The same principle works for userspace, because 'error' pointers * fall down to the unused hole far from user space, as described * in Documentation/arch/x86/x86_64/mm.rst for x86_64 arch: * * 0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm hole caused by [48:63] sign extension * ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole * * It should be the same case for other architectures, because * this code is used in generic kernel code.
*/ #define MAX_ERRNO 4095
/** * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type * @ptr: The pointer to cast. * * Explicitly cast an error-valued pointer to another pointer type in such a * way as to make it clear that's what's going on.
*/ staticinlinevoid * __must_check ERR_CAST(__force constvoid *ptr)
{ /* cast away the const */ return (void *) ptr;
} #endif/* _LINUX_ERR_H */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.