sys_uselib  [fs/exec.c]


Loads a shared library to be used by the calling process.

The address where to load is found in the library itself. The library can have any recognized binary format.

Arguments

eax 86
ebx Pointer to a null-terminated string specifying the pathname of the shared library.

Return values

If the system call succeeds the return value is 0.
If the system call fails the return value is one of the following errno values:

-EACCES The library specified by ebx does not have read or execute permission, or the caller does not have search permission for one of the directories in the path prefix.
-EFAULT ebx points outside your accessible address space.
-EISDIR Pathname pointed by ebx refers to a directory.
-ELOOP Too many symbolic links were encountered in resolving pathname.
-EMFILE The process already has the maximum number of files open.
-ENAMETOOLONG Pathname pointed by ebx was too long.
-ENFILE The system limit on the total number of open files has been reached.
-ENODEV Pathname pointed by ebx refers to a device special file and no corresponding device exists. (This is a Linux kernel bug; in this situation ENXIO must be returned.)
-ENOENT A directory component in pathname does not exist or is a dangling symbolic link.
-ENOMEM Insufficient kernel memory was available.
-ENOTDIR A component used as a directory in pathname is not, in fact, a directory.
-ENXIO Or, the file is a device special file and no corresponding device exists.
-EOVERFLOW Pathname pointed by ebx refers to a regular file, too large to be opened; see O_LARGEFILE above.
-EPERM The caller was not privileged (CAP_FOWNER).
-ENOEXEC The file specified by ebx is not an executable of known type, e.g., does not have the correct magic numbers.

Remarks

n/a

Compatibility

n/a