Messages in this thread | | | Date | Tue, 06 Mar 2007 16:39:16 -0800 | From | "H. Peter Anvin" <> | Subject | Re: return negative number for unsigned long function in kernel |
| |
Chen, Dongliang wrote: > There are lots of functions in the Linux kernel that are declared as > unsigned long, but the return value is negative integer while error > occurred. An example of these functions is do_mmap_pgoff in mm/mmap.c, > which is defined as: > > unsigned long do_mmap_pgoff(....) > > In this function, it returns -ENODEV, -EPERM, -ENOMEM, -EINVAL, -EAGAIN, > -EACCESS depends on the error type. My question is how should the caller > perform error check based on the return value? >
If you want to test for errorness, you could use the macro IS_ERR_VALUE(). Unfortunately the macro isn't all that safe, in that it will give you the wrong answer if it's ever used on something that *isn't* an unsigned long.
-hpa
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |