/usr/share/systemtap/runtime
NameSizeModeActions
dyninst/-0755rm
linux/-0755rm
softfloat/-0755rm
transport/-0755rm
unwind/-0755rm
addr-map.c5230644editdlrm
addr-map.h11560644editdlrm
alloc.c4980644editdlrm
arith.c4830644editdlrm
common_probe_context.h65760644editdlrm
common_session_state.h4150644editdlrm
compatdefs.h36820644editdlrm
copy.c5850644editdlrm
debug.h4850644editdlrm
io.c5080644editdlrm
k_syms.h1820644editdlrm
loc2c-runtime.h179370644editdlrm
map-gen.c259770644editdlrm
map-stat.c35890644editdlrm
map.c146600644editdlrm
map.h59180644editdlrm
mempool.c26440644editdlrm
namespaces.h4870644editdlrm
pmap-gen.c87100644editdlrm
print.c4860644editdlrm
print.h8720644editdlrm
print_flush.c30730644editdlrm
probe_lock.h4980644editdlrm
procfs-probes.c46730644editdlrm
procfs-probes.h6740644editdlrm
procfs.c40210644editdlrm
proc_fs_compatibility.h23160644editdlrm
ptrace_compatibility.h15120644editdlrm
regs.c42800644editdlrm
regs.h23520644editdlrm
runtime.h9280644editdlrm
runtime_context.h6690644editdlrm
runtime_defines.h35820644editdlrm
softfloat.c771590644editdlrm
softfloat.h51250644editdlrm
stack-arm.c16880644editdlrm
stack-ia64.c10830644editdlrm
stack-mips.c1250644editdlrm
stack-s390.c23620644editdlrm
stack.c217900644editdlrm
stat-common.c84860644editdlrm
stat.c74210644editdlrm
stat.h19640644editdlrm
stp_helper_lock.h36690644editdlrm
stp_string.c86320644editdlrm
stp_string.h5980644editdlrm
stp_task_work.c35110644editdlrm
stp_utrace.c947350644editdlrm
stp_utrace.h140100644editdlrm
sym.c397570644editdlrm
sym.h65390644editdlrm
syscall.h174080644editdlrm
task_finder_vma.c132900644editdlrm
time.c148870644editdlrm
timer.c4810644editdlrm
timer.h4820644editdlrm
uidgid_compatibility.h6030644editdlrm
unwind.c478900644editdlrm
utrace_compatibility.h31480644editdlrm
vma.c95450644editdlrm
vsprintf.c240580644editdlrm
vsprintf.h15020644editdlrm
Edit: /usr/share/systemtap/runtime/print_flush.c (3073B)
/* -*- linux-c -*- * Print Flush Function * Copyright (C) 2007-2008 Red Hat Inc. * * This file is part of systemtap, and is free software. You can * redistribute it and/or modify it under the terms of the GNU General * Public License (GPL); either version 2, or (at your option) any * later version. */ /** Send the print buffer to the transport now. * Output accumulates in the print buffer until it * is filled, or this is called. This MUST be called before returning * from a probe or accumulated output in the print buffer will be lost. * * @note Interrupts must be disabled to use this. */ static void __stp_print_flush(struct _stp_log *log) { char *bufp = log->buf; /* next byte of log->buf left to write */ size_t len = log->len; /* # bytes of log->buf left to write */ const size_t hlen = sizeof(struct _stp_trace); void *entry = NULL; /* current output buf handle */ size_t bytes_reserved; /* current output buf size available */ /* check to see if there is anything in the buffer */ if (likely(len == 0)) return; log->len = 0; /* clear it for later reuse */ dbug_trans(1, "len = %zu\n", len); /* try to reserve header + len */ bytes_reserved = _stp_data_write_reserve(hlen+len, &entry); /* require at least header to fit in its entirety */ if (likely(entry && bytes_reserved > hlen)) { /* copy new _stp_trace_ header */ struct _stp_trace t = { .magic = STAP_TRACE_MAGIC, .sequence = _stp_seq_inc(), .pdu_len = len }; memcpy(_stp_data_entry_data(entry), &t, hlen); /* copy the first part of the message */ memcpy(_stp_data_entry_data(entry)+hlen, bufp, bytes_reserved-hlen); bufp += bytes_reserved-hlen; len -= bytes_reserved-hlen; /* send header + first part */ _stp_data_write_commit(entry); /* loop to copy the rest of the message into subsequent bufs */ while (len > 0) { bytes_reserved = _stp_data_write_reserve(len, &entry); if (likely(entry && bytes_reserved)) { memcpy(_stp_data_entry_data(entry), bufp, bytes_reserved); _stp_data_write_commit(entry); bufp += bytes_reserved; len -= bytes_reserved; } else { /* rest of message cannot fit at this time */ /* NB: the receiver must somehow resynch the framing! */ atomic_inc(&_stp_transport_failures); break; } } } else { atomic_inc(&_stp_transport_failures); } }