Changeset 01ab41b in mainline for uspace/lib/ext4/libext4_superblock.c


Ignore:
Timestamp:
2011-10-03T11:57:14Z (14 years ago)
Author:
Frantisek Princ <frantisek.princ@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9c0c0e1
Parents:
54935cf6
Message:

added more methods needed during ext4 mounting (also copied from ext2)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ext4/libext4_superblock.c

    r54935cf6 r01ab41b  
    3636 */
    3737
     38#include <byteorder.h>
     39#include <errno.h>
     40#include <libblock.h>
     41#include <malloc.h>
    3842#include "libext4_superblock.h"
    3943
     44/**
     45 * TODO doxy
     46 */
     47uint16_t ext2_superblock_get_magic(ext4_superblock_t *sb)
     48{
     49        return uint16_t_le2host(sb->s_magic);
     50}
     51
     52/**
     53 * TODO doxy
     54 */
     55uint32_t ext4_superblock_get_first_block(ext4_superblock_t *sb)
     56{
     57        return uint32_t_le2host(sb->s_first_data_block);
     58}
     59
     60/**
     61 * TODO doxy
     62 */
     63uint32_t ext4_superblock_get_block_size_log2(ext4_superblock_t *sb)
     64{
     65        return uint32_t_le2host(sb->s_log_block_size);
     66}
     67
     68/**
     69 * TODO doxy
     70 */
     71uint32_t ext4_superblock_get_block_size(ext4_superblock_t *sb)
     72{
     73        return 1024 << ext4_superblock_get_block_size_log2(sb);
     74}
     75
     76
     77/**
     78 * TODO doxy
     79 */
     80int ext4_superblock_read_direct(service_id_t service_id,
     81    ext4_superblock_t **superblock)
     82{
     83        void *data;
     84        int rc;
     85
     86        data = malloc(EXT4_SUPERBLOCK_SIZE);
     87        if (data == NULL) {
     88                return ENOMEM;
     89        }
     90
     91        rc = block_read_bytes_direct(service_id, EXT4_SUPERBLOCK_OFFSET,
     92            EXT4_SUPERBLOCK_SIZE, data);
     93
     94        if (rc != EOK) {
     95                free(data);
     96                return rc;
     97        }
     98
     99        (*superblock) = data;
     100
     101        return EOK;
     102}
     103
     104/**
     105 * TODO doxy
     106 */
     107int ext4_superblock_check_sanity(ext4_superblock_t *sb)
     108{
     109        // TODO
     110        return EOK;
     111}
    40112
    41113/**
Note: See TracChangeset for help on using the changeset viewer.