source: mainline/uspace/srv/fs/minixfs/mfs_super.h@ 9e3dc95

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 9e3dc95 was 9e3dc95, checked in by Maurizio Lombardi <m.lombardi85@…>, 14 years ago

check superblock magic numbers

  • Property mode set to 100644
File size: 2.7 KB
Line 
1/*
2 * Copyright (c) 2011 Maurizio Lombardi
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/** @addtogroup fs
30 * @{
31 */
32
33#ifndef _MFS_SUPER_H_
34#define _MFS_SUPER_H_
35
36#include "mfs_const.h"
37#include "../../vfs/vfs.h"
38
39#define MFS_MAGIC_V1 0x137F
40#define MFS_MAGIC_V2 0x2468
41#define MFS_MAGIC_V3 0x4D5A
42
43struct mfs_superblock {
44 /*Total number of inodes on the device*/
45 uint32_t s_ninodes;
46 /*Device size expressed as number of zones (unused)*/
47 uint16_t s_nzones;
48 /*Number of inode bitmap blocks*/
49 int16_t s_ibmap_blocks;
50 /*Number of zone bitmap blocks*/
51 int16_t s_zbmap_blocks;
52 /*First data zone on device*/
53 uint16_t s_first_data_zone;
54 /*Base 2 logarithm of the zone to block ratio*/
55 int16_t s_log2_zone_size;
56 int16_t s_pad;
57 /*Maximum file size expressed in bytes*/
58 int32_t s_max_file_size;
59 /*Total number of zones on the device*/
60 uint32_t s_total_zones;
61 /*Magic number used to recognize MinixFS and to detect on-disk endianness*/
62 int16_t s_magic;
63
64 /* The following fields are valid only for MinixFS V3 */
65
66 int16_t s_pad2;
67 /*Filesystem block size expressed in bytes*/
68 uint16_t s_block_size;
69 /*Filesystem disk format version*/
70 int8_t s_disk_version;
71} __attribute__ ((packed));
72
73typedef enum {
74 MFS_VERSION_V1 = 1,
75 MFS_VERSION_V2,
76 MFS_VERSION_V3
77} mfs_version_t;
78
79void mfs_mounted(ipc_callid_t rid, ipc_call_t *request);
80
81#endif
82
83/**
84 * @}
85 */
Note: See TracBrowser for help on using the repository browser.