[openib-general] [PATCH] osm/complib: remove unused files
Sasha Khapyorsky
sashak at voltaire.com
Mon Feb 27 11:37:32 PST 2006
Hello,
This removes some unused files from complib.
Sasha.
Remove some unused files from complib
Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
---
osm/complib/Makefile.am | 11 -
osm/complib/cl_complib.c | 18 -
osm/complib/cl_device.c | 145 -------
osm/complib/cl_syshelper.c | 72 ----
osm/complib/cl_waitobj.c | 215 -----------
osm/include/Makefile.am | 3
osm/include/complib/cl_device.h | 712 ------------------------------------
osm/include/complib/cl_syshelper.h | 238 ------------
osm/include/complib/cl_waitobj.h | 369 -------------------
9 files changed, 4 insertions(+), 1779 deletions(-)
diff --git a/osm/complib/Makefile.am b/osm/complib/Makefile.am
index 9dbf7a1..c92bffe 100644
--- a/osm/complib/Makefile.am
+++ b/osm/complib/Makefile.am
@@ -17,14 +17,14 @@ else
libosmcomp_version_script =
endif
-libosmcomp_la_SOURCES = cl_async_proc.c cl_complib.c cl_device.c \
+libosmcomp_la_SOURCES = cl_async_proc.c cl_complib.c \
cl_dispatcher.c cl_event.c cl_event_wheel.c \
cl_list.c cl_log.c cl_map.c cl_memory.c \
cl_memory_osd.c cl_obj.c cl_perf.c cl_pool.c \
cl_ptr_vector.c cl_reqmgr.c \
cl_spinlock.c cl_statustext.c \
- cl_syshelper.c cl_thread.c cl_threadpool.c \
- cl_timer.c cl_vector.c cl_waitobj.c \
+ cl_thread.c cl_threadpool.c \
+ cl_timer.c cl_vector.c \
ib_statustext.c
libosmcomp_la_LDFLAGS = -version-info $(complib_api_version) \
-export-dynamic $(libosmcomp_version_script)
@@ -40,7 +40,6 @@ libosmcompinclude_HEADERS = $(srcdir)/..
$(srcdir)/../include/complib/cl_comppool.h \
$(srcdir)/../include/complib/cl_debug.h \
$(srcdir)/../include/complib/cl_debug_osd.h \
- $(srcdir)/../include/complib/cl_device.h \
$(srcdir)/../include/complib/cl_dispatcher.h \
$(srcdir)/../include/complib/cl_event.h \
$(srcdir)/../include/complib/cl_event_wheel.h \
@@ -68,7 +67,6 @@ libosmcompinclude_HEADERS = $(srcdir)/..
$(srcdir)/../include/complib/cl_reqmgr.h \
$(srcdir)/../include/complib/cl_spinlock.h \
$(srcdir)/../include/complib/cl_spinlock_osd.h \
- $(srcdir)/../include/complib/cl_syshelper.h \
$(srcdir)/../include/complib/cl_thread.h \
$(srcdir)/../include/complib/cl_thread_osd.h \
$(srcdir)/../include/complib/cl_threadpool.h \
@@ -81,8 +79,7 @@ libosmcompinclude_HEADERS = $(srcdir)/..
$(srcdir)/../include/complib/cl_timer_osd.h \
$(srcdir)/../include/complib/cl_types.h \
$(srcdir)/../include/complib/cl_types_osd.h \
- $(srcdir)/../include/complib/cl_vector.h \
- $(srcdir)/../include/complib/cl_waitobj.h
+ $(srcdir)/../include/complib/cl_vector.h
# headers are distributed as part of the include dir
EXTRA_DIST = $(srcdir)/libosmcomp.spec.in $(srcdir)/libosmcomp.map \
diff --git a/osm/complib/cl_complib.c b/osm/complib/cl_complib.c
index 9eb475b..5a3ab62 100644
--- a/osm/complib/cl_complib.c
+++ b/osm/complib/cl_complib.c
@@ -40,10 +40,7 @@
#endif /* HAVE_CONFIG_H */
#include <complib/cl_types.h>
-#include <complib/cl_device.h>
#include <complib/cl_debug.h>
-#include <complib/cl_syshelper.h>
-#include <complib/cl_waitobj.h>
#include <stdio.h>
#include <unistd.h>
@@ -77,17 +74,6 @@ complib_init(void)
cl_status_t status = CL_SUCCESS;
/*
- * System Helper Init.
- */
- status = __cl_user_syshelper_init();
- if( status != CL_SUCCESS )
- {
- cl_msg_out( "__init: failed to init syshelper (%s)\n",
- CL_STATUS_MSG( status ) );
- exit(1);
- }
-
- /*
* Timer Init
*/
@@ -105,16 +91,12 @@ __attribute (( destructor ))
complib_fini(void)
{
__cl_timer_prov_destroy();
-
- __cl_user_syshelper_exit();
}
void
complib_exit(void)
{
__cl_timer_prov_destroy();
-
- __cl_user_syshelper_exit();
}
boolean_t
diff --git a/osm/complib/cl_device.c b/osm/complib/cl_device.c
deleted file mode 100644
index b9adad1..0000000
--- a/osm/complib/cl_device.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-/*
- * Standard user mode includes
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <string.h>
-
-#include <complib/cl_types.h>
-#include <complib/cl_debug.h>
-#include <complib/cl_device.h>
-
-
-cl_status_t
-cl_open_device(
- IN cl_dev_name_t device_name,
- IN cl_dev_handle_t *p_dev_handle )
-{
- /* sanity check */
- if ( p_dev_handle == NULL)
- {
- return CL_INVALID_PARAMETER;
- }
-
- cl_dbg_out ("cl_open_device: opening device %s\n",
- device_name);
-
- *p_dev_handle = open(device_name, O_RDWR);
-
- if (*p_dev_handle < 0)
- {
- *p_dev_handle = 0;
- cl_msg_out("cl_open_dev: error opening %s (%s)\n",
- device_name, strerror(errno));
- return CL_ERROR;
- }
- else
- {
- return CL_SUCCESS;
- }
-}
-
-void
-cl_close_device(
- IN cl_dev_handle_t dev_handle )
-{
- int status = 0;
-
- status = close (dev_handle);
- if (status)
- {
- cl_msg_out("cl_close_device: error closing device (%s)\n",
- strerror(errno));
- }
- return;
-}
-
-cl_status_t
-cl_ioctl_device(
- IN cl_dev_handle_t dev_handle,
- IN uint32_t command,
- IN void *p_buf,
- IN uintn_t buf_size,
- OUT uintn_t *p_num_bytes_ret )
-{
- cl_ioctl_info_t ioctl_args;
- int retval = 0;
-
- /*
- * Fill up ioctl_args and issue a real ioctl
- */
- ioctl_args.command = command;
- ioctl_args.p_buf = p_buf;
- ioctl_args.buf_size = buf_size;
- ioctl_args.num_bytes_ret = 0; /* for now */
- ioctl_args.io_status = CL_SUCCESS; /* lets start here */
-
- retval = ioctl(dev_handle, command, &ioctl_args);
-
- if (retval != 0)
- {
- cl_msg_out("cl_ioctl_device: error (%s) issuing command (0x%x)\n",
- strerror(errno), command);
- return CL_ERROR;
- }
-
- /*
- * Set the Number of bytes returned from the Kernel.
- * The driver sets the number of bytes returned in
- * ioctl_args.num_bytes_ret
- */
- if (p_num_bytes_ret != NULL)
- {
- *p_num_bytes_ret = ioctl_args.num_bytes_ret;
- }
-
- /*
- * Return the status received from the Kernel
- */
-
- return (ioctl_args.io_status);
-}
diff --git a/osm/complib/cl_syshelper.c b/osm/complib/cl_syshelper.c
deleted file mode 100644
index f95408b..0000000
--- a/osm/complib/cl_syshelper.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-
-#include <complib/cl_types.h>
-#include <complib/cl_device.h>
-#include <complib/cl_debug.h>
-#include <complib/cl_syshelper.h>
-#include <complib/cl_waitobj.h>
-
-/*
- * Open the system helper device and prepare it for use
- */
-cl_status_t
-__cl_user_syshelper_init(void)
-{
- cl_status_t status = CL_SUCCESS;
-
- /* Nothing to do. Just a place holder */
- return status;
-}
-
-void
-__cl_user_syshelper_exit(void)
-{
- /* Nothing to do. Just a place holder */
-
- return;
-}
diff --git a/osm/complib/cl_waitobj.c b/osm/complib/cl_waitobj.c
deleted file mode 100644
index 00cc8e7..0000000
--- a/osm/complib/cl_waitobj.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-/*
- * Abstract:
- * This module defines
- *
- * Environment:
- * Linux User Mode
- *
- * $Revision: 1.5 $
- */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-
-#include <complib/cl_types.h>
-#include <complib/cl_device.h>
-#include <complib/cl_debug.h>
-#include <complib/cl_syshelper.h>
-#include <complib/cl_waitobj.h>
-#include <complib/cl_memory.h>
-
-
-cl_status_t
-cl_create_wait_object(
- IN const boolean_t auto_reset,
- OUT cl_wait_obj_handle_t *p_wait_obj_handle )
-{
- cl_status_t status = CL_SUCCESS;
- uintn_t command;
- cl_create_wait_obj_params_t ioctl_buf;
- uintn_t num_bytes_returned;
- cl_dev_handle_t device_handle;
-
- /*
- * First open sysdev to get a new FD
- */
- status = cl_open_device( SYSHELP_DEVICE_NAME, &device_handle );
- if ( status != CL_SUCCESS )
- {
- cl_msg_out( "Failed to open device %s, status (%s)\n",
- SYSHELP_DEVICE_NAME, CL_STATUS_MSG(status) );
- return status;
- }
-
- command = CREATE_WAIT_OBJ;
- ioctl_buf.auto_reset = auto_reset;
-
- status = cl_ioctl_device(device_handle,
- command,
- &ioctl_buf, /* result */
- sizeof (cl_create_wait_obj_params_t),
- &num_bytes_returned);
-
- status = (CL_SUCCESS != status) ? status : ioctl_buf.status;
-
- if ( status != CL_SUCCESS)
- {
- cl_msg_out("create_wait_object: failed to create waitobject (%s)\n",
- CL_STATUS_MSG(status) );
- return status;
- }
-
- *p_wait_obj_handle = (cl_wait_obj_handle_t)device_handle;
-
- return status;
-}
-
-cl_status_t
-cl_wait_on_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle,
- IN uint32_t wait_u_sec )
-{
- cl_status_t status = CL_SUCCESS;
- cl_wait_ioctl_params_t ioctl_params;
- uintn_t command;
- cl_dev_handle_t device_handle = (cl_dev_handle_t)wait_obj_handle;
-
- /* fill out the ioctl parameters */
- ioctl_params.wait_u_sec = wait_u_sec;
- ioctl_params.wait_status = CL_SUCCESS;
-
- command = WAITON_WAIT_OBJ;
-
- status = cl_ioctl_device(device_handle,
- command,
- &ioctl_params,
- sizeof(cl_wait_ioctl_params_t),
- NULL );
-
- if ( status != CL_SUCCESS)
- {
- cl_msg_out("wait_on_wait_object: cl_ioctl_device failed (%s)\n",
- CL_STATUS_MSG(status) );
- return status;
- }
-
- /*
- * if the ioctl returned successfully, return the status
- * of the wait
- */
-
- return (ioctl_params.wait_status);
-}
-
-cl_status_t
-cl_signal_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle )
-{
- uintn_t command;
- cl_status_t status = CL_SUCCESS;
- void *p_in_buf;
- cl_dev_handle_t device_handle = (cl_dev_handle_t)wait_obj_handle;
-
- p_in_buf = wait_obj_handle;
-
- command = TRIGGER_WAIT_OBJ;
-
- status = cl_ioctl_device(device_handle,
- command,
- &p_in_buf,
- sizeof(p_in_buf),
- NULL);
-
- if ( status != CL_SUCCESS)
- {
- cl_msg_out("trigger_wait_object: cl_ioctl_device failed (%s)\n",
- CL_STATUS_MSG(status) );
- return status;
- }
-
- return status;
-}
-
-cl_status_t
-cl_destroy_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle )
-{
- cl_status_t status = CL_SUCCESS;
- cl_dev_handle_t device_handle = (cl_dev_handle_t)wait_obj_handle;
-
- cl_close_device( device_handle );
-
- return status;
-}
-
-cl_status_t
-cl_clear_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle )
-{
- uintn_t command;
- cl_status_t status = CL_SUCCESS;
- void *p_in_buf;
- cl_dev_handle_t device_handle = (cl_dev_handle_t)wait_obj_handle;
-
- p_in_buf = wait_obj_handle;
-
- command = RESET_WAIT_OBJ;
-
- status = cl_ioctl_device(device_handle,
- command,
- &p_in_buf,
- sizeof(p_in_buf),
- NULL);
-
- if ( status != CL_SUCCESS)
- {
- cl_msg_out("clear_wait_object: cl_ioctl_device failed (%s)\n",
- CL_STATUS_MSG(status) );
- return status;
- }
-
- return status;
-}
diff --git a/osm/include/Makefile.am b/osm/include/Makefile.am
index 68e60bf..f487b30 100644
--- a/osm/include/Makefile.am
+++ b/osm/include/Makefile.am
@@ -135,8 +135,6 @@ EXTRA_DIST = \
$(srcdir)/complib/cl_qpool.h \
$(srcdir)/complib/cl_qlist.h \
$(srcdir)/complib/cl_reqmgr.h \
- $(srcdir)/complib/cl_waitobj.h \
- $(srcdir)/complib/cl_device.h \
$(srcdir)/complib/cl_vector.h \
$(srcdir)/complib/cl_byteswap_osd.h \
$(srcdir)/complib/cl_qlockpool.h \
@@ -149,7 +147,6 @@ EXTRA_DIST = \
$(srcdir)/complib/cl_list.h \
$(srcdir)/complib/cl_atomic.h \
$(srcdir)/complib/cl_map.h \
- $(srcdir)/complib/cl_syshelper.h \
$(srcdir)/complib/cl_timer.h \
$(srcdir)/complib/cl_event.h \
$(srcdir)/complib/cl_log.h \
diff --git a/osm/include/complib/cl_device.h b/osm/include/complib/cl_device.h
deleted file mode 100644
index 5cd44ef..0000000
--- a/osm/include/complib/cl_device.h
+++ /dev/null
@@ -1,712 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-
-
-/*
- * Abstract:
- * This module defines the data structure and APIs for the kernel mode
- * component of the device framework.
- *
- * Environment:
- * Linux Kernel Mode
- *
- * $Revision: 1.5 $
- */
-
-
-#ifndef _CL_DEVICE_H_
-#define _CL_DEVICE_H_
-
-
-#include <complib/cl_types.h>
-#include <complib/cl_qlist.h>
-#include <complib/cl_qmap.h>
-#include <complib/cl_waitobj.h>
-#include <linux/ioctl.h>
-#ifdef __KERNEL__
-#include <linux/mm.h>
-#endif
-
-#ifdef __cplusplus
-# define BEGIN_C_DECLS extern "C" {
-# define END_C_DECLS }
-#else /* !__cplusplus */
-# define BEGIN_C_DECLS
-# define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-
-/****h* Component Library/Device Framework
-* NAME
-* Device Framework
-*
-* DESCRIPTION
-* The device framework provides functionality exchanging information between
-* kernel mode and user mode components.
-*
-* In kernel mode, the device framework provides functionality for creating
-* devices and providing various entry points that are called when an
-* application using the user-mode device framework accesses the device.
-*
-* In user mode, the device framework provides applications with a simplified
-* device usage model, allowing access to a device created using the kernel
-* mode device framework.
-*********/
-
-
-/*
- * Generic way to define a IOCTL_CMD
- */
-
-#define IOCTL_CMD(dev_id, command) _IO((dev_id), (command))
-
-
-/****d* Component Library: Device Framework/cl_dev_name_t
-* NAME
-* cl_dev_name_t
-*
-* DESCRIPTION
-* cl_dev_name defines the name of the system device being created.
-*
-* SYNOPSIS
-*/
-typedef char *cl_dev_name_t;
-/*
-* NOTES
-* In Linux this string turns is similar to "/dev/iba0".
-*********/
-
-
-/****s* Component Library: Device Framework/cl_ioctl_info_t
-* NAME
-* cl_ioctl_info_t
-*
-* PURPOSE
-* Defines the command and the input parameters for an ioctl passed
-* in from user mode.
-*
-* SYNOPSIS
-*/
-typedef struct _cl_ioctl_info
-{
- uintn_t command; /* IOCTL Command */
- void *p_buf; /* Pointer to the input buffer */
- uintn_t buf_size; /* Size of the input buffer */
- uintn_t num_bytes_ret; /* Bytes returned by the ioctl */
- cl_status_t io_status; /* Status of the IOCTL */
-
-} cl_ioctl_info_t;
-/**********/
-
-
-#ifdef __KERNEL__
-
-/* Linux Kernel Mode */
-
-/****d* Component Library: Device Framework/cl_dev_handle_t (Kernel Mode)
-* NAME
-* cl_dev_handle_t (Kernel Mode)
-*
-* DESCRIPTION
-* Handle to an device framework created device object.
-*
-* SYNOPSIS
-*/
-typedef void *cl_dev_handle_t;
-/*********/
-
-
-/****d* Component Library: Device Framework/cl_pfn_dev_open_t
-* NAME
-* cl_pfn_dev_open_t
-*
-* DESCRIPTION
-* Prototype of the driver exported "open" function. This function
-* is called when a user mode application opens the device
-*
-* SYNOPSIS
-*/
-typedef cl_status_t
-(*cl_pfn_dev_open_t)(
- IN void *p_device_context,
- OUT void **pp_open_context );
-
-/*
-* PARAMETERS
-* p_device_context
-* [in] device specific context passed into the open function. This
-* is defined when the device is first created.
-*
-* pp_open_context
-* [out] context specific to this open. This is set by the open call
-* and is passed into the read, write, mmap, ioctl and close calls.
-*
-* RETURN VALUE
-* This function returns a status of type cl_status_t
-* TBD
-*
-* NOTES
-*
-* SEE ALSO
-* Device Framework, cl_pfn_dev_close_t, cl_pfn_dev_ioctl_t, cl_pfn_dev_mmap_t
-*************/
-
-
-/****d* Component Library: Device Framework/cl_pfn_dev_close_t
-* NAME
-* cl_pfn_dev_close_t
-*
-* DESCRIPTION
-* Prototype of the driver exported "close" function. This function
-* is called when a user mode application closes the device.
-*
-* SYNOPSIS
-*/
-typedef cl_status_t
-(*cl_pfn_dev_close_t)(
- IN void *p_device_context,
- IN void *p_open_context );
-
-/*
-* PARAMETERS
-* p_device_context
-* [in] device specific context passed into the close function. This
-* is defined when the device is first created.
-*
-* p_open_context
-* [in] context specific to this open. This is set by the open call.
-*
-* RETURN VALUE
-* This function returns a status of type cl_status_t
-* TBD
-*
-* NOTES
-*
-* SEE ALSO
-* Device Framework, cl_pfn_dev_open_t, cl_pfn_dev_ioctl_t, cl_pfn_dev_mmap_t
-*************/
-
-
-/****d* Component Library: Device Framework/cl_pfn_dev_ioctl_t
-* NAME
-* cl_pfn_dev_ioctl_t
-*
-* DESCRIPTION
-* Prototype of the driver exported "ioctl" function. This function
-* is called when a user mode application issues and IO control to
-* the device.
-*
-* SYNOPSIS
-*/
-typedef void
-(*cl_pfn_dev_ioctl_t)(
- IN void *p_device_context,
- IN void *p_open_context,
- IN OUT cl_ioctl_info_t *p_ioctl_info );
-/*
-* PARAMETERS
-* p_device_context
-* [in] device specific context passed into the open function. This
-* is created when the device is first created.
-*
-* p_open_context
-* [in] context specific to this open. This is set by the open call.
-*
-* p_ioctl_info
-* [in/out] On input contains the input parameters such as the command,
-* the input buffer and it's size. On output, contains the output
-* buffer and the number of bytes returned.
-*
-* RETURN VALUE
-* This function does not return a value.
-*
-* NOTES
-* The IOCTL completion status is returned in the status field of the
-* p_ioctl_info structure.
-*
-* If set to CL_SUCCESS, the command completed successfully. The results
-* are returned in the same buffer (p_ioclt_info->p_in_buf) and num_ret_bytes
-* are copied by the device framework into the output buffer and returned
-* back to user mode.
-*
-* If set to CL_PENDING, the command did not complete (further processing
-* required by the kernel handler). If the user application does not specify
-* an OS wait object (see cl_ioctl_info_t), the device framework will suspend
-* the execution of the current thread (put it to sleep). If a wait object is
-* provided, the device framework will return immediately. The user mode
-* application must check the status of the command and get results using
-* get_ioctl_status
-*
-* Other failure status values will cause the device framework to perform
-* all necessary cleanup for the IOCTL before returning to the user.
-*
-* The mechanism to support pending ioclts is currently not supported.
-*
-* SEE ALSO
-* Device Framework, cl_pfn_dev_open_t, cl_pfn_dev_close_t, cl_pfn_dev_mmap_t
-************/
-
-/****d* Component Library: Device Framework/cl_pfn_dev_cancel_ioctl_t
-* NAME
-* cl_pfn_dev_cancel_ioctl_t
-*
-* DESCRIPTION
-* Prototype of the driver exported "ioctl" function. This function
-* is called when a blocked ioctl is interrupted due to a signal
-*
-* SYNOPSIS
-*/
-typedef void
-(*cl_pfn_dev_cancel_ioctl_t)(
- IN void *p_device_context,
- IN void *p_open_context,
- IN cl_ioctl_info_t *p_ioctl_info );
-/*
-* PARAMETERS
-* p_device_context
-* [in] device specific context passed into the open function. This
-* is created when the device is first created.
-*
-* p_open_context
-* [in] context specific to this open. This is set by the open call.
-*
-* p_ioctl_info
-* [in] contains the kernel ioctl buffer
-*
-* RETURN VALUE
-* This function does not return a value.
-*
-* NOTES
-*
-* SEE ALSO
-* Device Framework, cl_pfn_dev_open_t, cl_pfn_dev_close_t, cl_pfn_dev_mmap_t
-************/
-
-/****d* Component Library: Device Framework/cl_pfn_dev_mmap_t
-* NAME
-* cl_pfn_dev_mmap_t
-*
-* DESCRIPTION
-* Prototype of the driver exported "mmap" function. This function
-* is called when a user mode application calls mmap on this device.
-*
-* SYNOPSIS
-*/
-typedef cl_status_t
-(*cl_pfn_dev_mmap_t)(
- IN void *p_device_context,
- IN void *p_open_context,
- IN struct vm_area_struct *p_vma );
-/*
-* PARAMETERS
-* p_device_context
-* [in] device specific context passed into the open function. This
-* is created when the device is first created.
-*
-* pp_open_context
-* [out] context specific to this open. This is set by the open call.
-*
-* RETURN VALUE
-* CL_SUCCESS if the operation was successful.
-*
-* CL_ERROR if the operation failed.
-*
-* SEE ALSO
-* Device Framework, cl_pfn_dev_open_t, cl_pfn_dev_close_t, cl_pfn_dev_ioctl_t
-************/
-
-
-/****s* Component Library: Device Framework/cl_dev_info_t
-* NAME
-* cl_dev_info_t
-*
-* DESCRIPTION
-* Provides information about for creation of a system device.
-*
-* SYNOPSIS
-*/
-typedef struct _cl_dev_info
-{
- cl_dev_name_t name; /* name of the device to create */
- void *p_device_context; /* device context */
- cl_pfn_dev_open_t pfn_open; /* open function */
- cl_pfn_dev_close_t pfn_close; /* close function */
- cl_pfn_dev_ioctl_t pfn_ioctl; /* ioctl function */
- cl_pfn_dev_cancel_ioctl_t pfn_cancel_ioctl; /* cancel ioctl function */
- cl_pfn_dev_mmap_t pfn_mmap; /* mmap function */
- uint32_t max_use_count; /* maximum usage count */
-
-} cl_dev_info_t;
-/*
-* FIELDS
-* name
-* Name of the device to create.
-*
-* p_device_context
-* Device context.
-*
-* pfn_open
-* open function.
-*
-* pfn_close
-* close function.
-*
-* pfn_ioctl
-* ioctl function.
-*
-* pfn_mmap
-* mmap function.
-*
-* max_use_count
-* maximum usage count.
-*
-* NOTES
-* The consumer of the device framework defines the name of the device,
-* a device context and various handlers and registers with the device
-* framework.
-*
-* SEE ALSO
-* Device Framework, cl_pfn_dev_open_t, cl_pfn_dev_close_t,
-* cl_pfn_dev_ioctl_t, cl_pfn_dev_mmap_t
-**********/
-
-
-/****f* Component Library: Device Framework/cl_dev_create
-* NAME
-* cl_dev_create
-*
-* DESCRIPTION
-* This function creates a device accessible from a user mode application.
-* The device (a character device) can be accessed by opening it.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_dev_create(
- IN cl_dev_info_t *p_dev_info,
- OUT cl_dev_handle_t *ph_dev );
-/*
-* PARAMETERS
-* p_dev_info
-* [in] Pointer to the structure containing information about
-* the system device that needs to be created.
-*
-* ph_dev
-* [out] Handle to the created system device.
-*
-* RETURN VALUE
-* CL_SUCCESS
-* The device is created successfully.
-*
-* CL_INVALID_PARAMETER
-* An input parameter was invalid.
-*
-* CL_ERROR
-* The function failed to create a device.
-*
-* SEE ALSO
-* Device Framework, cl_delete_device
-*********/
-
-/****d* Component Library: Device Framework/cl_delete_device
-* NAME
-* cl_delete_device
-*
-* DESCRIPTION
-* Delete a system device.
-*
-* SYNOPSIS
-*/
-void
-cl_dev_destroy(
- IN cl_dev_handle_t h_dev );
-/*
-* PARAMETERS
-* h_dev
-* [in] handle to the system device. This is returned by cl_dev_create.
-*
-* RETURN VALUE
-* This function does not return a value.
-*
-* SEE ALSO
-* Device Framework, cl_dev_create
-*********/
-
-
-/****d* Component Library: Device Framework/cl_complete_io
-* NAME
-* cl_complete_io
-*
-* DESCRIPTION
-* This function is used by the driver ioctl handler to indicate that a
-* pending ioctl command has completed. The device framework uses this
-* "notification" to wake up the blocked user mode thread and complete
-* the ioctl. The user mode thread is blocked when the driver ioctl handler
-* returns CL_PENDING (cannot complete the ioclt command immediately).
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_complete_io(
- IN cl_ioctl_info_t *p_ioctl_info );
-/*
-* PARAMETERS
-* p_ioctl_info
-* [in] Pointer to the kernel ioctl info structure that was passed in
-* by the device framework into the ioctl handler.
-*
-* RETURN VALUE
-* CL_SUCCESS
-* Completed pending ioctl operation from a previous ioctl command
-* successfully.
-*
-* CL_INVALID_PARAMETER
-* The p_ioctl_info parameter was not valid.
-*
-* NOTES
-* When the kernel ioctl handler returns CL_PENDING for a command, the
-* user mode application is blocked (if the OS wait object is NULL) or
-* returned with CL_PENDING (if a wait object is specified). If a wait
-* object is specified, the wait object is now signaled and the user mode
-* application needs to call get_ioctl_status() to get results of the
-* ioctl command (This isn't supported yet). If the OS wait object isn't
-* specified, and the user mode application was blocked by the driver
-* framework, it is unblocked now and returned.
-*
-* SEE ALSO
-* Device Framework, cl_dev_create, cl_delete_device.
-*********/
-
-
-/****f* Component Library: Device Framework/cl_dev_init
-* NAME
-* cl_dev_init
-*
-* DESCRIPTION
-* Initialize internal data structures for creating and managing system
-* devices and this framework.
-*
-* SYNOPSIS
-*/
-cl_status_t
-__cl_dev_frmwk_init(void);
-/*
-* RETURN VALUE
-* CL_SUCCESS
-* If the system device framework was initialized successfully.
-*
-* CL_INSUFFICIENT_RESOURCES
-* Failed to allocate/acquire some system resource.
-*
-* NOTES
-* This function is called by drivers needing to use the driver framework.
-* For instance, the driver might need to support IOCTL calls.
-*
-* SEE ALSO
-* Device Framework, cl_dev_destroy
-*********/
-
-/****f* Component Library: Device Framework/cl_dev_destroy
-* NAME
-* cl_dev_destroy
-*
-* DESCRIPTION
-* Cleanup all internal data structures, created in system_dev_init,
-* to support system devices and this framework
-*
-* SYNOPSIS
-*/
-void
-__cl_dev_frmwk_destroy(void);
-/*
-* RETURN VALUE
-* This function does not return a value.
-*
-* NOTES
-* This function is called by a driver that needed device framework support
-* and called system_dev_init. This function cleans up everything allocated
-* in system_dev_init.
-*
-* SEE ALSO
-* Device Framework, cl_dev_init
-*********/
-
-cl_status_t
-cl_get_open_context(
- IN int fd,
- OUT void** p_open_context,
- OUT cl_dev_info_t** p_dev_info );
-
-
-#else /* __KERNEL__ */
-
-/* Linux User Mode */
-
-
-/****d* Component Library: Device Framework/cl_dev_handle_t (User Mode)
-* NAME
-* cl_dev_handle_t (User Mode)
-*
-* DESCRIPTION
-* Handle to an device framework created device object.
-*
-* SYNOPSIS
-*/
-typedef intn_t cl_dev_handle_t;
-/*********/
-
-
-/****f* Component Library: Device Framework/cl_open_device
-* NAME
-* cl_open_device
-*
-* DESCRIPTION
-* Opens a system device. A user mode application needs to open a device
-* and use the returned device handle to use the device.
-*
-* The device must be closed when the application has finished using the
-* device.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_open_device(
- IN cl_dev_name_t device_name,
- OUT cl_dev_handle_t *ph_dev );
-
-/*
-* PARAMETERS
-* device_name
-* [in] Name of the device to open. This is the same name that was used to
-* create the kernel mode device.
-*
-* ph_dev
-* [out] pointer to the location that holds the device handle. This handle
-* is used to reference this device in other calls like cl_close_device etc.
-*
-* RETURN VALUE
-* CL_SUCCESS
-* The open call succeeded.
-*
-* CL_INVALID_PARAMETER
-* The consumer passed in an invalid parameter.
-*
-* CL_ERROR
-* The device does not exist, open failed.
-*
-* NOTES
-* A kernel driver must use the kernel mode device framework to create this
-* device before it can be opened.
-*
-* SEE ALSO
-* Device Framework, cl_close_device, cl_iocl_device.
-********/
-
-
-/****f* Component Library: Device Framework/cl_close_device
-* NAME
-* cl_close_device
-*
-* DESCRIPTION
-* Closes an open system device.
-*
-* SYNOPSIS
-*/
-void
-cl_close_device(
- IN cl_dev_handle_t h_dev );
-
-/*
-* PARAMETERS
-* h_dev
-* [in] Handle to an open device returned by a previous call
-* to cl_open_device.
-*
-* RETURN VALUE
-* This function does not return a value.
-*
-* SEE ALSO
-* cl_open_device, cl_ioctl_device
-********/
-
-
-/****f* Component Library: Device Framework/cl_ioctl_device
-* NAME
-* cl_ioctl_device
-*
-* DESCRIPTION
-* Issue an io control (ioctl) operation to a device. The device must
-* be opened before this can be done.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_ioctl_device(
- IN cl_dev_handle_t dev_handle,
- IN uint32_t command,
- IN void *p_buf,
- IN uintn_t buf_size,
- OUT uintn_t *p_num_bytes_ret );
-/*
-* PARAMETERS
-* dev_handle
-* [in] Handle to an open device. Returned by cl_open_device.
-* command
-* [in] The ioctl command for the kernel handler.
-* p_buf
-* [in] pointer to the input buffer to pass arguments to the kernel
-* handler. The same buffer will hold the results too.
-* buf_size
-* [in] size of the previous argument (p_buf).
-* p_num_bytes_ret
-* [in] actual number of bytes returned in the output buffer by the
-* kernel handler.
-*
-* RETURN VALUE
-* The ioctl status returned by the kernel handler.
-*
-* SEE ALSO
-* Device Framework, cl_open_device, cl_close_device.
-********/
-
-#endif // __KERNEL__
-
-END_C_DECLS
-
-#endif // _CL_DEVICE_H_
diff --git a/osm/include/complib/cl_syshelper.h b/osm/include/complib/cl_syshelper.h
deleted file mode 100644
index 36ed206..0000000
--- a/osm/include/complib/cl_syshelper.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-
-
-/*
- * Abstract:
- * This header file defines data structures and APIs for the system helper
- * module of the component library.
- *
- * Environment:
- * Linux Kernel and User Mode.
- *
- * $Revision: 1.7 $
- */
-
-
-#ifndef _CL_SYSHELPER_H_
-#define _CL_SYSHELPER_H_
-
-/****h* Component Library/System Helper
-* NAME
-* System Helper
-*
-* DESCRIPTION
-* Provides ioctl support and handle validation for wait objects.
-*
-********/
-
-#ifdef __KERNEL__
-
-#include <linux/ioctl.h>
-#include <linux/mm.h>
-
-#endif //__KERNEL__
-
-#include <complib/cl_types.h>
-#include <complib/cl_list.h>
-#include <complib/cl_qlist.h>
-#include <complib/cl_event.h>
-#include <complib/cl_qmap.h>
-#include <complib/cl_passivelock.h>
-#include <complib/cl_spinlock.h>
-
-#ifdef __cplusplus
-# define BEGIN_C_DECLS extern "C" {
-# define END_C_DECLS }
-#else /* !__cplusplus */
-# define BEGIN_C_DECLS
-# define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-#define SYSHELP_DEVICE_NAME "/dev/cl_dev"
-#define SYSDEV_KEY '#'
-
-#ifdef __KERNEL__
-
-/****f* Component Library: System Helper/__cl_syshelper_init
-* NAME
-* __cl_syshelper_init
-*
-* DESCRIPTION
-* Initializes the system helper data structures and prepares it
-* for use.
-*
-* SYNOPSIS
-*/
-cl_status_t
-__cl_syshelper_init(void);
-
-/*
-* PARAMETERS
-* None.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The initialization completed successfully.
-* CL_ERROR
-* Could not create the device.
-*
-* NOTES
-*
-* SEE ALSO
-* __cl_syshelper_exit
-********/
-
-/****f* Component Library: System Helper/__cl_syshelper_exit
-* NAME
-* __cl_syshelper_exit
-*
-* DESCRIPTION
-* Releases the resources used by syshelper and destroys the device.
-*
-* SYNOPSIS
-*/
-void
-__cl_syshelper_exit(void);
-
-/*
-* PARAMETERS
-* None
-*
-* RETURN VALUES
-* None.
-*
-* NOTES
-*
-* SEE ALSO
-* __cl_syshelper_init
-*********/
-
-#else // __KERNEL__
-
-/*
- * User mode only
- */
-
-/****f* Component Library: System Helper/__cl_user_syshelper_init
-* NAME
-* __cl_user_syshelper_init
-*
-* DESCRIPTION
-* Initialize the system helper in user mode.
-*
-* SYNOPSIS
-*/
-cl_status_t
-__cl_user_syshelper_init(void);
-/*
-* PARAMETERS
-* None.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The initialization completed successfully.
-*
-* NOTES
-*
-* SEE ALSO
-*****/
-
-/****f* Component Library: System Helper/__cl_user_syshelper_exit
-* NAME
-* __cl_user_syshelper_exit
-*
-* DESCRIPTION
-* Cleanup the system helper in user mode.
-*
-* SYNOPSIS
-*/
-void
-__cl_user_syshelper_exit(void);
-/*
-* PARAMETERS
-* None.
-*
-* RETURN VALUES
-* None.
-*
-* NOTES
-*
-* SEE ALSO
-******/
-
-#endif // __KERNEL__
-
-/*
- * Shared between user and kernel mode.
- */
-
-/****d* Component Library: System Helper/cl_syshelper_ops_t
-* NAME
-* syshelper_ops_t
-*
-* DESCRIPTION
-*
-* SYNOPSIS
-*/
-typedef enum cl_syshelper_ops
-{
- create_wait_obj = 1,
- waiton_wait_obj,
- trigger_wait_obj,
- reset_wait_obj,
- syshelp_ioctl_max /* always at the end of the list */
-
-} cl_syshelper_ops_t;
-/**********/
-
-/*
- * Various Opration Allowable on the System Helper
- */
-#define CREATE_WAIT_OBJ \
- IOCTL_CMD(SYSDEV_KEY, create_wait_obj)
-#define WAITON_WAIT_OBJ \
- IOCTL_CMD(SYSDEV_KEY, waiton_wait_obj)
-#define TRIGGER_WAIT_OBJ \
- IOCTL_CMD(SYSDEV_KEY, trigger_wait_obj)
-#define RESET_WAIT_OBJ \
- IOCTL_CMD(SYSDEV_KEY, reset_wait_obj)
-END_C_DECLS
-
-#endif //_CL_SYSHELPER_H_
diff --git a/osm/include/complib/cl_waitobj.h b/osm/include/complib/cl_waitobj.h
deleted file mode 100644
index 58dd938..0000000
--- a/osm/include/complib/cl_waitobj.h
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
- * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-
-
-/*
- * Abstract:
- * This header file defines the data structures and APIs for implementing
- * wait objects.
- *
- * Environment:
- * Linux Kernel Mode
- *
- * $Revision: 1.7 $
- */
-
-#ifndef _CL_WAITOBJ_H_
-#define _CL_WAITOBJ_H_
-
-#ifdef __cplusplus
-# define BEGIN_C_DECLS extern "C" {
-# define END_C_DECLS }
-#else /* !__cplusplus */
-# define BEGIN_C_DECLS
-# define END_C_DECLS
-#endif /* __cplusplus */
-
-BEGIN_C_DECLS
-
-/****h* Component Library/Wait Objects
-* NAME
-* Wait Object
-*
-* DESCRIPTION
-* The Wait Object provides the capability for a user mode process to
-* create and wait on a kernel event. An action on a wait object can
-* be done from both a user mode thread as well as a kernel thread.
-*
-******/
-
-#include <complib/cl_types.h>
-
-/****d* Component Library: Wait Objects/cl_wait_obj_handle_t
-* NAME
-* cl_wait_obj_handle_t
-*
-* DESCRIPTION
-* Defines the handle for an OS wait object.
-*
-* SYNOPSIS
-*/
-typedef void *cl_wait_obj_handle_t;
-/*
-*
-******/
-
-/****i* Component Library: Wait Objects/cl_wait_ioctl_params_t
-* NAME
-* cl_wait_ioctl_params
-*
-* DESCRIPTION
-* Defines parameters for the ioctl call to implement wait objects
-*
-* SYNOPSIS
-*/
-typedef struct cl_wait_ioctl_params
-{
- uint32_t wait_u_sec;
- cl_status_t wait_status;
-
-} cl_wait_ioctl_params_t;
-/*
-*
-******/
-
-/****i* Component Library: Wait Objects/cl_create_wait_obj_params_t
-* NAME
-* cl_create_wait_obj_params
-*
-* DESCRIPTION
-* Defines parameters for the ioctl call to create wait objects
-*
-* SYNOPSIS
-*/
-typedef struct cl_create_wait_obj_params
-{
- // Input
- boolean_t auto_reset;
- // Output
- cl_status_t status;
-
-} cl_create_wait_obj_params_t;
-/*
-*
-******/
-
-
-#if defined(__KERNEL__)
-/*
- * Kernel Mode Support for Wait Objects
- */
-
-/* Internal helper functions for wait object */
-
-cl_status_t
-__cl_create_wait_object(
- IN boolean_t auto_reset,
- OUT cl_wait_obj_handle_t *p_wait_obj_handle);
-
-cl_status_t
-__cl_wait_on_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle,
- IN uint32_t wait_u_sec );
-
-cl_status_t
-__cl_signal_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle);
-
-cl_status_t
-__cl_clear_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle);
-
-cl_status_t
-__cl_destroy_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle);
-
-
-/****i* Component Library: Wait Objects/cl_get_kernel_wait_object
-* NAME
-* cl_get_kernel_wait_object
-*
-* DESCRIPTION
-* cl_get_kernel_wait_object -- Validates the wait object handle and
-* returns the kernel wait object handle.
-*
-* SYNOPSIS
-*/
-cl_wait_obj_handle_t
-cl_get_kernel_wait_object(
- IN cl_wait_obj_handle_t user_mode_handle );
-/*
-* PARAMETERS
-* user_mode_handle
-* A handle to the wait object passed from user mode.
-*
-* RETURN VALUES
-* On successful validation, returns the kernel wait object handle.
-* Kernel threads use this handle to do any appropriate action
-* on this wait object.
-* On failure, returns NULL.
-*
-* NOTES
-* This API is used only in the kernel.
-*
-* SEE ALSO
-* cl_create_wait_object, cl_destroy_wait_object, cl_wait_on_wait_object,
-* cl_signal_wait_object, cl_clear_wait_object.
-*
-******/
-
-/******/
-
-#endif //__KERNEL__
-
-/*
- * Shared between user and kernel mode
- */
-
-/****f* Component Library: Wait Objects/cl_create_wait_object
-* NAME
-* cl_create_wait_object
-*
-* DESCRIPTION
-* cl_create_wait_object -- Creates a wait object.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_create_wait_object(
- IN const boolean_t auto_reset,
- OUT cl_wait_obj_handle_t *p_wait_obj_handle );
-/*
-* PARAMETERS
-* auto_reset
-* Specifies whether the signaled state should be reset automatically
-* or manually. If set to TRUE, the state will be reset automatically.
-* p_wait_obj_handle
-* On successful creation, returns the wait object handle.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The wait object was created successfully.
-* CL_ERROR
-* The wait object creation failed.
-* NOTES
-* Used in both kernel mode as well as user mode.
-*
-* SEE ALSO
-* cl_destroy_wait_object, cl_wait_on_wait_object,
-* cl_signal_wait_object, cl_clear_wait_object.
-*
-******/
-
-/****f* Component Library: Wait Objects/cl_destroy_wait_object
-* NAME
-* cl_destroy_wait_object
-*
-* DESCRIPTION
-* cl_destroy_wait_object -- Destroys a wait object.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_destroy_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle );
-/*
-* PARAMETERS
-* wait_obj_handle
-* A handle to the wait object that needs to be destroyed.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The wait object handle is destroyed.
-* NOTES
-* Used in both kernel mode as well as user mode.
-*
-* SEE ALSO
-* cl_create_wait_object, cl_wait_on_wait_object,
-* cl_signal_wait_object, cl_clear_wait_object.
-*
-*********/
-
-/****f* Component Library: Wait Objects/cl_wait_on_wait_object
-* NAME
-* cl_wait_on_wait_object
-* DESCRIPTION
-* cl_wait_on_wait_object -- Wait on this wait object until signalled
-* or timed out.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_wait_on_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle,
- IN uint32_t wait_u_sec );
-/*
-* PARAMETERS
-* wait_obj_handle
-* A handle to the wait object that the thread needs to be wait on.
-* wait_u_sec
-* The number of micro seconds to wait before timing out.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The wait completed successfully and the event is signalled.
-* CL_ERROR
-* Some error happened during the wait.
-* CL_NOT_DONE
-* The wait got interrupted due to some signal.
-* CL_TIMEOUT
-* The wait timed out.
-*
-* NOTES
-* Used in both kernel mode as well as user mode.
-*
-* SEE ALSO
-* cl_create_wait_object, cl_destroy_wait_object,
-* cl_signal_wait_object, cl_clear_wait_object.
-*
-*********/
-
-/****f* Component Library: Wait Objects/cl_signal_wait_object
-* NAME
-* cl_signal_wait_object
-*
-* DESCRIPTION
-* cl_signal_wait_object -- Signal the wait object. The thread
-* that is waiting on this will be woken up.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_signal_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle );
-/*
-* PARAMETERS
-* wait_obj_handle
-* A handle to the wait object that needs to be signaled.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The wait object is successfully signaled.
-*
-* NOTES
-* Used in both kernel mode as well as user mode.
-*
-* SEE ALSO
-* cl_create_wait_object, cl_destroy_wait_object,
-* cl_wait_on_wait_object, cl_clear_wait_object.
-*
-*********/
-
-/****f* Component Library: Wait Objects/cl_clear_wait_object
-* NAME
-* cl_clear_wait_object
-*
-* DESCRIPTION
-* cl_clear_wait_object -- Clear the signaled state of a wait object
-* and reset it.
-*
-* SYNOPSIS
-*/
-cl_status_t
-cl_clear_wait_object(
- IN cl_wait_obj_handle_t wait_obj_handle );
-/*
-* PARAMETERS
-* wait_obj_handle
-* A handle to the wait object whose state needs to be reset.
-*
-* RETURN VALUES
-* CL_SUCCESS
-* The wait object is reset successfully.
-*
-* NOTES
-* Used in both kernel mode as well as user mode.
-*
-* SEE ALSO
-* cl_create_wait_object, cl_destroy_wait_object,
-* cl_wait_on_wait_object, cl_signal_wait_object.
-*
-*********/
-
-END_C_DECLS
-
-#endif // _CL_WAITOBJ_H_
More information about the general
mailing list