Sierra Trainer Generation Language
Preprocessor Integer Arithmetic
You can declare DWORD variables, make arithmetic operations, and use them in field and
parameters assignments.
Note:
Arithmetic expressions are allowed only in numeric variable assignments.
Examples:
Legal Operations
Illegal operations
5.12.11 Loops
Loops can be used in two modes:
1. Using an integer number, loop a specified number of loops. This number has to be
2. Using the word "infinite", loops for ever.
Sierra M6‐2 SAS/SATA Protocol Analyzer User Manual
x = 2
y = ( z = 12 ) + ( SOME_DEC_DATA + 36 ) / 8
z = 0x1 << 5
s = "Some Hex Data" # constant may be used in operations
x++
y--
z += ( x + y )
x = ( ( y & 0xFF ) >> 5 ) / 12
SOF ( Repeat = x, Idle = y )
X
{
Field16 = 0xEEEE
both integer variables, constants, hex literals and data patterns
Data
=
{ y y y y 7a7a7a7a "Some Hex Data" "Some Hex Data" 8b8b8b8b
z z z z [PATTERN_3] }
}
( Repeat = 10, Idle = y )
setting.
x = y + 2
SOF ( Repeat = (x+y)*7 )
# - illegal, use z = (x+y)*7
smaller than 64,000.
Loops ( loop_count/Infinite )
{
send instructions
assignments
change values
send instructions
}
# Example of the data payload assignment which uses
# uses integer variable for parameter/
SOF ( Repeat = z ) instead
Teledyne LeCroy
465