Studio:Scl conform: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 27: | Line 27: | ||
== Notes == | == Notes == | ||
* This pragma can only be used after the payload structure has been defined. | * This pragma can only be used after the payload structure has been defined. | ||
* For additional information on scl_conform, including constraints, refer to the section on scl_conform in the [ | * For additional information on scl_conform, including constraints, refer to the section on scl_conform in the [[Media:s2sSCLReferenceGuide.pdf|SCL Reference Guide]]. | ||
== Example == | == Example == |
Revision as of 20:04, 8 October 2008
The scl_conform pragma
The scl_conform pragma allows the user to define a conformant array within a payload. The payload can be a C structure or a parameter declaration list. The conformant array must be the last item in the payload (e.g., the last field in the structure, or the last parameter in the declaration list). Because of this, only the payload name and the name of the size field in that payload are required. The SCL compiler automatically assumes the conformant array field within the specified payload.
Note: Because scl_conform is a rarely-used SCL pragma, you may find scl_ptr_sized to be more appropriate for your interface.
Syntax
#pragma scl_conform(name, size-name, max-size)
Parameters | Type | Description |
name | String | Name of the structure or function that encapsulates the conformant array |
size-name | Member | Name of the structure field or function parameter that contains the size of the array |
max-size | Integer | Maximum size of the conformant array |
Notes
- This pragma can only be used after the payload structure has been defined.
- For additional information on scl_conform, including constraints, refer to the section on scl_conform in the SCL Reference Guide.
Example
/* Constant defining the maximum array size */
#define MAX_BUFFER_SIZE 20
/* Structure defining a message payload with a conformant array */
/* The array field must be the last member in the payload */
typedef struct {
int f1;
short bufferSize;
char buffer[1];
} CmdPayload_t;
/* Use the scl_conform pragma to define the conformant arrays */
#pragma scl_conform( CmdPayload_t, bufferSize, MAX_BUFFER_SIZE )