function kernel_string:string (addr:long, err_msg:string) {
try { return kernel_string(addr) } catch { return err_msg }
}
-%(systemtap_v <= "3.0" %?
function kernel_string2:string (addr:long, err_msg:string) {
- try { return kernel_string(addr) } catch { return err_msg }
+ return kernel_string(addr, err_msg);
}
-%)
/**
* sfunction kernel_string_quoted - Retrieves and quotes string from kernel memory
function kernel_string_utf32:string (addr:long, err_msg:string) {
try { return kernel_string_utf32(addr) } catch { return err_msg }
}
-%(systemtap_v <= "3.0" %?
function kernel_string2_utf32:string (addr:long, err_msg:string) {
- try { return kernel_string_utf32(addr) } catch { return err_msg }
+ return kernel_string_utf32(addr, err_msg);
}
-%)
/**
* sfunction kernel_string_quoted_utf32 - Quote given UTF-32 kernel string.
function kernel_string_utf16:string (addr:long, err_msg:string) {
try { return kernel_string_utf16(addr) } catch { return err_msg }
}
-%(systemtap_v <= "3.0" %?
function kernel_string2_utf16:string (addr:long, err_msg:string) {
- try { return kernel_string_utf16(addr) } catch { return err_msg }
+ return kernel_string_utf16(addr, err_msg);
}
-%)
/**
}
return 0
}
-%(systemtap_v <= "3.0" %?
function proc_mem_size_pid:long (pid:long)
{
- task = pid2task(pid)
- if (_stp_valid_task(task)) {
- mm = task->mm
- if (mm != 0)
- return mm->total_vm
- }
- return 0
+ return proc_mem_size(pid)
}
-%)
/**
* sfunction proc_mem_rss - Program resident set size in pages
}
return 0
}
-%(systemtap_v <= "3.0" %?
function proc_mem_rss_pid:long (pid:long)
{
- task = pid2task(pid)
- if (_stp_valid_task(task)) {
- mm = task->mm
- if (mm != 0)
- return (_stp_get_mm_counter(mm, _MM_FILEPAGES())
- + _stp_get_mm_counter(mm, _MM_ANONPAGES()))
- }
- return 0
+ return proc_mem_rss(pid)
}
-%)
/**
* sfunction proc_mem_shr - Program shared pages (from shared mappings)
}
return 0
}
-%(systemtap_v <= "3.0" %?
function proc_mem_shr_pid:long (pid:long)
{
- task = pid2task(pid)
- if (_stp_valid_task(task)) {
- mm = task->mm
- if (mm != 0)
- return _stp_get_mm_counter(mm, _MM_FILEPAGES())
- }
- return 0
+ return proc_mem_shr(pid)
}
-%)
@__private30 function _stp_mem_txt_adjust:long (start_code:long, end_code:long)
%{ /* pure */
}
return 0
}
-%(systemtap_v <= "3.0" %?
function proc_mem_txt_pid:long (pid:long)
{
- task = pid2task(pid)
- if (_stp_valid_task(task)) {
- mm = task->mm
- if (mm != 0) {
- s = mm->start_code
- e = mm->end_code
- return _stp_mem_txt_adjust (s, e)
- }
- }
- return 0
+ return proc_mem_txt(pid)
}
-%)
/**
* sfunction proc_mem_data - Program data size (data + stack) in pages
}
return 0
}
-%(systemtap_v <= "3.0" %?
function proc_mem_data_pid:long (pid:long)
{
- task = pid2task(pid)
- if (_stp_valid_task(task)) {
- mm = task->mm
- if (mm != 0) {
- return (@defined(&@mm(0)->data_vm) ? (mm->data_vm + mm->stack_vm)
- : (mm->total_vm - mm->shared_vm))
- }
- }
- return 0
+ return proc_mem_data(pid)
}
-%)
/**
* sfunction mem_page_size - Number of bytes in a page for this architecture
pages_to_string(proc_mem_txt(pid)),
pages_to_string(proc_mem_data(pid)));
}
-%(systemtap_v <= "3.0" %?
function proc_mem_string_pid:string (pid:long)
{
- return sprintf ("size: %s, rss: %s, shr: %s, txt: %s, data: %s",
- pages_to_string(proc_mem_size(pid)),
- pages_to_string(proc_mem_rss(pid)),
- pages_to_string(proc_mem_shr(pid)),
- pages_to_string(proc_mem_txt(pid)),
- pages_to_string(proc_mem_data(pid)));
+ return proc_mem_string(pid)
}
-%)
function user_string:string (addr:long, err_msg:string) {
return user_string_n(addr, @MAXSTRINGLEN, err_msg)
}
-%(systemtap_v <= "3.0" %?
function user_string2:string (addr:long, err_msg:string) {
return user_string_n(addr, @MAXSTRINGLEN, err_msg)
}
-%)
/**
* sfunction user_string_warn - Retrieves string from user space
function user_string_warn:string (addr:long, warn_msg:string) {
return user_string_n_warn(addr, @MAXSTRINGLEN, warn_msg)
}
-%(systemtap_v <= "3.0" %?
function user_string2_warn:string (addr:long, warn_msg:string) {
return user_string_n_warn(addr, @MAXSTRINGLEN, warn_msg)
}
-%)
/**
* sfunction user_string_quoted - Retrieves and quotes string from user space
else
STAP_RETVALUE[len - 1] = '\0';
%}
-%(systemtap_v <= "3.0" %?
-function user_string_n2:string (addr:long, n:long, err_msg:string)
-%{ /* pure */ /* myproc-unprivileged */ /* unmodified-fnargs */
- int64_t len = clamp_t(int64_t, STAP_ARG_n + 1, 1, MAXSTRINGLEN);
- if (_stp_strncpy_from_user(STAP_RETVALUE,
- (char __user *) (uintptr_t) STAP_ARG_addr, len) < 0)
- strlcpy(STAP_RETVALUE, STAP_ARG_err_msg, MAXSTRINGLEN);
- else
- STAP_RETVALUE[len - 1] = '\0';
-%}
-%)
+function user_string_n2:string (addr:long, n:long, err_msg:string) {
+ return user_string_n(addr, n, err_msg);
+}
/**
* sfunction user_string_n_warn - Retrieves string from user space
} else
STAP_RETVALUE[len - 1] = '\0';
%}
-%(systemtap_v <= "3.0" %?
-function user_string2_n_warn:string (addr:long, n:long, warn_msg:string)
-%{ /* pure */ /* myproc-unprivileged */ /* unmodified-fnargs */
- int64_t len = clamp_t(int64_t, STAP_ARG_n + 1, 1, MAXSTRINGLEN);
- long rc;
- rc = _stp_strncpy_from_user(STAP_RETVALUE,
- (char __user *) (uintptr_t) STAP_ARG_addr, len);
- if (rc < 0) {
- // NB: using error_buffer to get local space for the warning, but we're
- // not aborting, so leave last_error alone.
- snprintf (CONTEXT->error_buffer, sizeof(CONTEXT->error_buffer),
- "user string copy fault %ld at %p [man error::fault]", rc,
- (void *) (uintptr_t) STAP_ARG_addr);
- _stp_warn(CONTEXT->error_buffer);
- strlcpy (STAP_RETVALUE, STAP_ARG_warn_msg, MAXSTRINGLEN);
- } else
- STAP_RETVALUE[len - 1] = '\0';
-%}
-%)
+function user_string2_n_warn:string (addr:long, n:long, warn_msg:string) {
+ user_string_n_warn(addr, n, warn_msg);
+}
/**
* sfunction user_string_n_quoted - Retrieves and quotes string from user space
%}
%)
-%(systemtap_v <= "3.0" %?
-function user_string_n2_quoted:string (addr:long, inlen:long, outlen:long)
-%( systemtap_v >= "3.0" %?
- {
- try
- {
- __str = string_quoted(user_string_n(addr, inlen))
- if (strlen(__str) > outlen-2) // room for the double-quotes plus \ldots
- __str = (substr(__str,0,outlen-4) . "\"...")
- return __str
- }
- catch
- {
- return sprintf("0x%x", addr)
- }
- }
-%:
+function user_string_n2_quoted:string (addr:long, inlen:long, outlen:long) {
+ return user_string_n_quoted(addr, inlen, outlen);
-%{ /* pure */ /* myproc-unprivileged */
- // Note the lack of STAP_ARG_n+1 as in other funcs() -- PR15617
- int64_t inlen = clamp_t(int64_t, STAP_ARG_inlen, 0, MAXSTRINGLEN);
- int64_t outlen = clamp_t(int64_t, STAP_ARG_outlen, 0, MAXSTRINGLEN);
- if (STAP_ARG_addr == 0)
-#if STAP_COMPAT_VERSION < STAP_VERSION(2,3) // PR15044
- strlcpy(STAP_RETVALUE, "NULL", MAXSTRINGLEN);
-#else
- snprintf(STAP_RETVALUE, MAXSTRINGLEN, "%p", (void *)(long)STAP_ARG_addr);
-#endif
- else {
- int rc = _stp_text_str(STAP_RETVALUE,
- (char *)(uintptr_t)STAP_ARG_addr, inlen, outlen, 1, 1, 0);
- if (rc < 0) {
-#if STAP_COMPAT_VERSION < STAP_VERSION(2,3) // PR15044
- strlcpy(STAP_RETVALUE, "<unknown>", MAXSTRINGLEN);
-#else
-#ifdef CONFIG_COMPAT
- if (_stp_is_compat_task())
- snprintf(STAP_RETVALUE, MAXSTRINGLEN, "%x",
- (compat_long_t)STAP_ARG_addr);
- else
-#endif
- snprintf(STAP_RETVALUE, MAXSTRINGLEN, "%p",
- (void *)(long)STAP_ARG_addr);
-#endif
- }
- }
-%}
-
-%)
-%)
+}
/**
* sfunction user_string_utf32 - Retrieves UTF-32 string from user memory
function user_string_utf32:string (addr:long, err_msg:string) {
try { return user_string_utf32(addr) } catch { return err_msg }
}
-%(systemtap_v <= "3.0" %?
function user_string2_utf32:string (addr:long, err_msg:string) {
- try { return user_string_utf32(addr) } catch { return err_msg }
+ return user_string_utf32 (addr, err_msg);
}
-%)
/**
function user_string_utf16:string (addr:long, err_msg:string) {
try { return user_string_utf16(addr) } catch { return err_msg }
}
-%(systemtap_v <= "3.0" %?
function user_string2_utf16:string (addr:long, err_msg:string) {
- try { return user_string_utf16(addr) } catch { return err_msg }
+ return user_string_utf16(addr, err_msg);
}
-%)
/**