source: mainline/uspace/lib/ext4/libext4_superblock.h@ 13c4fe0

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 13c4fe0 was 38542dc, checked in by Martin Decky <martin@…>, 13 years ago

ext4 code review and coding style cleanup

  • Property mode set to 100644
File size: 8.5 KB
RevLine 
[eb91db7]1/*
[f22d5ef0]2 * Copyright (c) 2012 Frantisek Princ
[eb91db7]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 libext4
30 * @{
[9875711]31 */
[eb91db7]32
33#ifndef LIBEXT4_LIBEXT4_SUPERBLOCK_H_
34#define LIBEXT4_LIBEXT4_SUPERBLOCK_H_
35
[01ab41b]36#include <libblock.h>
[9875711]37#include <sys/types.h>
[b53a733]38#include "libext4_types.h"
[7bc4508]39
[3712434]40extern uint32_t ext4_superblock_get_inodes_count(ext4_superblock_t *);
[fe27eb4]41extern void ext4_superblock_set_inodes_count(ext4_superblock_t *, uint32_t);
[3712434]42extern uint64_t ext4_superblock_get_blocks_count(ext4_superblock_t *);
[fe27eb4]43extern void ext4_superblock_set_blocks_count(ext4_superblock_t *, uint64_t);
[3712434]44extern uint64_t ext4_superblock_get_reserved_blocks_count(ext4_superblock_t *);
[38542dc]45extern void ext4_superblock_set_reserved_blocks_count(ext4_superblock_t *,
46 uint64_t);
[3712434]47extern uint64_t ext4_superblock_get_free_blocks_count(ext4_superblock_t *);
[38542dc]48extern void ext4_superblock_set_free_blocks_count(ext4_superblock_t *,
49 uint64_t);
[3712434]50extern uint32_t ext4_superblock_get_free_inodes_count(ext4_superblock_t *);
[38542dc]51extern void ext4_superblock_set_free_inodes_count(ext4_superblock_t *,
52 uint32_t);
[3712434]53extern uint32_t ext4_superblock_get_first_data_block(ext4_superblock_t *);
[fe27eb4]54extern void ext4_superblock_set_first_data_block(ext4_superblock_t *, uint32_t);
[3712434]55extern uint32_t ext4_superblock_get_log_block_size(ext4_superblock_t *);
[fe27eb4]56extern void ext4_superblock_set_log_block_size(ext4_superblock_t *, uint32_t);
[01ab41b]57extern uint32_t ext4_superblock_get_block_size(ext4_superblock_t *);
[fe27eb4]58extern void ext4_superblock_set_block_size(ext4_superblock_t *, uint32_t);
[fb04cd90]59extern uint32_t ext4_superblock_get_log_frag_size(ext4_superblock_t *);
60extern void ext4_superblock_set_log_frag_size(ext4_superblock_t *, uint32_t);
61extern uint32_t ext4_superblock_get_frag_size(ext4_superblock_t *);
62extern void ext4_superblock_set_frag_size(ext4_superblock_t *, uint32_t);
[3712434]63extern uint32_t ext4_superblock_get_blocks_per_group(ext4_superblock_t *);
[fe27eb4]64extern void ext4_superblock_set_blocks_per_group(ext4_superblock_t *, uint32_t);
[fb04cd90]65extern uint32_t ext4_superblock_get_frags_per_group(ext4_superblock_t *);
66extern void ext4_superblock_set_frags_per_group(ext4_superblock_t *, uint32_t);
[3712434]67extern uint32_t ext4_superblock_get_inodes_per_group(ext4_superblock_t *);
[fe27eb4]68extern void ext4_superblock_set_inodes_per_group(ext4_superblock_t *, uint32_t);
[3712434]69extern uint32_t ext4_superblock_get_mount_time(ext4_superblock_t *);
[fe27eb4]70extern void ext4_superblock_set_mount_time(ext4_superblock_t *, uint32_t);
[3712434]71extern uint32_t ext4_superblock_get_write_time(ext4_superblock_t *);
[fe27eb4]72extern void ext4_superblock_set_write_time(ext4_superblock_t *, uint32_t);
[3712434]73extern uint16_t ext4_superblock_get_mount_count(ext4_superblock_t *);
[fe27eb4]74extern void ext4_superblock_set_mount_count(ext4_superblock_t *, uint16_t);
[3712434]75extern uint16_t ext4_superblock_get_max_mount_count(ext4_superblock_t *);
[fe27eb4]76extern void ext4_superblock_set_max_mount_count(ext4_superblock_t *, uint16_t);
[3712434]77extern uint16_t ext4_superblock_get_magic(ext4_superblock_t *);
[9fc72fb3]78extern void ext4_superblock_set_magic(ext4_superblock_t *sb, uint16_t magic);
[3712434]79extern uint16_t ext4_superblock_get_state(ext4_superblock_t *);
[fe27eb4]80extern void ext4_superblock_set_state(ext4_superblock_t *, uint16_t);
[3712434]81extern uint16_t ext4_superblock_get_errors(ext4_superblock_t *);
[fe27eb4]82extern void ext4_superblock_set_errors(ext4_superblock_t *, uint16_t);
[3712434]83extern uint16_t ext4_superblock_get_minor_rev_level(ext4_superblock_t *);
[fe27eb4]84extern void ext4_superblock_set_minor_rev_level(ext4_superblock_t *, uint16_t);
[3712434]85extern uint32_t ext4_superblock_get_last_check_time(ext4_superblock_t *);
[fe27eb4]86extern void ext4_superblock_set_last_check_time(ext4_superblock_t *, uint32_t);
[3712434]87extern uint32_t ext4_superblock_get_check_interval(ext4_superblock_t *);
[fe27eb4]88extern void ext4_superblock_set_check_interval(ext4_superblock_t *, uint32_t);
[3712434]89extern uint32_t ext4_superblock_get_creator_os(ext4_superblock_t *);
[fe27eb4]90extern void ext4_superblock_set_creator_os(ext4_superblock_t *, uint32_t);
[3712434]91extern uint32_t ext4_superblock_get_rev_level(ext4_superblock_t *);
[fe27eb4]92extern void ext4_superblock_set_rev_level(ext4_superblock_t *, uint32_t);
93extern uint16_t ext4_superblock_get_def_resuid(ext4_superblock_t *);
94extern void ext4_superblock_set_def_resuid(ext4_superblock_t *, uint16_t);
95extern uint16_t ext4_superblock_get_def_resgid(ext4_superblock_t *);
96extern void ext4_superblock_set_def_resgid(ext4_superblock_t *, uint16_t);
[3712434]97extern uint32_t ext4_superblock_get_first_inode(ext4_superblock_t *);
[fe27eb4]98extern void ext4_superblock_set_first_inode(ext4_superblock_t *, uint32_t);
[3712434]99extern uint16_t ext4_superblock_get_inode_size(ext4_superblock_t *);
[fe27eb4]100extern void ext4_superblock_set_inode_size(ext4_superblock_t *, uint16_t);
[2226cc3]101extern uint16_t ext4_superblock_get_block_group_index(ext4_superblock_t *);
[38542dc]102extern void ext4_superblock_set_block_group_index(ext4_superblock_t *,
103 uint16_t);
104extern uint32_t ext4_superblock_get_features_compatible(ext4_superblock_t *);
105extern void ext4_superblock_set_features_compatible(ext4_superblock_t *,
106 uint32_t);
107extern uint32_t ext4_superblock_get_features_incompatible(ext4_superblock_t *);
108extern void ext4_superblock_set_features_incompatible(ext4_superblock_t *,
109 uint32_t);
110extern uint32_t ext4_superblock_get_features_read_only(ext4_superblock_t *);
111extern void ext4_superblock_set_features_read_only(ext4_superblock_t *,
112 uint32_t);
[01ab41b]113
[291af81]114extern const uint8_t * ext4_superblock_get_uuid(ext4_superblock_t *);
115extern void ext4_superblock_set_uuid(ext4_superblock_t *, const uint8_t *);
116extern const char * ext4_superblock_get_volume_name(ext4_superblock_t *);
117extern void ext4_superblock_set_volume_name(ext4_superblock_t *, const char *);
118extern const char * ext4_superblock_get_last_mounted(ext4_superblock_t *);
119extern void ext4_superblock_set_last_mounted(ext4_superblock_t *, const char *);
120
[ebcaff4]121extern uint32_t ext4_superblock_get_last_orphan(ext4_superblock_t *);
122extern void ext4_superblock_set_last_orphan(ext4_superblock_t *, uint32_t);
[2226cc3]123extern const uint32_t * ext4_superblock_get_hash_seed(ext4_superblock_t *);
[38542dc]124extern void ext4_superblock_set_hash_seed(ext4_superblock_t *,
125 const uint32_t *);
[7eb033ce]126extern uint8_t ext4_superblock_get_default_hash_version(ext4_superblock_t *);
[38542dc]127extern void ext4_superblock_set_default_hash_version(ext4_superblock_t *,
128 uint8_t);
[c25e39b]129
130extern uint16_t ext4_superblock_get_desc_size(ext4_superblock_t *);
[fe27eb4]131extern void ext4_superblock_set_desc_size(ext4_superblock_t *, uint16_t);
[c25e39b]132
[7bc4508]133extern uint32_t ext4_superblock_get_flags(ext4_superblock_t *);
[fe27eb4]134extern void ext4_superblock_set_flags(ext4_superblock_t *, uint32_t);
[3712434]135
136/* More complex superblock functions */
[7bc4508]137extern bool ext4_superblock_has_flag(ext4_superblock_t *, uint32_t);
[38542dc]138extern bool ext4_superblock_has_feature_compatible(ext4_superblock_t *,
139 uint32_t);
140extern bool ext4_superblock_has_feature_incompatible(ext4_superblock_t *,
141 uint32_t);
142extern bool ext4_superblock_has_feature_read_only(ext4_superblock_t *,
143 uint32_t);
[01ab41b]144extern int ext4_superblock_read_direct(service_id_t, ext4_superblock_t **);
[ae3d4f8]145extern int ext4_superblock_write_direct(service_id_t, ext4_superblock_t *);
[01ab41b]146extern int ext4_superblock_check_sanity(ext4_superblock_t *);
[eb91db7]147
[b12ca16]148extern uint32_t ext4_superblock_get_block_group_count(ext4_superblock_t *);
[38542dc]149extern uint32_t ext4_superblock_get_blocks_in_group(ext4_superblock_t *,
150 uint32_t);
151extern uint32_t ext4_superblock_get_inodes_in_group(ext4_superblock_t *,
152 uint32_t);
[b12ca16]153
[eb91db7]154#endif
155
156/**
157 * @}
158 */
Note: See TracBrowser for help on using the repository browser.