Generated Initialization Functions
Prev Chapter 20. Additional Generated Functions Next

Generated Initialization Functions

As of ASN1C version 6.0, initialization functions are automatically generated (in previous versions, it was necessary to use the -genInit option to force this action). If for some reason, a user does want initialization functions to be generated, the -noInit switch can be used to turn initialization function generation off.

The use of initialization functions are optional - a variable can be initialized by simply setting its contents to zero (for example, by using the C run-time memset function). The advantage of initialization function is that they provide smarter initialization which can lead to improved application performance. For example, it is not necessary to set a large byte array to zero prior to its receiving a populated value. The use of memset in this situation can result in degraded performance.

Generated initialization functions are written to the main <module>.c file. This file contains common constants, global variables, and functions that are generic to all type of encode/decode functions. If the -cfile command-line option is used, the functions are written to the specified .c or .cpp file along with all other generated functions. If -maxcfiles is specified, each generated initialization function is written to a separate .c file.

The format of the name of each generated initialization function is as follows:

 asn1Init_[<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 generated initialization function is as follows:

 asn1Init_<name> (<name>* pvalue)

In this definition, <name> denotes the prefixed production name defined above.

The pvalue argument is used to pass a pointer to a variable of the item to be initialized.


Prev Up Next
Chapter 20. Additional Generated Functions Home Generated Memory Free Functions

AltStyle によって変換されたページ (->オリジナル) /