2006-01-16  Josh Stone  <joshua.i.stone@intel.com>

	* stat.c (_stp_stat_clear): add a function that just
	clears a Stat, so we can use delete in the translator.

2006-01-16  Martin Hunt  <hunt@redhat.com>

	* map.c (_stp_pmap_agg): Return NULL when aggregation
	fails.

2006-01-15  Frank Ch. Eigler  <fche@elastic.org>

	* io.c (_stp_exit): Revert.

2006-01-10  Martin Hunt  <hunt@redhat.com>

	* io.c (_stp_exit): set STAP_SESSION_STOPPING.

2006-01-03  Frank Ch. Eigler  <fche@redhat.com>

	* io.c (_stp_softerror): New function.

2005-12-14  Martin Hunt  <hunt@redhat.com>

	* pmap-gen.c (_stp_pmap_new_*): Initialize lock.
	(_stp_pmap_set_*): Lock map while in use.
	(_stp_pmap_add_*): Lock map while in use.	
	(_stp_pmap_get_cpu): Ditto.
	(_stp_pmap_get): Lock each per-cpu map.
	
	* map-gen.c: Define and use NULLRET for a NULL return value.
	* map.c (_stp_pmap_clear): New function.
	(_stp_pmap_agg): Lock each per-cpu map as
	it gets aggregated.

2005-12-13  Martin Hunt  <hunt@redhat.com>

	* map.c (_stp_map_sortn): Set a limit of 30 for n.  Automatically
	call _stp_map_sort() if more is requested.

2005-12-08  Martin Hunt  <hunt@redhat.com>

	* map.c (_new_map_create): Only increment map size if a node
	was moved off the free list.
	(_stp_map_size): New function.
	(_stp_pmap_size): New function.	

2005-12-07  Martin Hunt  <hunt@redhat.com>
	 PR1923
	* map.h (struct map_root): Remove membuf.
	(struct pmap): Define.
	(PMAP): Declare.

	* map.c (_stp_map_init): Use kmalloc() to allocate individual
	nodes instead of using vmalloc() to allocate one big chunk.
	(_stp_map_new): Use kmalloc. 
	(_stp_pmap_new): Use kmalloc. Return a PMAP.
	(__stp_map_del): New function. Free all the nodes in a map.
	(_stp_map_del): Call __stp_map_del() then free map struct.
	(_stp_pmap_del): Takes a PMAP. Calls __stp_map_del() for
	each cpu.
	(_stp_pmap_printn_cpu): Change arg to PMAP.
	(_stp_pmap_agg): Change arg to PMAP.	
	(_stp_pmap_get_agg): Change arg to PMAP.		

	* map-stat.c (_stp_pmap_new_hstat_linear): Use PMAP
	instead of MAP. Fix allocations.
	(_stp_pmap_new_hstat_log): Ditto.

	* pmap-gen.c Fix all functions to take or return PMAPS
	instead of MAPS.	

	* alloc.c: Remove everything except kmalloc_node().
	All runtime code now uses kmalloc() directly.

2005-11-30  Martin Hunt  <hunt@redhat.com>

	* io.c (_stp_exit): To prevent any possible interactions
	with the probed function, just set a flag here.

2005-11-28  Graydon Hoare  <graydon@redhat.com>

	* stat-common.c (_stp_stat_print_histogram): Various formatting
	corrections and aesthetic tweaks.
	(__stp_stat_add): Correction to linear bucket underflow cases.

2005-11-28  Martin Hunt  <hunt@redhat.com>

	* alloc.c (__stp_valloc_percpu): Use same code for up and smp.
	(_stp_per_cpu_ptr): New macro.
	* user/alloc.c: Ditto.	
	* map.c: Use _stp_map_cpu_ptr().	 
	* map-stat.c: Ditto.
	* pmap-gen.c: Ditto.
	* runtime.h: Include alloc.c	
	* user/runtime.h: Ditto.

	* map.c (_stp_pmap_del): Use _stp_free_percpu() to
	free pmaps.

	* map-stat.c (_stp_pmap_new_hstat_log): Fix typo. Call
	_stp_pmap_new() instead of _stp_map_new().

2005-11-11  Martin Hunt  <hunt@redhat.com>

	* map.h: Removed old API macros and prototypes.

2005-11-10  Martin Hunt  <hunt@redhat.com>

	* pmap-gen.c (_stp_pmap_get()): New function. Aggregates
	the per-cpu map nodes into an aggregation map node.

	* map.c (_stp_new_agg): Return a struct map_node *.
	(_stp_add_agg): If count is 0  when adding,
	just set the stats.

2005-11-10  Martin Hunt  <hunt@redhat.com>	
	* map.c: Doc updates.
	(_stp_new_agg): 

	* pmap-gen.c: Change a bunch of generated function names to 
	avoid conflicts with maps with the same key and value types.
	
2005-11-10  Martin Hunt  <hunt@redhat.com>	
	* map.c (_stp_cmp): Use _stp_div64().

2005-11-09  Martin Hunt  <hunt@redhat.com>

	* map.h: Remove HSTAT_LOG and HSTAT_LINEAR.
	* map-gen.c: Fix comment.
	* pmap-gen.c: Ditto.
	
2005-11-09  Martin Hunt  <hunt@redhat.com>	
	* map.c (_stp_cmp): Patch to sort on stats.
	(_stp_map_sort): Ditto.
	(_stp_map_sortn): Ditto.

2005-11-09  Martin Hunt  <hunt@redhat.com>
	* map.c: Change order of includes.
	
2005-11-09  Martin Hunt  <hunt@redhat.com>	
	* map.h (struct map_root): Delete fields
	used by old API.

	* map.c: Remove old map API functions.
	* map-stat.c (_stp_map_add_stat): Delete.
	(_stp_pmap_new_hstat_linear): Move here from map.c.
	(_stp_pmap_new_hstat_log): Ditto.

	* list.c: Deleted.
	* map-keys.c: Deleted.
	* map-values.c: Deleted.
	* map-int.c: Deleted.
	
2005-11-08  Martin Hunt  <hunt@redhat.com>

	* alloc.c (__stp_valloc_percpu): Fix call to vmalloc_node.
	(vmalloc_node): Remove nonworking code.

2005-11-08  Martin Hunt  <hunt@redhat.com>
	
	* map.c (_stp_map_init): New function. Extracted from _stp_map_new()
	so it can be used in _stp_pmap_new().
	(_stp_map_new): Call _stp_map_init().
	(_stp_pmap_new): New function.
	(_stp_pmap_new_hstat_linear): New function.
	(_stp_pmap_new_hstat_log): New function.
	(_stp_pmap_del): New function.
	(_stp_pmap_printn_cpu): New function.
	(_stp_pmap_printn): New function.	
	(_stp_new_agg): New function.
	(_stp_add_agg): New function.	
	(_stp_pmap_agg): New function.		
	(_new_map_clear_node): New function.
	
	* map.h (struct map_root): Add Hist struct. Add copy
	and cmp function pointers for pmaps.

	* stat.h: Remove Stat struct. Replace with Hist struct
	that is limited to only histogram params.
	* map-stat.c: Fix up references to histogram params in map_root.
	* stat-common.c: Ditto.
	* stat.c: Ditto.
	
	* pmap-gen.c: New file. Implements per-cpu maps.
	
	* map-gen.c: Minor bug fixes. Use new VAL_IS_ZERO() macro.

	* alloc.c (vmalloc_node): For NUMA, provide a vmalloc that
	does node-local allocations.
	(_stp_alloc_cpu): A version of _stp_alloc() that does
	node-local allocations.
	(_stp_valloc): A version of _stp_valloc() that does
	node-local allocations.
	(__stp_valloc_percpu): New function. Like alloc_percpu()
	except uses _stp_valloc().
	(_stp_vfree_percpu): New function. Like free_percpu().

2005-11-04  Martin Hunt  <hunt@redhat.com>

	* runtime.h: #include <linux/version.h>.
	(init_module): Remove old ppc comment.
	ifdef _stp_kta so it only gets set for x86 and x86_64.

2005-10-31  Martin Hunt  <hunt@redhat.com>

	* ALL: Cleanup copyrights.

2005-10-28  Martin Hunt  <hunt@redhat.com>

	* map-gen.c (MAP_GET_VAL): Use the _stp_get_*() functions.
	(_stp_map_set_*): When setting to "", don't create
	node if key not found.
	(_stp_map_get_*): Use new MAP_GET_VAL. Return "" when
	string lookups not found.
	
	* map.c (_stp_get_int64): Check args and return
	0 on bad args or wrong type.
	(_stp_get_stat): Ditto.	
	(_stp_key_get_int64): Ditto.
	(_stp_get_str): Check args and return
	"bad type" on bad args or wrong type.
	(_stp_key_get_str): Ditto.
	(_new_map_set_str): If setting to "", delete node.
	(_new_map_get_*): Delete. Use _stp_get_*().
	

2005-10-26  Martin Hunt  <hunt@redhat.com>

	* map-gen.c (KEY4CPY): Fix typo.
	(KEYCPY): Add missing semicolon.

2005-10-26  Martin Hunt  <hunt@redhat.com>
	* map-gen.c: New file.
	
	* map.c (_new_map_create, _new_map_del_node, _new_map_del_node,
	_new_map_set_int64, _new_map_set_str,_new_map_get_int64,
	_new_map_get_str, _new_map_get_stat, _new_map_set_stat):
	New internal functions for the new API.

	* map-int.c (__stp_map_set_int64): Modify to return an
	error code.
	* map-stat.c (_stp_map_add_stat): Ditto.
	* map-str (_stp_map_set_str): Ditto.

	* Doxyfile: Remove predefines NEED_STRING_VALS, 
	NEED_STATS, NEED_INT64.
	* map-keys.c: Ditto.	
	* list.c (_stp_list_new): Ditto. Also set map->list.
	* map-values.c: Ditto.

2005-10-19  Martin Hunt  <hunt@redhat.com>

	* runtime.h (_stp_kallsyms_lookup_tabled): Only
	compile this for systemtap. Runtime-only examples
	don't need it.

2005-10-19  Tom Zanussi  <zanussi@us.ibm.com>

	* print.c (_stp_print_flush): Switch to binary TIMESTAMP.

2005-10-14  Tom Zanussi  <zanussi@us.ibm.com>

	PR 1455
	* string.c (_stp_sprintf): Restore overwritten NULL byte.
	* print.c: Change STP_PRINT_BUF_LEN to correct size.

2005-10-06  Frank Ch. Eigler  <fche@elastic.org>

	PR 1332.
	* sym.h: New file to declare explicit symbol table struct.
	* runtime.h (_stp_kallsyms_lookup_tabled): Use it if available.
	* sym.c (_stp_symbol_sprint): HAS_LOOKUP mooted.

2005-09-30  Graydon Hoare  <graydon@redhat.com>

	* loc2c-runtime.h (_put_user_asm): Fix bracket-matching.

2005-09-23  Martin Hunt  <hunt@redhat.com>

	* map.c (_stp_map_sortn):  Call _stp_map_sort()
	when n is 0.

2005-09-23  Martin Hunt  <hunt@redhat.com>

	* map.c (_stp_cmp): New comparison function for sorts.
	(_stp_swap): New swap function for bubble sort.
	(_stp_map_sortn): New function.
	(_stp_map_sort): New function.	
	(_stp_map_printn): New function.
	(_stp_map_print): Convert to a macro.	

2005-09-22  Martin Hunt  <hunt@redhat.com>

	* regs.h: PPC64 version from 
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>

	* runtime.h (init_module): Only initialize _stp_kta and 
	_stp_kallsyms_lookup on i386 and x86_64. Define HAS_LOOKUP.

	* sym.c (_stp_symbol_sprint): If HAS_LOOKUP is not
	defined, just print address in hex.

	* current.c (_stp_ret_addr): Add ppc64 version.
	(_stp_sprint_regs): PPC64 version from 
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>

2005-09-14  Martin Hunt  <hunt@redhat.com>

	* map.c (_stp_map_clear): New function. CLears a map but
	does not free it.

	* copy.c (__stp_strncpy_from_user): Add ppc64 support.
	(_stp_strncpy_from_user): Call access_ok().
	(_stp_string_from_user): Ditto.
	(_stp_copy_from_user): Ditto.

2005-09-12  Martin Hunt  <hunt@redhat.com>

	* io.c (ERR_STRING): Remove ansi codes.
	 (WARN_STRING): Ditto.

2005-09-12  Martin Hunt  <hunt@redhat.com>

	* arith.c (_stp_div64): Check for division by 0 or -1 first.
	This simplifies things and removes the possibility of x86_64
	trying LLONG_MIN/-1 and faulting.
	(_stp_mod64): Ditto.

2005-09-10  Frank Ch. Eigler  <fche@elastic.org>

	* arith.c: Add some comments explaining why the last change works.

2005-09-09  Roland McGrath  <roland@redhat.com>

	* loc2c-runtime.h [__powerpc__] (store_register): Add #undef.

2005-09-09  Martin Hunt  <hunt@redhat.com>

	* stat-common.c (_stp_stat_print_valtype): Use _stp_div64().
	* arith.c (_stp_div64): Check error before writing to it.
	Remove check against 32-bit LONG_MIN and -1. That only
	applies to 64-bit.
	(_stp_mod64): Ditto.

2005-09-08  Martin Hunt  <hunt@redhat.com>
	* arith.c (_stp_div64): Check for overflow.
	(_stp_mod64): Ditto.

2005-09-08  Martin Hunt  <hunt@redhat.com>

	* arith.c (_stp_div64): For 64-bit cpus, just use native
	division. Otherwise call _div64().
	(_stp_mod64): Call _mod64() isf necessary.
	(_div64): 64-bit division for 32-bit cpus.
	(_mod64): 64-bit modulo for 32-bit cpus.

	* map-values.c (_stp_map_entry_exists): Remove unused var.

2005-09-01  Martin Hunt  <hunt@redhat.com>

	* stack.c (_stp_stack_sprint): Add a verbose arg
	to pass along to underlying funcs.

2005-08-31  Martin Hunt  <hunt@redhat.com>

	* runtime.h (init_module): Include full prototype
	info in function cast to satisfy stap.

	* sym.c (_stp_kallsyms_lookup): Moved to runtime.h.
	* stack.c (_stp_kta): Moved to runtime.h.
	* runtime.h (init_module): Initialize _stp_kallsyms_lookup
	and _stp_kta.
	* probes.c (_stp_lookup_name): Replaced by kallsyms_lookup_name().
	* list.c (_stp_copy_argv_from_user): ifdef this function
	NEED_STRING_VALS.

2005-08-30  Roland McGrath  <roland@redhat.com>

	* loc2c-runtime.h (fetch_register, store_register): Rewritten to pass
	REGS to dwarf_register_<N> as a macro argument.
	[__i386__, __x86_64__]: Update dwarf_register_* macros.
	[__i386__] (dwarf_register_4): Define special case for stack pointer.

2005-08-29  Martin Hunt  <hunt@redhat.com>

	* list.c (_stp_copy_argv_from_user): Move to here.
	* copy.c (_stp_copy_argv_from_user): Delete.
	* runtime.h: Always include copy.h.

2005-08-25  Roland McGrath  <roland@redhat.com>

	* loc2c-runtime.h (deref_string): Rewritten using deref.

2005-08-24  Roland McGrath  <roland@redhat.com>

	* loc2c-runtime.h (deref_string): New macro.

2005-08-24  Martin Hunt  <hunt@redhat.com>

	* io.c (_stp_vlog): Send warnings and errors to STP_OOB_DATA.

2005-08-23  Martin Hunt  <hunt@redhat.com>

	* runtime.h: Add a prototype for _stp_dbug().

2005-08-22  Martin Hunt  <hunt@redhat.com>

	* runtime.h (kbug): New dbug macros that calls printk.

2005-08-21  Frank Ch. Eigler  <fche@redhat.com>

	* arith.c (*): Adapt to last_error context variable.

2005-08-19  Frank Ch. Eigler  <fche@elastic.org>

	* arith.c (_stp_random_pm): New function.

2005-08-19  Martin Hunt  <hunt@redhat.com>

	* print.c: Change ifdefs to STP_RELAYFS.
	* runtime.h: Ditto.
	* io.c (_stp_vlog): Call _stp_write instead of
	_stp_ctrl_send.
	* Makefile: Don't build stp-control.
	* README.doc: Update.
	* TODO: Update.

2005-08-12  Graydon Hoare  <graydon@redhat.com>

	* map-values.c (_stp_map_entry_exists): New function.
	* map.h (_stp_map_entry_exists): Declare it.

2005-08-12  Frank Ch. Eigler  <fche@elastic.org>

	* arith.c: New file to contain arithmetic helper functions.
	* builtin_functions.h: Remove, unused.
	* runtime.h: Include it.

2005-08-10  Roland McGrath  <roland@redhat.com>

	* loc2c-runtime.h (store_bitfield): Fix argument use.
	(store_deref): New macro (three flavors).

2005-08-03  Martin Hunt  <hunt@redhat.com>

	* io.c 	(_stp_vlog): Revert previous change for now.
	* print.c (_stp_print_flush): Ditto.

2005-08-03  Tom Zanussi  <trz@us.ibm.com>

	* io.c (_stp_vlog): Remove call to _stp_print_flush().
	* print.c (_stp_print_flush): _stp_warn() on first
	transport failure.

2005-08-01  Martin Hunt  <hunt@redhat.com>

	* io.c (_stp_vlog): Use _stp_pid instead os _stp_tport->pid.
	* print.c (_stp_print_flush): Don't need _stp_tport.
	*runtime.h (probe_start): Just call _stp_transport_init().
	(probe_exit): Just call _stp_transport_close().

2005-07-28  Graydon Hoare  <graydon@redhat.com>

	* loc2c-runtime.h: New file from elfutils CVS.

2005-07-20  Martin Hunt  <hunt@redhat.com>

	* io.c (_stp_vlog): Don't count transport failures for
	these messages.

2005-07-19  Martin Hunt  <hunt@redhat.com>

	* print.c (_stp_print_flush): Check return value and increment
	transport failures.

2005-07-14  Frank Ch. Eigler  <fche@redhat.com>

	* builtin_functions.h (printk): Use explicit format string.

2005-07-11  Graydon Hoare  <graydon@redhat.com>

	* builtin_functions.h: New file.

2005-07-10  Martin Hunt  <hunt@redhat.com>

	* runtime.h (init_module): Fix return value.

2005-07-08  Martin Hunt  <hunt@redhat.com>

	* runtime.h: Move some common pieces of modules into this file.
	Includes MODULE_LICENSE, cleanup_module and init_module.

	* print.c (_stp_print_flush): Rename "t" to "_stp_tport".

	* io.c (_stp_vlog): Ditto.

2005-07-01  Martin Hunt  <hunt@redhat.com>

	* string.c (_stp_string_init): CAll stp_error() on bad
	init.

	* list.c (_stp_list_clear): Call _stp_warn().

	* probes.c: Convert all _stp_log() calls to either stp_warn() or
	dbug().

	* print.c: Comment out dbug()s.

	* stat-common.c: Comment out dbug()s.

	* map.c (_stp_map_new): Call _stp_error() on a bad map type.
	Comment out dbug()s.

	* map-stat.c (_stp_map_new_hstat_log): Call _stp_warn().
	(_stp_map_new_hstat_linear): Ditto.

	* map-int.c: Comment out dbug()s.

	* map-str.c: Comment out dbug()s.

	* map-keys.c: Use _stp_warn().  Comment out dbug()s.

	* alloc.c (_stp_alloc): Call _stp_error().
	(_stp_valloc): Ditto.

	* io.c (_stp_warn): New function.
	(_stp_exit): New function.
	(_stp_error): New function.
	(_stp_dbug): New function.

	* runtime.h (dbug): Call _stp_dbug() if	DEBUG is defined.

2005-06-29  Martin Hunt  <hunt@redhat.com>

	* map-values.c (_stp_map_add_int64): Fix docs.
	* map-str.c: Fix some docs
	* map.c: Ditto.
	* map.doc: Ditto.

	* current.c (_stp_ret_addr_r): New function.
	(_stp_probe_addr): New function.
	(_stp_probe_addr_r): New function.

2005-06-27  Martin Hunt  <hunt@redhat.com>

	* Doxyfile (PREDEFINED): Added USE_RET_PROBES.

	* probes.c (_stp_register_kretprobes): New function.
	(_stp_unregister_kretprobes): New function.

2005-06-20  Tom Zanussi  <zanussi@us.ibm.com>

	* print.c: Made relayfs _stp_print_flush() use sequence counter.

	* runtime.h: Added sequence counter, moved subbuf_size etc to probes.

2005-06-18  Martin Hunt  <hunt@redhat.com>

	* counter.c: New file. Counter aggregations.

	* stat.c: New file. Stat aggregations.

	* stat.h: Header file for stats.

	* map-int.c: New file. Support for int64 values.

	* map-stat.c: New file. Support for stat values.

	* map-str.c: New file. Support for string values.

	* map-values.c: Now just includes the necessary map-*.c files.

	* stat-common.c: New file. Stats stuff common to Stats and maps
	containing stats.

	* Doxyfile: Bumped version to 0.6.

	* README: Renamed README.doc and reorganized.


2005-06-15  Martin Hunt  <hunt@redhat.com>

	* current.c (_stp_ret_addr): Fix computation for i386.

2005-06-14  Martin Hunt  <hunt@redhat.com>

	* README: Removed old docs and replaced with simple build
	instructions.

	* Makefile: New file.

	* probes/build: New file.

2005-06-13  Martin Hunt  <hunt@redhat.com>

	* print.c (next_fmt): Move this func to print.c.

2005-06-02  Martin Hunt  <hunt@redhat.com>

	* string.c (_stp_string_cat_cstr): Be sure result is
	always terminated.

	* print.c (_stp_vprintf): Fix typo.

2005-05-31  Martin Hunt  <hunt@redhat.com>

	* map.c (_stp_map_print): Now takes a format string instead of a name.

	* map.h (foreach): Update macro.

	* string.c (_stp_string_cat_char): New function.  Append a char
	to a string.

	* map-keys.c: Don't forget to undef KEYSYM, ALLKEYS and ALLKEYSD.

2005-05-26  Martin Hunt  <hunt@redhat.com>

	* current.c (_stp_sprint_regs): Implement for i386.

	* sym.c (_stp_symbol_sprint): Check name before trying to
	print it.
	(_stp_symbol_print): Change to macro that calls _stp_symbol_sprint().

2005-05-18  Martin Hunt  <hunt@redhat.com>

	* print.c: All functions except _stp_print_flush() are
	now macros which use _stp_stdout.

	* string.c: Add _stp_stdout support.  Data written to
	_stp_stdout is automatically flushed when the print buffer
	is full.

	* runtime.h: Always include string.c.

2005-05-17  Martin Hunt  <hunt@redhat.com>

	* map.c (needed_space): Use do_div().
	(_stp_map_print_histogram): Ditto.
	(_stp_map_print): Ditto.

	* map-values.c (_stp_map_add_int64_stat): Use do_div() when
	computing histogram bucket.

	* map-keys.c (_stp_map_key): Fix some warnings on 32-bit machines
	by using key_data casts.

2005-03-30  Martin Hunt  <hunt@redhat.com>

	* scbuf.c:  Make functions use per-cpu buffers as documented.
	_stp_scbuf_clear(): Now returns a pointer to the buffer.
