00001 /* 00002 * Copyright (c) 2007 Josef Cejka 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 00009 * - Redistributions of source code must retain the above copyright 00010 * notice, this list of conditions and the following disclaimer. 00011 * - Redistributions in binary form must reproduce the above copyright 00012 * notice, this list of conditions and the following disclaimer in the 00013 * documentation and/or other materials provided with the distribution. 00014 * - The name of the author may not be used to endorse or promote products 00015 * derived from this software without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00018 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00019 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00020 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00021 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00022 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00023 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00024 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00025 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00026 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00027 */ 00028 00033 #ifndef DEVMAP_DEVMAP_H_ 00034 #define DEVMAP_DEVMAP_H_ 00035 00036 #include <ipc/common.h> 00037 00038 #define DEVMAP_NAME_MAXLEN 255 00039 00040 typedef sysarg_t devmap_handle_t; 00041 00042 typedef enum { 00043 DEV_HANDLE_NONE, 00044 DEV_HANDLE_NAMESPACE, 00045 DEV_HANDLE_DEVICE 00046 } devmap_handle_type_t; 00047 00048 typedef enum { 00049 DEVMAP_DRIVER_REGISTER = IPC_FIRST_USER_METHOD, 00050 DEVMAP_DRIVER_UNREGISTER, 00051 DEVMAP_DEVICE_REGISTER, 00052 DEVMAP_DEVICE_UNREGISTER, 00053 DEVMAP_DEVICE_GET_HANDLE, 00054 DEVMAP_NAMESPACE_GET_HANDLE, 00055 DEVMAP_HANDLE_PROBE, 00056 DEVMAP_NULL_CREATE, 00057 DEVMAP_NULL_DESTROY, 00058 DEVMAP_GET_NAMESPACE_COUNT, 00059 DEVMAP_GET_DEVICE_COUNT, 00060 DEVMAP_GET_NAMESPACES, 00061 DEVMAP_GET_DEVICES 00062 } devmap_request_t; 00063 00070 typedef enum { 00072 DEVMAP_DRIVER = 1, 00074 DEVMAP_CLIENT, 00077 DEVMAP_CONNECT_TO_DEVICE 00078 } devmap_interface_t; 00079 00080 typedef struct { 00081 devmap_handle_t handle; 00082 char name[DEVMAP_NAME_MAXLEN + 1]; 00083 } dev_desc_t; 00084 00085 #endif