@cast
operator (first available in
SystemTap 0.9) can be used to indicate
the correct type of the object.
task.stp
tapset.
The function returns the value of the state
field from a task_struct
pointed to by
the long task
.
The first argument of the @cast
operator,
task
, is the pointer to the object.
The second argument is the type to cast the object to,
task_struct
.
The third argument lists what file that the type definition
information comes from and is optional.
With the @cast
operator the various fields of
this particular task_struct
task
can be accessed; in this example the state
field
is obtained.
Example 3.9. Casting Example
function task_state:long (task:long) { return @cast(task, "task_struct", "kernel<linux/sched.h>")->state }