Print this page
6282 ONBLD man pages not pbchk clean
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Josef Sipek <jeffpc@josefsipek.net>
*** 20,40 ****
.\"
.\" Copyright 2007 Sun Microsystems, Inc. All rights reserved.
.\" Use is subject to license terms.
.\"
'\" te
! .TH ndrgen 1ONBLD "22 October 2007" "SunOS 5.11" "User Commands"
.SH NAME
ndrgen \- NDL RPC protocol compiler
.SH SYNOPSIS
.LP
.nf
\fBndrgen\fR [ -Y \fIcpp-path\fR ] \fIfile\fR [ \fIfile\fR ] \&.\|.\|.
.fi
.SH DESCRIPTION
- .sp
.LP
The \fBndrgen\fR utility is a tool that generates C code to implement a DCERPC/MSRPC Network Data Representation (NDR) protocol. The input to \fBndrgen\fR is a language similar to C known as Network Data Language (NDL).
.sp
.LP
The \fBndrgen\fR utility takes an input protocol definition file and generates an output C source file that contains the marshalling routines to implement the RPC protocol. If the input file is named \fBproto.ndl\fR, \fBndrgen\fR generates NDR routines in \fBproto_ndr.c\fR. Applications must define the service definition and server-side stub table for use with the RPC protocol.
--- 20,39 ----
.\"
.\" Copyright 2007 Sun Microsystems, Inc. All rights reserved.
.\" Use is subject to license terms.
.\"
'\" te
! .TH NDRGEN 1ONBLD "Oct 22, 2007"
.SH NAME
ndrgen \- NDL RPC protocol compiler
.SH SYNOPSIS
.LP
.nf
\fBndrgen\fR [ -Y \fIcpp-path\fR ] \fIfile\fR [ \fIfile\fR ] \&.\|.\|.
.fi
.SH DESCRIPTION
.LP
The \fBndrgen\fR utility is a tool that generates C code to implement a DCERPC/MSRPC Network Data Representation (NDR) protocol. The input to \fBndrgen\fR is a language similar to C known as Network Data Language (NDL).
.sp
.LP
The \fBndrgen\fR utility takes an input protocol definition file and generates an output C source file that contains the marshalling routines to implement the RPC protocol. If the input file is named \fBproto.ndl\fR, \fBndrgen\fR generates NDR routines in \fBproto_ndr.c\fR. Applications must define the service definition and server-side stub table for use with the RPC protocol.
*** 130,140 ****
.sp
.LP
The following terminology is used in the subsequent discussion of NDR.
.sp
.ne 2
- .mk
.na
\fBSize\fR
.ad
.sp .6
.RS 4n
--- 129,138 ----
*** 141,151 ****
The size of an array in elements, such as the amount to \fBmalloc()\fR.
.RE
.sp
.ne 2
- .mk
.na
\fBLength\fR
.ad
.sp .6
.RS 4n
--- 139,148 ----
*** 152,162 ****
The number of significant elements of an array.
.RE
.sp
.ne 2
- .mk
.na
\fBKnown\fR
.ad
.sp .6
.RS 4n
--- 149,158 ----
*** 163,173 ****
Size or Length is known at build time.
.RE
.sp
.ne 2
- .mk
.na
\fBDetermined\fR
.ad
.sp .6
.RS 4n
--- 159,168 ----
*** 174,184 ****
Size or Length is determined at run time.
.RE
.sp
.ne 2
- .mk
.na
\fBFixed\fR
.ad
.sp .6
.RS 4n
--- 169,178 ----
*** 195,218 ****
.sp
.LP
The following DCE RPC terminology is used in the subsequent discussion.
.sp
.ne 2
- .mk
.na
\fBConformant\fR
.ad
.sp .6
.RS 4n
The Size is Determined. The Length is the same as Size.
.sp
.RE
-
.sp
.ne 2
! .mk
.na
\fBVarying\fR
.ad
.sp .6
.RS 4n
--- 189,210 ----
.sp
.LP
The following DCE RPC terminology is used in the subsequent discussion.
.sp
.ne 2
.na
\fBConformant\fR
.ad
.sp .6
.RS 4n
The Size is Determined. The Length is the same as Size.
.sp
.RE
.sp
.ne 2
!
.na
\fBVarying\fR
.ad
.sp .6
.RS 4n
*** 227,237 ****
.RE
.sp
.ne 2
- .mk
.na
\fBVarying and Conformant\fR
.ad
.sp .6
.RS 4n
--- 219,228 ----
*** 245,255 ****
.in -2
.RE
.SS "Strings"
- .sp
.LP
DCE RPC strings are represented as varying or varying and conformant one-dimensional arrays. Characters can be single-byte or multi-byte as long as all characters conform to a fixed element size. For instance, UCS-2 is valid, but UTF-8 is not a valid DCE RPC string format. The string is terminated by a null character of the appropriate element size.
.sp
.LP
MSRPC strings are always varying and conformant format and not null terminated. This format uses the \fIsize_is\fR, \fIfirst_is\fR, and \fIlength_is\fR attributes:
--- 236,245 ----
*** 303,313 ****
.sp
.LP
Here, \fIlength\fR is the array length in bytes excluding any terminating null bytes and \fImaxlen\fR is the array length in bytes including the terminating null bytes.
.SS "NDL Syntax"
- .sp
.LP
The \fBndrgen\fR input must be a valid C header file. Thus, NDL is defined by using macros to map to DCE RPC IDL. The following shows the mappings:
.sp
.in +2
.nf
--- 293,302 ----
*** 348,373 ****
LPDWORD unsigned long *
.fi
.in -2
.SH OPTIONS
- .sp
.LP
The \fBsmbutil\fR command supports the following global option:
.sp
.ne 2
- .mk
.na
\fB\fB-Y\fR\fR
.ad
.RS 13n
- .rt
Specifies the path to the \fBcpp\fR program.
.RE
.SH EXAMPLES
- .sp
.LP
The following is an example NDL header file:
.sp
.in +2
.nf
--- 337,358 ----
*** 459,513 ****
#endif /* _SVC_NDL_ */
.fi
.in -2
.SH EXIT STATUS
- .sp
.LP
The following exit values are returned:
.sp
.ne 2
- .mk
.na
\fB0\fR
.ad
.RS 13n
- .rt
Successful operation.
.RE
.sp
.ne 2
- .mk
.na
\fB>0\fR
.ad
.RS 13n
- .rt
An error occurred.
.RE
.SH ATTRIBUTES
- .sp
- .LP
See the \fBattributes\fR(5) man page for descriptions of the following attributes:
.sp
.sp
.TS
! tab() box;
! cw(2.75i) |cw(2.75i)
! lw(2.75i) |lw(2.75i)
! .
! ATTRIBUTE TYPEATTRIBUTE VALUE
_
! AvailabilitySUNWbtool
.TE
.SH SEE ALSO
- .sp
.LP
\fBcpp\fR(1), \fBrpcgen\fR(1), \fBcc\fR(1B), \fBattributes\fR(5)
.SH BUGS
- .sp
.LP
Some \fBcpp\fR(1) macros used by \fBndrgen\fR are not understood by \fB/usr/bin/cpp\fR or \fB/usr/sfw/bin/cpp\fR. Simple NDL files generally do not pose a problem. If problems occur, for example, when using unions, use \fB/usr/libexec/cpp\fR or \fBcw\fR.
--- 444,488 ----
#endif /* _SVC_NDL_ */
.fi
.in -2
.SH EXIT STATUS
.LP
The following exit values are returned:
.sp
.ne 2
.na
\fB0\fR
.ad
.RS 13n
Successful operation.
.RE
.sp
.ne 2
.na
\fB>0\fR
.ad
.RS 13n
An error occurred.
.RE
.SH ATTRIBUTES
See the \fBattributes\fR(5) man page for descriptions of the following attributes:
.sp
.sp
.TS
! box;
! cw | cw
! lw | lw .
! ATTRIBUTE TYPE ATTRIBUTE VALUE
_
! Availability SUNWbtool
.TE
.SH SEE ALSO
.LP
\fBcpp\fR(1), \fBrpcgen\fR(1), \fBcc\fR(1B), \fBattributes\fR(5)
.SH BUGS
.LP
Some \fBcpp\fR(1) macros used by \fBndrgen\fR are not understood by \fB/usr/bin/cpp\fR or \fB/usr/sfw/bin/cpp\fR. Simple NDL files generally do not pose a problem. If problems occur, for example, when using unions, use \fB/usr/libexec/cpp\fR or \fBcw\fR.