4.4.1. Syntax

The syntax of behavior prototypes is very similar to the syntax of behaviors in components. The main difference is that behavior prototypes:

attributes behavior name[(formal_args)][:return_type];

attributes behavior name[(formal_args)][:return_type]
// default implementation. Can be empty



is a combination of optional, master, and slave. There are restrictions. See Attributes.


can be any C identifier and is the name of the protocol behavior. Each name can only occur once in the protocol definition. Overloaded behavior prototypes are not allowed.


are the formal arguments of the behavior. The syntax is the same as for C++ function declarations. If user-defined types are used, they must be defined in a header file that is included in the includes-section.

The native C/C++ types and the native LISA+ types can be used without an include statement. Behaviors can optionally mark one argument as an address parameter by placing the ADDRESS keyword before the type of the formal argument.

If the argument list is empty, the opening and closing parentheses can be omitted. The names of the formal arguments can also be omitted. Variable number of arguments and default values are not allowed.


is the type of the return value of that behavior. If the return type is void, it can be omitted. The colon : must also be omitted in this case.

Copyright © 2007-2010 ARM Limited. All rights reserved.ARM DUI 0372I