Blame view

fs/ext4/ext4_common.h 3.14 KB
a1596438a   Uma Shankar   ext4fs ls load su...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  /*
   * (C) Copyright 2011 - 2012 Samsung Electronics
   * EXT4 filesystem implementation in Uboot by
   * Uma Shankar <uma.shankar@samsung.com>
   * Manjunatha C Achar <a.manjunatha@samsung.com>
   *
   * ext4ls and ext4load :  based on ext2 ls load support in Uboot.
   *
   * (C) Copyright 2004
   * esd gmbh <www.esd-electronics.com>
   * Reinhard Arlt <reinhard.arlt@esd-electronics.com>
   *
   * based on code from grub2 fs/ext2.c and fs/fshelp.c by
   * GRUB  --  GRand Unified Bootloader
   * Copyright (C) 2003, 2004  Free Software Foundation, Inc.
   *
ed34f34db   Uma Shankar   ext4fs write support
17
18
   * ext4write : Based on generic ext4 protocol.
   *
1a4596601   Wolfgang Denk   Add GPL-2.0+ SPDX...
19
   * SPDX-License-Identifier:	GPL-2.0+
a1596438a   Uma Shankar   ext4fs ls load su...
20
21
22
23
24
25
26
   */
  
  #ifndef __EXT4_COMMON__
  #define __EXT4_COMMON__
  #include <ext_common.h>
  #include <ext4fs.h>
  #include <malloc.h>
1221ce459   Masahiro Yamada   treewide: replace...
27
  #include <linux/errno.h>
03e2ecf6b   Stephen Warren   fs: separate CONF...
28
  #if defined(CONFIG_EXT4_WRITE)
ed34f34db   Uma Shankar   ext4fs write support
29
30
31
  #include "ext4_journal.h"
  #include "crc16.h"
  #endif
a1596438a   Uma Shankar   ext4fs ls load su...
32
33
34
  
  #define YES		1
  #define NO		0
a1596438a   Uma Shankar   ext4fs ls load su...
35
36
37
38
39
  #define RECOVER	1
  #define SCAN		0
  
  #define S_IFLNK		0120000		/* symbolic link */
  #define BLOCK_NO_ONE		1
50ce4c07d   Egbert Eich   fs/ext4: Support ...
40
  #define SUPERBLOCK_START	(2 * 512)
a1596438a   Uma Shankar   ext4fs ls load su...
41
42
  #define SUPERBLOCK_SIZE	1024
  #define F_FILE			1
55b523b7d   Stephen Warren   ext4: cache-align...
43
44
45
46
47
48
  static inline void *zalloc(size_t size)
  {
  	void *p = memalign(ARCH_DMA_MINALIGN, size);
  	memset(p, 0, size);
  	return p;
  }
a1596438a   Uma Shankar   ext4fs ls load su...
49

a1596438a   Uma Shankar   ext4fs ls load su...
50
51
  int ext4fs_read_inode(struct ext2_data *data, int ino,
  		      struct ext2_inode *inode);
9f12cd0e0   Suriyan Ramasami   ext4: Prepare API...
52
53
  int ext4fs_read_file(struct ext2fs_node *node, loff_t pos, loff_t len,
  		     char *buf, loff_t *actread);
a1596438a   Uma Shankar   ext4fs ls load su...
54
55
56
57
  int ext4fs_find_file(const char *path, struct ext2fs_node *rootnode,
  			struct ext2fs_node **foundnode, int expecttype);
  int ext4fs_iterate_dir(struct ext2fs_node *dir, char *name,
  			struct ext2fs_node **fnode, int *ftype);
ed34f34db   Uma Shankar   ext4fs write support
58

03e2ecf6b   Stephen Warren   fs: separate CONF...
59
  #if defined(CONFIG_EXT4_WRITE)
ed34f34db   Uma Shankar   ext4fs write support
60
  uint32_t ext4fs_div_roundup(uint32_t size, uint32_t n);
58a9ecbaf   Michael Walle   ext4: fix endiane...
61
  uint16_t ext4fs_checksum_update(unsigned int i);
ed34f34db   Uma Shankar   ext4fs write support
62
  int ext4fs_get_parent_inode_num(const char *dirname, char *dname, int flags);
a0d767e2c   Stefan Brüns   ext4: propagate e...
63
  int ext4fs_update_parent_dentry(char *filename, int file_type);
58a9ecbaf   Michael Walle   ext4: fix endiane...
64
  uint32_t ext4fs_get_new_blk_no(void);
ed34f34db   Uma Shankar   ext4fs write support
65
66
67
68
69
70
71
72
73
74
75
  int ext4fs_get_new_inode_no(void);
  void ext4fs_reset_block_bmap(long int blockno, unsigned char *buffer,
  					int index);
  int ext4fs_set_block_bmap(long int blockno, unsigned char *buffer, int index);
  int ext4fs_set_inode_bmap(int inode_no, unsigned char *buffer, int index);
  void ext4fs_reset_inode_bmap(int inode_no, unsigned char *buffer, int index);
  int ext4fs_iget(int inode_no, struct ext2_inode *inode);
  void ext4fs_allocate_blocks(struct ext2_inode *file_inode,
  				unsigned int total_remaining_blocks,
  				unsigned int *total_no_of_block);
  void put_ext4(uint64_t off, void *buf, uint32_t size);
9f5dd8b6e   Stefan Brüns   ext4: Add helper ...
76
77
78
79
80
81
82
83
84
85
86
87
  struct ext2_block_group *ext4fs_get_group_descriptor
  	(const struct ext_filesystem *fs, uint32_t bg_idx);
  uint64_t ext4fs_bg_get_block_id(const struct ext2_block_group *bg,
  	const struct ext_filesystem *fs);
  uint64_t ext4fs_bg_get_inode_id(const struct ext2_block_group *bg,
  	const struct ext_filesystem *fs);
  uint64_t ext4fs_bg_get_inode_table_id(const struct ext2_block_group *bg,
  	const struct ext_filesystem *fs);
  uint64_t ext4fs_sb_get_free_blocks(const struct ext2_sblock *sb);
  void ext4fs_sb_set_free_blocks(struct ext2_sblock *sb, uint64_t free_blocks);
  uint32_t ext4fs_bg_get_free_blocks(const struct ext2_block_group *bg,
  	const struct ext_filesystem *fs);
ed34f34db   Uma Shankar   ext4fs write support
88
  #endif
a1596438a   Uma Shankar   ext4fs ls load su...
89
  #endif