Subversion Repositories Kolibri OS

Rev

Rev 9888 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9888 Rev 9889
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2013-2022. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2013-2022. All rights reserved. ;;
4
;;  Distributed under terms of the GNU General Public License   ;;
4
;;  Distributed under terms of the GNU General Public License   ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 9888 $
8
$Revision: 9889 $
9
 
9
 
10
; file types from stat.h
10
; file types from stat.h
11
S_IFMT      = 0170000o  ; These bits determine file type
11
S_IFMT      = 0170000o  ; These bits determine file type
Line 81... Line 81...
81
                            XFS_SB_VERSION2_PARENTBIT      OR \
81
                            XFS_SB_VERSION2_PARENTBIT      OR \
82
                            XFS_SB_VERSION2_PROJID32BIT    OR \
82
                            XFS_SB_VERSION2_PROJID32BIT    OR \
83
                            XFS_SB_VERSION2_CRCBIT         OR \
83
                            XFS_SB_VERSION2_CRCBIT         OR \
84
                            XFS_SB_VERSION2_FTYPE
84
                            XFS_SB_VERSION2_FTYPE
Line 85... Line 85...
85
 
85
 
86
XFS_SB_FEAT_INCOMPAT_FTYPE     = 1      ; filetype in dirent
86
XFS_SB_FEAT_INCOMPAT_FTYPE       = 0x01 ; filetype in dirent
87
XFS_SB_FEAT_INCOMPAT_SPINODES  = 2      ; sparse inode chunks
87
XFS_SB_FEAT_INCOMPAT_SPINODES    = 0x02 ; sparse inode chunks
88
XFS_SB_FEAT_INCOMPAT_META_UUID = 4      ; metadata UUID
88
XFS_SB_FEAT_INCOMPAT_META_UUID   = 0x04 ; metadata UUID
-
 
89
XFS_SB_FEAT_INCOMPAT_BIGTIME     = 0x08 ; large timestamps
-
 
90
XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR = 0x10 ; e.g. for upgrade to nrext64
89
XFS_SB_FEAT_INCOMPAT_BIGTIME   = 8      ; large timestamps
91
XFS_SB_FEAT_INCOMPAT_NREXT64     = 0x20 ; 64bit extent counters
90
XFS_SB_FEAT_INCOMPAT_SUPPORTED = XFS_SB_FEAT_INCOMPAT_FTYPE    OR \
92
XFS_SB_FEAT_INCOMPAT_SUPPORTED   = XFS_SB_FEAT_INCOMPAT_FTYPE    OR \
91
                                 XFS_SB_FEAT_INCOMPAT_SPINODES OR \
93
                                   XFS_SB_FEAT_INCOMPAT_SPINODES OR \
92
                                 XFS_SB_FEAT_INCOMPAT_META_UUID OR \
94
                                   XFS_SB_FEAT_INCOMPAT_META_UUID OR \
-
 
95
                                   XFS_SB_FEAT_INCOMPAT_BIGTIME OR \
Line 93... Line 96...
93
                                 XFS_SB_FEAT_INCOMPAT_BIGTIME
96
                                   XFS_SB_FEAT_INCOMPAT_NREXT64
94
 
97
 
95
; bitfield lengths for packed extent
98
; bitfield lengths for packed extent
96
; MSB to LSB / left to right
99
; MSB to LSB / left to right
Line 208... Line 211...
208
        di_format        db ?           ; format of di_c data
211
        di_format        db ?           ; format of di_c data
209
        di_onlink        dw ?           ; old number of links to file
212
        di_onlink        dw ?           ; old number of links to file
210
        di_uid           dd ?           ; owner's user id
213
        di_uid           dd ?           ; owner's user id
211
        di_gid           dd ?           ; owner's group id
214
        di_gid           dd ?           ; owner's group id
212
        di_nlink         dd ?           ; number of links to file
215
        di_nlink         dd ?           ; number of links to file
213
        di_projid        dw ?           ; owner's project id
216
        di_projid        dd ?           ; owner's project id
214
        di_pad           rb 8           ; unused, zeroed space
-
 
215
        di_flushiter     dw ?           ; incremented on flush
217
        di_big_nextents  DQ ?           ; iff NREXT64 is set
216
        di_atime         DQ             ; time last accessed
218
        di_atime         DQ             ; time last accessed
217
        di_mtime         DQ               ; time last modified
219
        di_mtime         DQ               ; time last modified
218
        di_ctime         DQ             ; time created/inode modified
220
        di_ctime         DQ             ; time created/inode modified
219
        di_size          DQ ?           ; number of bytes in file
221
        di_size          DQ ?           ; number of bytes in file
220
        di_nblocks       DQ ?           ; number of direct & btree blocks used
222
        di_nblocks       DQ ?           ; number of direct & btree blocks used
221
        di_extsize       dd ?           ; basic/minimum extent size for file
223
        di_extsize       dd ?           ; basic/minimum extent size for file
-
 
224
        union
-
 
225
            struct
222
        di_nextents      dd ?           ; number of extents in data fork
226
                di_nextents      dd ?   ; number of extents in data fork
223
        di_anextents     dw ?           ; number of extents in attribute fork
227
                di_anextents     dw ?   ; number of extents in attribute fork
-
 
228
            ends
-
 
229
            struct
-
 
230
                di_big_anextents dd ?   ; attr extent counter is 32bit for NREXT64
-
 
231
                di_nrext64_pad   dw ?
-
 
232
            ends
-
 
233
        ends
224
        di_forkoff       db ?           ; attr fork offs, <<3 for 64b align
234
        di_forkoff       db ?           ; attr fork offs, <<3 for 64b align
225
        di_aformat       db ?           ; format of attr fork's data
235
        di_aformat       db ?           ; format of attr fork's data
226
        di_dmevmask      dd ?           ; DMIG event mask
236
        di_dmevmask      dd ?           ; DMIG event mask
227
        di_dmstate       dw ?           ; DMIG state info
237
        di_dmstate       dw ?           ; DMIG state info
228
        di_flags         dw ?           ; random flags, XFS_DIFLAG_...
238
        di_flags         dw ?           ; random flags, XFS_DIFLAG_...
Line 467... Line 477...
467
        bb_pad          dd ?
477
        bb_pad          dd ?
468
ends
478
ends
Line 469... Line 479...
469
 
479
 
470
struct xfs_inode
480
struct xfs_inode
471
        di_core                 xfs_dinode_core ; main info, aka core
-
 
472
        union
-
 
473
                di_u            db ?            ; data fork inode part
-
 
474
                dir2_sf         xfs_dir2_sf
-
 
475
                bmx             xfs_dir2_bmx
-
 
476
        ends
-
 
477
;        di_a                    db ?           ; data attribute
-
 
478
ends
-
 
479
 
-
 
480
struct xfs_agf
-
 
481
        agf_magicnum    dd ?    ; magic number == XFS_AGF_MAGIC
-
 
482
        agf_versionnum  dd ?    ; header version == XFS_AGF_VERSION
-
 
483
        agf_seqno       dd ?    ; sequence # starting from 0
-
 
484
        agf_length      dd ?    ; size in blocks of AG
-
 
485
        agf_roots       dd ?
-
 
486
        agf_levels      dd ?
-
 
487
        agf_flfirst     dd ?
-
 
488
        agf_fllast      dd ?
-
 
489
        agf_flcount     dd ?
-
 
490
        agf_freeblks    dd ?    ; free blocks in AG
481
        di_core                 xfs_dinode_core ; main info, aka core
Line 491... Line 482...
491
ends
482
ends
492
 
483
 
493
; internal data for every XFS partition
484
; internal data for every XFS partition
Line 532... Line 523...
532
        dir_leaf1_size          dd ?
523
        dir_leaf1_size          dd ?
533
        dir_leafn_size          dd ?
524
        dir_leafn_size          dd ?
534
        da_node_size            dd ?
525
        da_node_size            dd ?
535
        da_blkinfo_size         dd ?
526
        da_blkinfo_size         dd ?
536
        conv_time_to_kos_epoch  dd ?
527
        conv_time_to_kos_epoch  dd ?
-
 
528
        nextents_offset         dd ?
537
        ; helpers, temporary vars, etc
529
        ; helpers, temporary vars, etc
538
        ; should go to file descriptor and local vars?
530
        ; should go to file descriptor and local vars?
539
        cur_block               dd ?
531
        cur_block               dd ?
540
        cur_block_data          dd ?
532
        cur_block_data          dd ?
541
        cur_inode               dd ?
533
        cur_inode               dd ?