source: trunk/kernel/fs/ramfs.c @ 623

Last change on this file since 623 was 623, checked in by alain, 3 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: 1.8 KB
Line 
1/*
2 * ramfs.c  RAMFS file system API implementation.
3 *
4 * Authors   Mohamed Lamine Karaoui (2014,2015)
5 *           Alain Greiner (2016,2017)
6 *
7 * Copyright (c) UPMC Sorbonne Universites
8 *
9 * This file is part of ALMOS-MKH.
10 *
11 * ALMOS-MKH is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; version 2.0 of the License.
14 *
15 * ALMOS-MKH is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with ALMOS-MKH; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 */
24
25
26#include <hal_kernel_types.h>
27#include <hal_special.h>
28#include <vfs.h>
29#include <cluster.h>
30#include <ramfs.h>
31
32
33//////////////////////////////////////////////
34error_t ramfs_mount( xptr_t   parent_inode_xp,
35                     char   * ramfs_root_name )
36{
37    xptr_t        dentry_xp;     // unused but required by vfs_add_child_in_parent()
38    xptr_t        inode_xp;
39    vfs_inode_t * inode_ptr;
40 
41    cxy_t     cxy = cluster_random_select();
42
43    // create VFS dentry and VFS inode for RAMFS root directory
44    return  vfs_add_child_in_parent( cxy,
45                                     FS_TYPE_RAMFS,
46                                     parent_inode_xp,
47                                     ramfs_root_name,
48                                     &dentry_xp,
49                                     &inode_xp );
50    // update inode type field
51    inode_ptr = GET_PTR( inode_xp );
52    inode_ptr->type = INODE_TYPE_DIR;
53}
54
Note: See TracBrowser for help on using the repository browser.