cd_setdevmap(3)cd_setdevmap(3)NAMEcd_setdevmap - set mappings of major/minor numbers of a file on a Rock
Ridge format CD-ROM
SYNOPSIS
#include <sys/cdrom.h>
int cd_setdevmap(
char *path,
int cmd,
int *new_major,
int *new_minor );
LIBRARY
CD-ROM library (libcdrom.so, libcdrom.a)
DESCRIPTION
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 pre‐
vious 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.
RESTRICTIONS
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.
RETURN VALUES
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.
ERRORS
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 compo‐
nent 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() func‐
tion. {OPEN_MAX} file descriptors are currently open in the calling
process.
[Tru64 UNIX] Either the OPEN_MAX value or the per-process soft
descriptor limit is checked. The system file table is full.
SEE ALSO
Commands: cddevsuppl(8)
Functions: cd_getdevmap(3)
Files: <sys/cdrom.h>
cd_setdevmap(3)