+ * * Array sequence of signed integer values *
+ * ctf_array(long, field_f, arg4, FIXED_LEN4)
+ * ctf_sequence(long, field_g, arg4, size_t, arg4_len)
+ * )
+ * )
+ *
+ * In more detail:
+ *
+ * We define a tracepoint, its arguments, and its 'fast binary record'
+ * layout.
+ *
+ * Firstly, name your tracepoint via TRACEPOINT_EVENT(name,
+ *
+ * The name should be a proper C99 identifier.
+ * The "name" MUST follow these rules to ensure no namespace clash
+ * occurs:
+ *
+ * For projects (applications and libraries) for which an entity
+ * specific to the project controls the source code and thus its
+ * tracepoints (typically with a scope larger than a single company):
+ *
+ * either:
+ * project_component_event
+ * or:
+ * project_event
+ *
+ * Where "project" is the name of the project,
+ * "component" is the name of the project component (which may
+ * include several levels of sub-components, e.g.
+ * ...component_subcomponent_...) where the tracepoint is located
+ * (optional),
+ * "event" is the name of the tracepoint event.
+ *
+ * For projects issued from a single company wishing to advertise that
+ * the company controls the source code and thus the tracepoints, the
+ * "com_" prefix should be used:
+ *
+ * either:
+ * com_company_project_component_event
+ * or:
+ * com_company_project_event
+ *
+ * Where "company" is the name of the company,
+ * "project" is the name of the project,
+ * "component" is the name of the project component (which may
+ * include several levels of sub-components, e.g.
+ * ...component_subcomponent_...) where the tracepoint is located
+ * (optional),
+ * "event" is the name of the tracepoint event.
+ *
+ *
+ * As an example, let's consider a user-space application "someproject"
+ * that would have an internal thread scheduler:
+ *
+ * TRACEPOINT_EVENT(someproject_sched_switch,