/** * struct fprobe_hlist_node - address based hash list node for fprobe. * * @hlist: The hlist node for address search hash table. * @addr: One of the probing address of @fp. * @fp: The fprobe which owns this.
*/ struct fprobe_hlist_node { struct hlist_node hlist; unsignedlong addr; struct fprobe *fp;
};
/** * struct fprobe_hlist - hash list nodes for fprobe. * * @hlist: The hlist node for existence checking hash table. * @rcu: rcu_head for RCU deferred release. * @fp: The fprobe which owns this fprobe_hlist. * @size: The size of @array. * @array: The fprobe_hlist_node for each address to probe.
*/ struct fprobe_hlist { struct hlist_node hlist; struct rcu_head rcu; struct fprobe *fp; int size; struct fprobe_hlist_node array[] __counted_by(size);
};
/** * struct fprobe - ftrace based probe. * * @nmissed: The counter for missing events. * @flags: The status flag. * @entry_data_size: The private data storage size. * @entry_handler: The callback function for function entry. * @exit_handler: The callback function for function exit. * @hlist_array: The fprobe_hlist for fprobe search from IP hash table.
*/ struct fprobe { unsignedlong nmissed; unsignedint flags;
size_t entry_data_size;
/** * disable_fprobe() - Disable fprobe * @fp: The fprobe to be disabled. * * This will soft-disable @fp. Note that this doesn't remove the ftrace * hooks from the function entry.
*/ staticinlinevoid disable_fprobe(struct fprobe *fp)
{ if (fp)
fp->flags |= FPROBE_FL_DISABLED;
}
/** * enable_fprobe() - Enable fprobe * @fp: The fprobe to be enabled. * * This will soft-enable @fp.
*/ staticinlinevoid enable_fprobe(struct fprobe *fp)
{ if (fp)
fp->flags &= ~FPROBE_FL_DISABLED;
}
/* The entry data size is 4 bits (=16) * sizeof(long) in maximum */ #define FPROBE_DATA_SIZE_BITS 4 #define MAX_FPROBE_DATA_SIZE_WORD ((1L << FPROBE_DATA_SIZE_BITS) - 1) #define MAX_FPROBE_DATA_SIZE (MAX_FPROBE_DATA_SIZE_WORD * sizeof(long))
#endif
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.