* Check if an #aop_type object matches a pointer type. This check is
* true if and only if the specified type matches a subset of types
* that aop_t_all_pointer() matches.
+ *
+ * (Since version 1.1)
* \param type The type to check.
* \return Non-zero if the #aop_type object matches a pointer type,
* zero otherwise.
* Only use this function on dynvals whose type passes
* aop_is_pointer_type(). Casting a non-pointer type with this
* function will raise a fatal compiler error.
+ *
+ * (Since version 1.1)
* \param dv The #aop_dynval to cast.
*/
void
* Get the type for an #aop_dynval object. Every dynval has an
* associated type that is determined by how it was matched and
* captured.
+ *
+ * (Since version 1.1)
* \return The type of the specified dynval.
*/
const struct aop_type *aop_get_dynval_type (struct aop_dynval *dv)
/**
* Check if an #aop_type object matches one of the types that
* aop_t_all_signed() matches.
+ *
+ * (Since version 1.1)
* \param type The type to check.
* \return Non-zero if the #aop_type object is standard-sized signed
* integer type.
/**
* Check if an #aop_type object matches one of the types that
* aop_t_all_unsigned() matches.
+ *
+ * (Since version 1.1)
* \param type The type to check.
* \return Non-zero if the #aop_type object is standard-sized unsigned
* integer type.
* Only use this function on dynvals whose type passes
* aop_is_all_signed_subtype(). Casting any other type with this
* function will raise a fatal compiler error.
+ *
+ * (Since version 1.1)
* \param dv The #aop_dynval to cast.
*/
void
* Only use this function on dynvals whose type passes
* aop_is_all_unsigned_subtype(). Casting any other type with this
* function will raise a fatal compiler error.
+ *
+ * (Since version 1.1)
* \param dv The #aop_dynval to cast.
*/
void
/**
* Check if an #aop_type object matches one of the types that
* aop_t_all_fp() matches.
+ *
+ * (Since version 1.1)
* \param type The type to check.
* \return Non-zero if the #aop_type object is standard-sized signed
* floating point type.
* Only use this function on dynvals whose type passes
* aop_is_all_fp_subtype(). Casting a non-float type with this
* function will raise a fatal compiler error.
- * param dv The #aop_dynval to cast.
+ *
+ * (Since version 1.1)
+ * \param dv The #aop_dynval to cast.
*/
void
aop_cast_to_all_fp(struct aop_dynval *dv)
* is defined as a weak symbol, so you can override it by defining
* your own version.
*
+ * Tracecuts are available starting with InterAspect version 1.1.
* \{
*/
* Use tc_reset_error() to set a tracecut's error code back to
* #TC_SUCCESS.
*
+ * (Since version 1.1)
* \param tc The tracecut to check.
* \return The error code of the first failed operation on this
* tracecut, or TC_SUCCESS if no operations failed.
* Clear the history of any failed operations on this tracecut. After
* calling this, tc_error_code() will return #TC_SUCCESS until some
* later tracecut operation fails.
+ *
+ * (Since version 1.1)
* \param tc The tracecut to reset.
*/
void
* All params must have an #aop_type that matches pointer types only
* (i.e., aop_is_pointer_type() returns true).
*
+ * (Since version 1.1)
* \param tc The tracecut to add a param to.
* \param name The name used to reference this param.
* \param type They type of this param.
* symbol will fail. It is possible to create multiple symbols for
* the same function.
*
+ * (Since version 1.1)
* \param tc The tracecut to add a symbol to.
* \param name The name used to reference this symbol.
* \param func_name The name of the function that should trigger the
* Bind a tracecut param to a call symbol's <code>call_param</code>.
* Binding to a <code>call_param</code> will capture that parameter at
* runtime.
+ *
+ * (Since version 1.1)
* \param tc The tracecut to add a binding to.
* \param param_name Name of the tracecut param to bind.
* \param symbol_name Name of the call symbol to bind to.
/**
* Bind a tracecut param to a call symbol's return value. Binding to
* return value will capture that return value at runtime.
+ *
+ * (Since version 1.1)
* \param tc The tracecut to add a binding to.
* \param param_name Name of the tracecut param to bind.
* \param symbol_name Name of the call symbol to bind to.
*
* <code>"(param)func_name()"</code>
*
+ * (Since version 1.1)
* \param tc The tracecut to add the symbol to.
* \param name The name used to reference this symbol.
* \param declaration A string declaring the name of the function that
* symbols (expressed with <code>symbol_name</code> strings) combined
* with the standard <code>|</code>, <code>*</code>, <code>+</code>,
* and <code>?</code> operators and parenthesis for grouping.
+ *
+ * (Since version 1.1)
* \param tc The tracecut to add the rule to.
* \param specification A regular expression over the alphabet of the
* tracecut's symbols.
* Create an empty tc_tracecut object. The caller is responsible for
* freeing the object using tc_free_tracecut(). (Do not use the
* standard free function.)
+ *
+ * (Since version 1.1)
* \return A new tc_tracecut that must be freed with
* tc_free_tracecut(). The return value will be NULL if allocation
* fails or if compilation has already started..
* Free all the memory used by a tc_tracecut object. Every call to
* tc_create_tracecut() should have a matching call to
* tc_free_tracecut().
+ *
+ * (Since version 1.1)
* \param tc The tracecut object to free.
*/
void
* initialization should go. This join point should execute only
* once, right when you want tracecut monitoring to start.
*
+ * (Since version 1.1)
* \param jp The join point to insert initialization at.
*/
void
* work, you must either set a main function or manually add this
* initiliazation code using tc_insert_tracecut_init_advice().
*
+ * (Since version 1.1)
* \param func_name The name of the main function.
*/
void
* Call this from your aop_main() function to register a pass that
* will add tracecut instrumentation. A tracecut plug-in will not do
* anything without this call!
+ *
+ * (Since version 1.1)
*/
void
tc_register_tracecut_pass (void)