~ubuntu-branches/ubuntu/edgy/e2fsprogs/edgy-security

« back to all changes in this revision

Viewing changes to lib/ext2fs/ext2fs.h

  • Committer: Bazaar Package Importer
  • Author(s): Tollef Fog Heen
  • Date: 2005-08-23 10:42:10 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050823104210-t15igvmgrkzea0dq
Tags: 1.38-2ubuntu1
* Merge with Debian.  (Ubuntu #13757)
* Remove tests/f_bad_disconnected_inode/image.gz to be able to build the
  package.  This will (hopefully) be in the next upstream version and is
  just used for testing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
242
242
         * Inode cache
243
243
         */
244
244
        struct ext2_inode_cache         *icache;
 
245
        io_channel                      image_io;
245
246
};
246
247
 
247
248
#if EXT2_FLAT_INCLUDES
345
346
#define EXT2_MF_ISROOT          2
346
347
#define EXT2_MF_READONLY        4
347
348
#define EXT2_MF_SWAP            8
 
349
#define EXT2_MF_BUSY            16
348
350
 
349
351
/*
350
352
 * Ext2/linux mode flags.  We define them here so that we don't need
401
403
/*
402
404
 * Flags for ext2fs_bmap
403
405
 */
404
 
#define BMAP_ALLOC      1
 
406
#define BMAP_ALLOC      0x0001
 
407
#define BMAP_SET        0x0002
405
408
 
406
409
/*
407
410
 * Flags for imager.c functions
429
432
#define EXT2_LIB_FEATURE_COMPAT_SUPP    (EXT2_FEATURE_COMPAT_DIR_PREALLOC|\
430
433
                                         EXT2_FEATURE_COMPAT_IMAGIC_INODES|\
431
434
                                         EXT3_FEATURE_COMPAT_HAS_JOURNAL|\
 
435
                                         EXT2_FEATURE_COMPAT_RESIZE_INODE|\
432
436
                                         EXT2_FEATURE_COMPAT_DIR_INDEX|\
433
437
                                         EXT2_FEATURE_COMPAT_EXT_ATTR)
434
438
 
695
699
extern errcode_t ext2fs_expand_dir(ext2_filsys fs, ext2_ino_t dir);
696
700
 
697
701
/* ext_attr.c */
698
 
void ext2fs_swap_ext_attr(ext2_filsys fs, char *to, char *from);
699
702
extern errcode_t ext2fs_read_ext_attr(ext2_filsys fs, blk_t block, void *buf);
700
703
extern errcode_t ext2fs_write_ext_attr(ext2_filsys fs, blk_t block,
701
704
                                       void *buf);
754
757
extern errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags);
755
758
extern errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags);
756
759
 
 
760
/* ind_block.c */
 
761
errcode_t ext2fs_read_ind_block(ext2_filsys fs, blk_t blk, void *buf);
 
762
errcode_t ext2fs_write_ind_block(ext2_filsys fs, blk_t blk, void *buf);
 
763
 
757
764
/* initialize.c */
758
765
extern errcode_t ext2fs_initialize(const char *name, int flags,
759
766
                                   struct ext2_super_block *param,
780
787
 
781
788
/* inode.c */
782
789
extern errcode_t ext2fs_flush_icache(ext2_filsys fs);
 
790
extern errcode_t ext2fs_get_next_inode_full(ext2_inode_scan scan, 
 
791
                                            ext2_ino_t *ino,
 
792
                                            struct ext2_inode *inode, 
 
793
                                            int bufsize);
783
794
extern errcode_t ext2fs_open_inode_scan(ext2_filsys fs, int buffer_blocks,
784
795
                                  ext2_inode_scan *ret_scan);
785
796
extern void ext2fs_close_inode_scan(ext2_inode_scan scan);
796
807
         void *done_group_data);
797
808
extern int ext2fs_inode_scan_flags(ext2_inode_scan scan, int set_flags,
798
809
                                   int clear_flags);
 
810
extern errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino,
 
811
                                        struct ext2_inode * inode, 
 
812
                                        int bufsize);
799
813
extern errcode_t ext2fs_read_inode (ext2_filsys fs, ext2_ino_t ino,
800
814
                            struct ext2_inode * inode);
 
815
extern errcode_t ext2fs_write_inode_full(ext2_filsys fs, ext2_ino_t ino,
 
816
                                         struct ext2_inode * inode, 
 
817
                                         int bufsize);
801
818
extern errcode_t ext2fs_write_inode(ext2_filsys fs, ext2_ino_t ino,
802
819
                            struct ext2_inode * inode);
 
820
extern errcode_t ext2fs_write_new_inode(ext2_filsys fs, ext2_ino_t ino,
 
821
                            struct ext2_inode * inode);
803
822
extern errcode_t ext2fs_get_blocks(ext2_filsys fs, ext2_ino_t ino, blk_t *blocks);
804
823
extern errcode_t ext2fs_check_directory(ext2_filsys fs, ext2_ino_t ino);
805
824
 
850
869
extern errcode_t ext2fs_open(const char *name, int flags, int superblock,
851
870
                             unsigned int block_size, io_manager manager,
852
871
                             ext2_filsys *ret_fs);
 
872
extern errcode_t ext2fs_open2(const char *name, const char *io_options, 
 
873
                              int flags, int superblock, 
 
874
                              unsigned int block_size, io_manager manager,
 
875
                              ext2_filsys *ret_fs);
853
876
extern blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, 
854
877
                                         dgrp_t i);
 
878
errcode_t ext2fs_get_data_io(ext2_filsys fs, io_channel *old_io);
 
879
errcode_t ext2fs_set_data_io(ext2_filsys fs, io_channel new_io);
 
880
errcode_t ext2fs_rewrite_to_io(ext2_filsys fs, io_channel new_io);
855
881
 
856
882
/* get_pathname.c */
857
883
extern errcode_t ext2fs_get_pathname(ext2_filsys fs, ext2_ino_t dir, ext2_ino_t ino,
880
906
                                     void (*invalid)(ext2_filsys fs,
881
907
                                                     blk_t blk));
882
908
 
 
909
/* res_gdt.c */
 
910
extern errcode_t ext2fs_create_resize_inode(ext2_filsys fs);
 
911
 
883
912
/* rs_bitmap.c */
884
913
extern errcode_t ext2fs_resize_generic_bitmap(__u32 new_end,
885
914
                                              __u32 new_real_end,
892
921
                                    ext2fs_generic_bitmap *dest);
893
922
 
894
923
/* swapfs.c */
 
924
extern void ext2fs_swap_ext_attr(char *to, char *from, int bufsize, 
 
925
                                 int has_header);
895
926
extern void ext2fs_swap_super(struct ext2_super_block * super);
896
927
extern void ext2fs_swap_group_desc(struct ext2_group_desc *gdp);
 
928
extern void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
 
929
                                   struct ext2_inode_large *f, int hostorder,
 
930
                                   int bufsize);
897
931
extern void ext2fs_swap_inode(ext2_filsys fs,struct ext2_inode *t,
898
932
                              struct ext2_inode *f, int hostorder);
899
933
 
981
1015
                                     unsigned long size, void *ptr)
982
1016
{
983
1017
        void *p;
984
 
        void **pp = (void **)ptr;
985
1018
 
986
 
        p = realloc(*pp, size);
 
1019
        /* Use "memcpy" for pointer assignments here to avoid problems
 
1020
         * with C99 strict type aliasing rules. */
 
1021
        memcpy(&p, ptr, sizeof (p));
 
1022
        p = realloc(p, size);
987
1023
        if (!p)
988
1024
                return EXT2_ET_NO_MEMORY;
989
 
        *pp = p;
 
1025
        memcpy(ptr, &p, sizeof (p));
990
1026
        return 0;
991
1027
}
992
1028
#endif  /* Custom memory routines */