00001 /* $Id: dm_generic.h 31603 2008-05-12 06:54:17Z adam $ */ 00002 /*****************************************************************************/ 00011 /*****************************************************************************/ 00012 00013 /* (c) 2003 Technische Universitaet Dresden 00014 * This file is part of DROPS, which is distributed under the terms of the 00015 * GNU General Public License 2. Please see the COPYING file for details. 00016 */ 00017 00018 #ifndef _DM_GENERIC_DM_GENERIC_H 00019 #define _DM_GENERIC_DM_GENERIC_H 00020 00021 /* L4/L4Env includes */ 00022 #include <l4/sys/types.h> 00023 #include <l4/env/cdefs.h> 00024 00025 /* DMgeneric includes */ 00026 #include <l4/dm_generic/dm_generic-client.h> 00027 #include <l4/dm_generic/types.h> 00028 #include <l4/dm_generic/consts.h> 00029 00030 /***************************************************************************** 00031 *** prototypes 00032 *****************************************************************************/ 00033 00034 __BEGIN_DECLS; 00035 00036 /*****************************************************************************/ 00068 /*****************************************************************************/ 00069 L4_CV int 00070 l4dm_map_pages(const l4dm_dataspace_t * ds, l4_offs_t offs, l4_size_t size, 00071 l4_addr_t rcv_addr, int rcv_size2, l4_offs_t rcv_offs, 00072 l4_uint32_t flags, l4_addr_t * fpage_addr, 00073 l4_size_t * fpage_size); 00074 00075 /*****************************************************************************/ 00100 /*****************************************************************************/ 00101 L4_CV int 00102 l4dm_map_ds(const l4dm_dataspace_t *ds, l4_offs_t offs, 00103 l4_addr_t addr, l4_size_t size, l4_uint32_t flags); 00104 00105 /*****************************************************************************/ 00140 /*****************************************************************************/ 00141 L4_CV int 00142 l4dm_map(const void * ptr, l4_size_t size, l4_uint32_t flags); 00143 00144 /*****************************************************************************/ 00157 /*****************************************************************************/ 00158 L4_CV int 00159 l4dm_close(const l4dm_dataspace_t * ds); 00160 00161 /*****************************************************************************/ 00181 /*****************************************************************************/ 00182 int 00183 l4dm_close_all(l4_threadid_t dsm_id, l4_threadid_t client, l4_uint32_t flags); 00184 00185 /*****************************************************************************/ 00207 /*****************************************************************************/ 00208 L4_CV int 00209 l4dm_share(const l4dm_dataspace_t * ds, 00210 l4_threadid_t client, l4_uint32_t rights); 00211 00212 /*****************************************************************************/ 00233 /*****************************************************************************/ 00234 int 00235 l4dm_revoke(const l4dm_dataspace_t * ds, 00236 l4_threadid_t client, l4_uint32_t rights); 00237 00238 /*****************************************************************************/ 00256 /*****************************************************************************/ 00257 L4_CV int 00258 l4dm_check_rights(const l4dm_dataspace_t * ds, l4_uint32_t rights); 00259 00260 /*****************************************************************************/ 00274 /*****************************************************************************/ 00275 L4_CV int 00276 l4dm_transfer(const l4dm_dataspace_t * ds, l4_threadid_t new_owner); 00277 00278 /*****************************************************************************/ 00302 /*****************************************************************************/ 00303 L4_CV int 00304 l4dm_copy(const l4dm_dataspace_t * ds, l4_uint32_t flags, const char * name, 00305 l4dm_dataspace_t * copy); 00306 00307 /*****************************************************************************/ 00337 /*****************************************************************************/ 00338 int 00339 l4dm_copy_long(const l4dm_dataspace_t * ds, l4_offs_t src_offs, 00340 l4_offs_t dst_offs, l4_size_t num, l4_uint32_t flags, 00341 const char * name, l4dm_dataspace_t * copy); 00342 00343 /*****************************************************************************/ 00356 /*****************************************************************************/ 00357 L4_CV int 00358 l4dm_ds_set_name(const l4dm_dataspace_t * ds, const char * name); 00359 00360 /*****************************************************************************/ 00372 /*****************************************************************************/ 00373 L4_CV int 00374 l4dm_ds_get_name(const l4dm_dataspace_t * ds, char * name); 00375 00376 /*****************************************************************************/ 00383 /*****************************************************************************/ 00384 L4_CV void 00385 l4dm_ds_show(const l4dm_dataspace_t * ds); 00386 00387 /*****************************************************************************/ 00403 /*****************************************************************************/ 00404 L4_CV int 00405 l4dm_ds_list(l4_threadid_t dsm_id, l4_threadid_t owner, l4_uint32_t flags); 00406 00407 /*****************************************************************************/ 00419 /*****************************************************************************/ 00420 L4_CV int 00421 l4dm_ds_list_all(l4_threadid_t dsm_id); 00422 00423 __END_DECLS; 00424 00425 #endif /* !_DM_GENERIC_DM_GENERIC_H */