cd_setdevmap - set mappings of major/minor numbers of a
file on a Rock Ridge format CD-ROM
#include <sys/cdrom.h>
int cd_setdevmap(
char *path,
int cmd,
int *new_major,
int *new_minor );
CD-ROM library (libcdrom.so, libcdrom.a)
The cd_setdevmap()function sets or unsets (based on cmd)
the major and minor numbers of one device file on a
mounted Rock Ridge format CD-ROM. The argument path points
to a file or directory within the CD-ROM file hierarchy.
If cmd is CD_SETDMAP, this function maps the new_major
major number and the new_minor minor number to the device
file pointed to by path. The new_major argument specifies
the new major number for the device file. The new_minor
argument specifies the new minor number for the device
file. Any device file mapping for the device file path set
with a previous invocation of cd_setdevmap() is overridden
by this invocation of cd_setdevmap().
If cmd is CD_UNSETDMAP, this function unmaps the mapped
major and minor numbers of the device file pointed to by
path. The value of the recorded major number on the CD-ROM
shall be returned in new_major. The value of the recorded
minor number on the CD-ROM shall be returned in new_minor.
The use of cd_setdevmap() is restricted to the superuser.
The maximum number of mappings is defined in
<sys/cdrom.h>. Mappings should be established before
affected device files are used. If this function is
applied for device files that have already been opened,
the effect of this function on these files is undefined.
The device file mappings for a mounted CD-ROM are eliminated
when the CD-ROM is unmounted.
For CD_SETDMAP, cd_setdevmap() will return one if the
device file is successfully mapped; a return value of zero
means no more mappings allowed.
For CD_UNSETDMAP, cd_setdevmap() will return one if the
device file is successfully unmapped; a return value of
zero means mapping not found.
In case of error, -1 is returned and errno is set to indicate
the error.
Search permission is denied for a component of the path
prefix or read permission on the device file pointed to by
path is denied. The length of the path string exceeds
{PATH_MAX}, or a pathname component is longer than
{NAME_MAX} while {_POSIX_NO_TRUNC} is in effect. A component
of path does not exist or the path argument points to
an empty string. A component of the path prefix is not a
directory. The address of path, new_major, or new_minor
is invalid. The value of cmd is invalid. The argument
path points to a file or directory not within a CD-ROM
file hierarchy. The file pointed to by path is not a
device file. User does not have appropriate privileges to
set or unset device file major/minor values. The CD-ROM
is not in the drive or a read error occurred. A signal
was caught during the cd_setdevmap() function. {OPEN_MAX}
file descriptors are currently open in the calling process.
[Tru64 UNIX] Either the OPEN_MAX value or the perprocess
soft descriptor limit is checked. The system
file table is full.
Commands: cddevsuppl(8)
Functions: cd_getdevmap(3)
Files: <sys/cdrom.h>
cd_setdevmap(3)
[ Back ] |