2005-11-10  Sean Hefty <sean.hefty@intel.com>

	* include/infiniband/sa-kern-abi.h: New include file to contain
	definitions of SA structures passed between userspace and kernel.

	* include/infiniband/sa.h: New include file for definitions of 
	SA structures used by multiple libraries.

	* include/infiniband/marshall.h src/marshall.c: New files to define
	routines used to exchange data with kernel modules.

	* include/infiniband/kern-abi.h: Added data structures used to exchange
	QP attribute with kernel modules.

2005-11-09  Michael S. Tsirkin  <mst@mellanox.co.il>

	* src/device.c (ibv_get_devices): Make function reentrant by using
	a mutex to make sure we initialize the device list at most once.

2005-11-08  Roland Dreier  <roland@cisco.com>

	* src/cmd.c (ibv_cmd_create_qp): Add handling for new create QP
	interface, which has the kernel return QP capabilities.

	* src/cmd.c (ibv_cmd_modify_srq): Split off handling of modify SRQ
	for ABI versions 3 and older, which passed max_sge as part of command.

2005-10-30  Roland Dreier  <roland@cisco.com>

	* examples/srq_pingpong.c (pp_init_ctx): Create CQ with rx_depth +
	num_qp entries, instead of just rx_depth + 1 entries, because
	there can be one send completion pending for each QP.

2005-10-25  Roland Dreier  <roland@cisco.com>

	* Release version 1.0-rc4.

	* examples/uc_pingpong.c (pp_connect_ctx): Fix QP attribute masks
	used to modify QP to RTR and RTS -- we should not be setting
	RDMA/atomic attributes for UC QPs.  Now that the mthca kernel
	driver bug is fixed, the error is exposed here.

	* examples/rc_pingpong.c, examples/srq_pingpong.c,
	examples/uc_pingpong.c, examples/ud_pingpong.c: Keep track of
	whether send and/or receive is pending.  This avoids failures when
	the remote side receives data and posts a send very quickly, and
	the local side completes the receive before the previous send.
	With the old code, this could result in posting a send before the
	previous send completed, and therefore overrun the send queue.

2005-10-23  Roland Dreier  <roland@cisco.com>

	* src/cmd.c (ibv_cmd_get_context_v2): Correct silly mistake in
	computation of size of buffer for old ABI command: we need to use
	sizeof *cmd instead of sizeof cmd, since cmd is a pointer.

2005-10-21  Roland Dreier  <roland@cisco.com>

	* src/cmd.c (ibv_cmd_post_send, ibv_cmd_post_recv,
	ibv_cmd_post_srq_recv): Correct value that we check write() return
	value against so that we check against the size we actually try to
	write, instead of just sizeof cmd.

2005-10-19  Roland Dreier  <roland@cisco.com>

	* src/cmd.c (ibv_cmd_req_notify_cq): Correct how we pass
	solicited_only flag into the kernel.

2005-10-13  Roland Dreier  <roland@cisco.com>

	* include/infiniband/driver.h, src/cmd.c, src/libibverbs.map: Add
	command functions for calling new kernel commands.

	* include/infiniband/verbs.h: Add qp_type to struct ibv_qp so that
	we know when we're posting a send on a UD QP, and add kernel
	handle member to struct ibv_ah so we can handle drivers that do
	create AH and destroy AH operations in the kernel.
	
	* include/infiniband/kern-abi.h: Add new command structures for
	poll CQ, request notification for CQ, post send, post receive,
	post SRQ receive, create AH and destroy AH commands.  These will
	be used by the PathScale userspace driver.

2005-10-12  Roland Dreier  <roland@cisco.com>

	* examples/srq_pingpong.c (main): Zero out unused entries in
	my_dest array to avoid string overflows when we send to the other
	side.

2005-10-09  Roland Dreier  <roland@cisco.com>

	* examples/devinfo.c (print_hca_cap): Only print max_mr_size and
	page_size_cap if verbose is set.

2005-10-05  Roland Dreier  <roland@cisco.com>

	* src/cmd.c (ibv_cmd_modify_srq): Add function for marshalling
	modify SRQ command.

2005-09-29  Roland Dreier  <roland@cisco.com>

	* examples/devinfo.c (print_hca_cap): Get rid of formatting of
	firmware version in what should be device-independent code.

	* include/infiniband/driver.h, include/infiniband/verbs.h,
	src/cmd.c (ibv_cmd_query_device): Change firmware version in
	struct ibv_device_attr to be a string formatted by device-specific
	library.

2005-09-25  Roland Dreier  <roland@cisco.com>

	* examples/rc_pingpong.c, examples/srq_pingpong.c,
	examples/uc_pingpong.c, examples/ud_pingpong.c: Update to match
	new completion channel and CQ creation API.

	* include/infiniband/driver.h, include/infiniband/verbs.h,
	src/device.c, src/ibverbs.h, src/verbs.c, src/cmd.c: Add notion of
	"completion channel" that allows consumers to dynamically create
	and destroy file descriptors for retrieving completion events.
	Completion channels are handled natively with kernel ABI version 3
	and simulated with backwards compatibility implementations for ABI
	versions 1 and 2.

	* include/infiniband/kern-abi.h: Update to match kernel ABI
	version 3.

2005-09-07  Roland Dreier  <roland@cisco.com>

	* src/device.c (ibv_get_device_guid): Use htonll() instead of
	relying on pointer aliasing (which seems to break for some gcc
	versions).

	* include/infiniband/arch.h: Add htonll() and ntohll() functions.

2005-09-06  Roland Dreier  <roland@cisco.com>

	* include/infiniband/kern-abi.h, include/infiniband/verbs.h,
	src/cmd.c, src/device.c, src/verbs.c, examples/asyncwatch.c:
	Update to handle new kernel ABI for avoiding stale completion
	events.  This is completely analogous to the previous asynchronous
	event change.

2005-08-31  Roland Dreier  <roland@cisco.com>

	* include/infiniband/kern-abi.h, include/infiniband/verbs.h,
	src/cmd.c, src/device.c, src/ibverbs.h, src/init.c, src/verbs.c,
	examples/asyncwatch.c: Update to handle new kernel ABI for
	avoiding stale asynchronous events.  When a CQ, QP or SRQ is
	destroyed, the kernel reports the number of events it has given to
	userspace, and we wait until we've handled the same number of
	events.

	This does introduce a library API change: consumers are now
	required to call ibv_put_async_event() to release every
	asynchronous event that they retrieve via ibv_get_async_event().

2005-08-30  Roland Dreier  <roland@cisco.com>

	* man/ibv_asyncwatch.1, man/ibv_devices.1, man/ibv_devinfo.1,
	man/ibv_rc_pingpong.1, man/ibv_srq_pingpong.1,
	man/ibv_uc_pingpong.1, man/ibv_ud_pingpong.1: Add man pages for
	example programs.

	* examples/devinfo.c: Merge with Dotan Barak's vstat tool.
