source: trunk/libs/mini-libc/mman.h @ 684

Last change on this file since 684 was 623, checked in by alain, 5 years ago

Introduce three new types of vsegs (KCODE,KDATA,KDEV)
to map the kernel vsegs in the process VSL and GPT.
This now used by both the TSAR and the I86 architectures.

File size: 3.0 KB
Line 
1/*
2 * mman.h - User level <mman> library definition.
3 *
4 * Author     Alain Greiner (2016,2017,2018)
5 *
6 * Copyright (c) UPMC Sorbonne Universites
7 *
8 * This file is part of ALMOS-MKH.
9 *
10 * ALMOS-MKH is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; version 2.0 of the License.
13 *
14 * ALMOS-MKH is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with ALMOS-MKH; if not, write to the Free Software Foundation,
21 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24#ifndef _MMAN_H_
25#define _MMAN_H_
26
27/*****************************************************************************************
28 * This file defines the user level, memory mapping related <mman> library.
29 * All these functions make a system call to access the calling thread VMM.
30 * The user/kernel shared structures and mnemonics are defined in
31 * the <syscalls/shared_include/shared_mman.h> file.
32 ****************************************************************************************/
33
34#include <shared_mman.h>
35
36/*****************************************************************************************
37 * This function map physical memory (or a file) for a new vseg in the calling thread
38 * virtual space, as defined by the arguments.
39 *****************************************************************************************
40 * @ addr    : requested address in virtual space / unsupported : should be NULL.
41 * @ length  : requested number of bytes.
42 * @ prot    : access mode bit vector (PROT_EXEC / PROT_READ / PROT_WRITE)
43 * @ flags   : bit_vector (MAP_FILE / MAP_ANON / MAP_REMOTE / MAP_PRIVATE / MAP_SHARED)
44 * @ fdid    : file descriptor index (if MAP_FILE).
45 * @ offset  : offset in file (if MAP_FILE).
46 * @ returns base address in virtual space / returns NULL if failure.
47 ****************************************************************************************/
48void * mmap( void         * addr,
49             unsigned int   length,
50             int            prot,
51             int            flags,
52             int            fd,
53             unsigned int   offset );
54
55/*****************************************************************************************
56 * This function unmap an existing mapping in the calling thread virtual space,
57 * as defined by the <vaddr> and <size> arguments.
58 *****************************************************************************************
59 * @ addr    : address in virtual space / unused : should be NULL.
60 * @ size    : requested number of bytes.
61 * @ return 0 if success / return -1 if failure.
62 ****************************************************************************************/
63int munmap( void         * addr,
64            unsigned int   size );
65
66#endif
Note: See TracBrowser for help on using the repository browser.