Difference between revisions of "Scl function"

From STRIDE Wiki
Jump to: navigation, search
(The scl_function pragma)
(Syntax)
Line 5: Line 5:
 
== Syntax ==
 
== Syntax ==
  
  #pragma scl_function(function-name)
+
  #pragma scl_function(function-name [,<intercept>])
 +
 
  
 
{| border="1" cellspacing="0" cellpadding="10" style="align:left;"   
 
{| border="1" cellspacing="0" cellpadding="10" style="align:left;"   
Line 15: Line 16:
 
| String
 
| String
 
| Name of the function to define (no quotes)
 
| Name of the function to define (no quotes)
 +
|-
 +
| ''context''
 +
| String
 +
| Context in which the function is going to be intercepted.
 +
|-
 +
| ''name-mangling''
 +
| String
 +
| Type of [[Name_Mangling_Conflicts|name mangling]] to be used when intercepted.
 +
|-
 +
| ''group-id''
 +
| String
 +
| User defined identifier representing the group to which this function belongs when solving name mangling conflicts.
 
|}
 
|}
  

Revision as of 17:06, 19 March 2009

The scl_function pragma

The scl_function pragma allows the user to capture the function. All interfaces that STRIDE works with must be captured.

Syntax

#pragma scl_function(function-name [,<intercept>])


Parameters Type Description
function-name String Name of the function to define (no quotes)
context String Context in which the function is going to be intercepted.
name-mangling String Type of name mangling to be used when intercepted.
group-id String User defined identifier representing the group to which this function belongs when solving name mangling conflicts.

Notes

  • Identifier must be declared as a function designator with external linkage.
  • A compilation error is reported if an attempt is made to capture a function more than once (with either scl_func or scl_function).

Example

int f(int x); 

#pragma scl_function(f)