From: Justin Seyster Date: Mon, 11 Oct 2010 22:26:15 +0000 (-0400) Subject: Documented aop_type. X-Git-Tag: release-v1.0~28^2~18 X-Git-Url: https://git.fsl.cs.stonybrook.edu/?a=commitdiff_plain;h=0632f969ea0e8b145fdb76559c139319010669c7;p=interaspect.git Documented aop_type. --- diff --git a/src/aop-doxy-main.c b/src/aop-doxy-main.c index 025743f..c880321 100644 --- a/src/aop-doxy-main.c +++ b/src/aop-doxy-main.c @@ -160,3 +160,43 @@ * structure, in order to avoid any accesses to the join point after * it becomes invalid. */ + +/** + * \struct aop_type + * \brief A type object used to match types in the instrumented + * program. + * + * Most pointcuts can be refined by type, using functions like + * aop_match_assignment_by_type() or aop_filter_call_pc_by_param(). + * An aop_type object represents specific criteria for matching a type + * in the target program. As a simple example, the type returned by + * aop_t_all_signed() will match (almost) any signed integer type + * (int, char, int16_t, et al.). There are several useful "all" + * types: + * + * - aop_t_all_signed() + * - aop_t_all_unsigned() + * - aop_t_all_fp() + * - aop_t_all_pointer() + * + * Additionally, there are aop_type objects for matching very specific + * target types, such as aop_t_signed32(). See the complete list of + * \ref type "InterAspect types". + * + * Besides providing filtering criteria, aop_type objects are also + * used to specify how a parameter gets passed to an advice hook at + * the target language level. Every aop_dynval has an associated + * aop_type which controls how it is represented in the hook function + * prototype. For example, a dynval with an associated + * aop_t_all_signed() type will be passed as int64_t + * because a 64-bit integer can hold any value that fits in one of the + * types that aop_t_all_signed() can match. + * + * All aop_type objects have an indefinite lifetime: you can store + * pointers to an aop_type anywhere without worrying that the + * reference will become stale. Additionally, aop_type objects are + * stored with + * hash consing, so recreating identical aop_type objects will not + * unnecessarily consume memory. InterAspect cleans up all aop_type + * objects for you when the compiler exits. + */