Introduction   User API Reference   DSMlib Reference   IDL Interface   File List   Index  

dm_mem.h

Go to the documentation of this file.
00001 /* $Id: dm_mem.h 31620 2008-05-14 13:33:50Z 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_MEM_DM_MEM_H
00019 #define _DM_MEM_DM_MEM_H
00020 
00021 /* L4/L4Env includes */
00022 #include <l4/sys/types.h>
00023 #include <l4/env/cdefs.h>
00024 #include <l4/l4rm/l4rm.h>               /* we also use some L4RM constants */
00025 #include <l4/dm_generic/dm_generic.h>
00026 
00027 /* DMmem includes */
00028 #include <l4/dm_mem/dm_mem-client.h>
00029 
00030 /*****************************************************************************
00031  *** typedefs
00032  *****************************************************************************/
00033 
00038 typedef struct l4dm_mem_addr
00039 {
00040   l4_addr_t addr;   
00041   l4_size_t size;   
00042 } l4dm_mem_addr_t;
00043 
00044 /*****************************************************************************
00045  *** prototypes
00046  *****************************************************************************/
00047 
00048 __BEGIN_DECLS;
00049 
00050 /*****************************************************************************/
00075 /*****************************************************************************/ 
00076 L4_CV int
00077 l4dm_mem_open(l4_threadid_t dsm_id, l4_size_t size, l4_addr_t align,
00078         l4_uint32_t flags, const char * name,
00079         l4dm_dataspace_t * ds);
00080 
00081 /*****************************************************************************/
00095 /*****************************************************************************/ 
00096 L4_CV int
00097 l4dm_mem_size(const l4dm_dataspace_t * ds, l4_size_t * size);
00098 
00099 /*****************************************************************************/
00120 /*****************************************************************************/ 
00121 L4_CV int
00122 l4dm_mem_resize(const l4dm_dataspace_t * ds, l4_size_t new_size);
00123 
00124 /*****************************************************************************/
00143 /*****************************************************************************/ 
00144 L4_CV int
00145 l4dm_mem_info(const l4dm_dataspace_t * ds, l4_size_t * size,
00146         l4_threadid_t *owner, char * name, l4_uint32_t *next_id);
00147 
00148 /*****************************************************************************/
00174 /*****************************************************************************/ 
00175 L4_CV int
00176 l4dm_mem_ds_phys_addr(const l4dm_dataspace_t * ds, l4_offs_t offset,
00177                       l4_size_t size, l4_addr_t * paddr, l4_size_t * psize);
00178 
00179 /*****************************************************************************/
00205 /*****************************************************************************/ 
00206 L4_CV int
00207 l4dm_mem_phys_addr(const void * ptr, l4_size_t size, l4dm_mem_addr_t addrs[],
00208        int num, l4_size_t * psize);
00209 
00210 /*****************************************************************************/
00219 /*****************************************************************************/ 
00220 L4_CV int
00221 l4dm_mem_ds_is_contiguous(const l4dm_dataspace_t * ds);
00222 
00223 /*****************************************************************************/
00242 /*****************************************************************************/ 
00243 L4_CV int
00244 l4dm_mem_ds_lock(const l4dm_dataspace_t * ds,
00245                  l4_offs_t offset, l4_size_t size);
00246 
00247 /*****************************************************************************/
00263 /*****************************************************************************/ 
00264 L4_CV int
00265 l4dm_mem_ds_unlock(const l4dm_dataspace_t * ds,
00266                    l4_offs_t offset, l4_size_t size);
00267 
00268 /*****************************************************************************/
00287 /*****************************************************************************/ 
00288 L4_CV int
00289 l4dm_mem_lock(const void * ptr, l4_size_t size);
00290 
00291 /*****************************************************************************/
00307 /*****************************************************************************/ 
00308 L4_CV int
00309 l4dm_mem_unlock(const void * ptr, l4_size_t size);
00310 
00311 /*****************************************************************************/
00334 /*****************************************************************************/ 
00335 L4_CV void *
00336 l4dm_mem_allocate(l4_size_t size, l4_uint32_t flags);
00337 
00338 /*****************************************************************************/
00362 /*****************************************************************************/ 
00363 L4_CV void *
00364 l4dm_mem_allocate_named(l4_size_t size, l4_uint32_t flags, const char * name);
00365 
00366 /*****************************************************************************/
00391 /*****************************************************************************/ 
00392 L4_CV void *
00393 l4dm_mem_ds_allocate(l4_size_t size, l4_uint32_t flags, l4dm_dataspace_t * ds);
00394 
00395 /*****************************************************************************/
00421 /*****************************************************************************/
00422 L4_CV void *
00423 l4dm_mem_ds_allocate_named(l4_size_t size, l4_uint32_t flags,
00424                            const char * name, l4dm_dataspace_t * ds);
00425 
00426 /*****************************************************************************/
00453 /*****************************************************************************/ 
00454 L4_CV void *
00455 l4dm_mem_ds_allocate_named_dsm(l4_size_t size, l4_uint32_t flags,
00456                                const char * name, l4_threadid_t dsm_id,
00457                                l4dm_dataspace_t * ds);
00458 
00459 /*****************************************************************************/
00468 /*****************************************************************************/ 
00469 L4_CV void
00470 l4dm_mem_release(const void * ptr);
00471 
00472 __END_DECLS;
00473 
00474 #endif /* !_DM_MEM_DM_MEM_H */

DMphys Reference Manual, written by Lars Reuther  © 2000-2003