The format of the name of each generated PER decode function is as follows:
asn1PD_[<prefix>]<prodName>
where <prodName>
is the name of the ASN.1 production for which the
function is being generated and <prefix>
is an optional prefix that
can be set via a configuration file setting. The configuration setting used to set
the prefix is the <typePrefix> element. This element specifies a prefix that will
be applied to all generated typedef names and function names for the
production.
The calling sequence for each decode function is as follows:
status = asn1PD_<name> (OSCTXT* pctxt, <name>* pvalue);
In this definition, <name> denotes the prefixed production name defined above.
The pctxt
argument is used to hold a context pointer to keep track of
decode parameters. This is a basic "handle" variable that is used to make the
function reentrant so it can be used in an asynchronous or threaded application. The
user is required to supply a pointer to a variable of this type declared somewhere
in his or her program.
The pvalue
argument is a pointer to a variable to hold the decoded
result. This variable is of the type generated from the ASN.1 production. The decode
function will automatically allocate dynamic memory for variable length fields
within the structure. This memory is tracked within the context structure and is
released when the context structure is freed.
The function result variable stat
returns the status of the decode
operation. Status code 0 (0) indicates the function was successful. A negative value
indicates decoding failed. Return status values are defined in the "asn1type.h"
include file. The reason text and a stack trace can be displayed using the
rtxErrPrint function described later in this document.