cd_getdevmap(3X) cd_getdevmap(3X)
NAME
cd_getdevmap - get the major and minor numbers assigned to a
CD-ROM device
SYNOPSIS
cc [flag . . . ] file . . . -lcdfs -lgen [library] . . .
#include <sys/cdrom.h>
int cd_getdevmap(const char *path, int pathlen, int index,
int *new_major, int *new_minor);
DESCRIPTION
cd_getdevmap gets the major and minor numbers currently
assigned to a device file on the mounted CD-ROM. (See the
cd_setdevmap(3X) command to see how to change the major/minor
number assignments.)
path Points to a device file within the CD-ROM file
hierarchy.
pathlen Specifies the maximum length of path.
index When the major and minor number of a device file
are set (reassigned) using the cd_setdevmap
function, the new major and minor number values
are recorded in a table. Each line in the table
has a number associated with it. The first entry
in the table is referred to as index number one,
the second entry is index number two, and so on.
index specifies which entry to look up in the
table. If a major/minor number assignment of a
device file is unset (using the cd_setdevmap
function), the entry for the specified device file
is deleted from the table.
index is specified as follows:
If index is zero, the major and minor number
of the device file pointed to by path is
returned. The value of pathlen is not used.
If index is non-zero, index specifies which
entry in the table to return. The major and
minor number, and the pathname of the device
file are returned.
Copyright 1994 Novell, Inc. Page 1
cd_getdevmap(3X) cd_getdevmap(3X)
new_major Identifies the memory location where the major
number is stored.
new_minor Identifies the memory location where the minor
number is stored.
Return Values
If the major and minor number of the specified device file is
successfully returned, cd_getdevmap returns the length of
path.
If the length of the pathname for the device file is longer
than pathlen, the pathname returned in path will be truncated
to pathlen length and will not be NULL terminated. Also, the
return value will be larger than pathlen.
If no major and minor number assignment for the specified
device file is found, zero is returned.
In case of error, -1 is returned and errno is set to indicate
the error.
Errors
EACCES Search permission is denied for a component of the
path prefix.
EACCES Read permission on the device file pointed to by
path is denied.
EFAULT The address of path, new_major, or new_minor is
invalid.
EINTR A signal was caught during the cd_getdevmap
function.
EINVAL The value of index or pathlen is invalid.
EINVAL The path argument points to a device file that is
not within the CD-ROM file hierarchy.
EINVAL The file pointed to by path is not a device file.
EMFILE Too many file descriptors are currently open in the
calling process.
Copyright 1994 Novell, Inc. Page 2
cd_getdevmap(3X) cd_getdevmap(3X)
ENAMETOOLONG
The length of the path string exceeds MAXPATHLEN.
ENAMETOOLONG
A pathname component is longer than MAXNAMELEN while
_POSIX_NO_TRUNC is in effect.
ENFILE The system file table is full.
ENOENT A component of path does not exist.
ENOENT The path argument points to an empty string.
ENOTDIR A component of the path prefix is not a directory.
ENXIO The CD-ROM is not in the drive.
ENXIO A read error occurred.
REFERENCES
cddevsuppl(1M), cdsuf(1M), cd_setdevmap(3X), cd_suf(3X).
Rock Ridge Interchange Protocol from the Rock Ridge Technical
Working Group
NOTICES
The index numbers from 1 to n (where n is the number of the
last device file reassignment) are always guaranteed to have
an associated device file. So, to write an application that
successively deletes all device file major/minor number re-
assignments one at a time, call cd_getdevmap with index equal
to 1, then call cd_setdevmap with CD_UNSETDMAP, in a loop,
until cd_getdevmap returns zero.
Copyright 1994 Novell, Inc. Page 3