'\"macro stdmacro
.if n .pH ddi_dki.makedevice @(#)makedevice	40.7 of 12/19/89
.\" Copyright 1989 AT&T
.de IX
.ie '\\n(.z'' .tm .Index: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9	\\n%
.el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
..
.nr X
.if \nX=0 .ds x} makedevice D3DK "" "DDI/DKI" "\&"
.if \nX=1 .ds x} makedevice D3DK "" "DDI/DKI"
.if \nX=2 .ds x} makedevice D3DK "" "\&"
.if \nX=3 .ds x} makedevice "" "" "\&"
.TH \*(x}
.IX "\f4makedevice\fP(D3DK)"
.SH NAME
\f4makedevice\f1 \- make device number from external major and minor
.SH SYNOPSIS
.nf
.na
\f4#include <sys/types.h>
#include <sys/makedev.h>
#include <sys/ddi.h>
.sp 0.5
dev_t makedevice(major_t \f2majnum, \f4minor_t \f2minnum\f4);\f1
.ad
.fi
.SH ARGUMENTS
.RS 0n 10
.IP "\f2majnum\f1" 10n
External major number.
.IP "\f2minnum\f1" 10n
External minor number.
.RE
.SH DESCRIPTION
The \f4makedevice\f1 function creates a device number from an external
major and external minor device number.  \f4makdevice\f1 should be used
to create device numbers so that additional overhead on the driver can
be avoided, and so the driver will port easily to releases that treat
device numbers differently.
.SH RETURN VALUE
The device number, containing both the major number and the minor
number, is returned.
No validation of the external major or minor numbers is performed.
.P
\f3NOTE:\f1
The numbers returned by \f4getmajor\f1(D3DK) 
and \f4getminor\f1(D3DK) are not valid arguments to \f4makedevice\f1
in systems where there is a distinction between internal and external
numbers.  The functions \f4getemajor\f1(D3D) and
\f4geteminor\f1(D3D) should be used on those systems.
.SH LEVEL
Base or Interrupt
.SH SEE ALSO
\f2BCI Driver Development Guide\f1, Chapter 3, ``Drivers in the
.SM UNIX
Operating System''
.P
.na
\f4getemajor\f1(D3D),
\f4geteminor\f1(D3D),
\f4getmajor\f1(D3DK),
\f4getminor\f1(D3DK)
.ad
.SH EXAMPLE
In the following example \f4makedevice\f1 creates
device numbers for every device supported by the example
\f4init\f1(D2D) routine.  The \f4init\f1 routine initializes each
device by calling the \f4xxx_dev_init()\f1 routine (line 8) with the
device number for each device.  The device numbers are created from the
preconfigured major device number, \f4XXMAJOR\f1, and the range of
valid minor numbers for the device.
.ne 4
.P
.nf
.ft 4
.ps 7
1  xxxinit()
2  {
3         dev_t dev;
4         minor_t min;
5
6         for (min = 0; min < XXMAXMIN; min++) {
7                 dev = makedevice(XXMAJOR, min);
8                 xxx_dev_init(dev);
9         }
10  }
.ps
.ft 1
.fi
