KolibriOS kernel
xfs.asm File Reference

Macros

#define omit_frame_pointer_prologue(procname, flag, parmbytes, localbytes, reglist)
 
#define omit_frame_pointer_epilogue(procname, flag, parmbytes, localbytes, reglist)
 
#define movbe(reg, arg)
 

Functions

void xfs_create_partition ()
 test partition type (valid XFS one?) alloc and fill XFS (see xfs.inc) structure this function is called for each partition return 0 (not XFS or invalid) / pointer to partition structure More...
 
void xfs___read_block ()
 ------------------------------------------------------------— block number eax – inode_lo edx – inode_hi More...
 
void xfs___blkrel2sectabs ()
 
void xfs___read_blocks ()
 ------------------------------------------------------------— start block number edx:eax – block ebx – buffer More...
 
void xfs___read_dirblock (qword _startblock, arg_t _buffer)
 
void xfs_read_inode (arg_t _inode_lo, arg_t _inode_hi, arg_t _buffer)
 ------------------------------------------------------------— More...
 
void xfs___dir_sf_skip (arg_t _count)
 skip ecx first entries More...
 
void xfs___dir_sf_read (arg_t _count)
 
void xfs___readdir_sf (arg_t _src, arg_t _dst)
 
void xfs___readdir_block (arg_t _literal_area, arg_t _out_buf)
 
void xfs___readdir_leaf_node (arg_t _inode_data, arg_t _out_buf)
 
void xfs___dir_entry_skip_read (arg_t _arg)
 
void xfs___dir_btree_skip_read (arg_t _cur_dirblock, arg_t _offset_lo, arg_t _offset_hi, arg_t _arg)
 
void xfs___readdir_btree (arg_t _inode_data, arg_t _out_buf)
 
void xfs___copy_filename ()
 
void xfs___readdir (arg_t _start_number, arg_t _entries_to_read, arg_t _dst, arg_t _src, arg_t _encoding)
 -------------------------------------------------------------— src ; inode dst ; bdfe More...
 
void xfs___lookup_sf (arg_t _name, arg_t _len)
 returns edx:eax inode or 0 More...
 
void xfs___lookup_block (arg_t _name, arg_t _len)
 
void xfs___get_inode_by_addr (arg_t _inode_buf)
 
void xfs___lookup_leaf (arg_t _name, arg_t _len)
 
void xfs___lookup_node (arg_t _name, arg_t _len)
 
void xfs___lookup_btree (arg_t _name, arg_t _len)
 
void xfs___get_inode_short (qword _inode, arg_t _len, arg_t _name)
 search for the _name in _inode dir called for each /path/component/to/my/file out: ZF/zf = ok/fail edx:eax = inode/garbage:error More...
 
void xfs_get_inode (arg_t _name)
 ZF/zf = ok/fail edx:eax = inode/garbage:error. More...
 
void xfs_ReadFolder ()
 in: ebp = pointer to XFS structure in: esi in: ebx = pointer to parameters from sysfunc 70 out: eax, ebx = return values for sysfunc 70 out: [edx] – f70.1 out structure More...
 
void xfs___get_inode_number_sf ()
 edx – pointer to inode number in big endian ZF – must be set at exit More...
 
void xfs___conv_time_to_kos_epoch ()
 
void xfs___conv_bigtime_to_kos_epoch ()
 
void xfs_get_inode_info (arg_t _src, arg_t _dst)
 
void xfs___extent_unpack (arg_t _extent_data)
 
void xfs_hashname (arg_t _name, arg_t _len)
 
void xfs___get_addr_by_hash (arg_t _base, arg_t _len)
 eax – hash value More...
 
void xfs_GetFileInfo ()
 -------------------------------------------------------------— xfs_GetFileInfo: XFS implementation of getting file info in: ebp = pointer to XFS structure in: esi = name in: ebx = pointer to parameters from sysfunc 70 More...
 
void xfs___file_read_extent (arg_t _callback, arg_t _callback_data)
 
void xfs_Read ()
 -------------------------------------------------------------— in: ebp = pointer to XFS structure in: esi = name in: ebx = pointer to parameters from sysfunc 70 More...
 
void xfs___leafn_calc_entries (arg_t _cur_dirblock, arg_t _offset_lo, arg_t _offset_hi, arg_t _arg)
 
void xfs___get_before_by_hashval (arg_t _base, arg_t _count, arg_t _hash)
 
void xfs___long_btree_seek (arg_t _ptr, arg_t _size)
 
void xfs___walk_btree (arg_t _ptr, arg_t _size, arg_t _callback_extent, arg_t _callback_block, arg_t _callback_data, arg_t _is_root)
 
void xfs___btree_read_block (arg_t _tree, arg_t _size, arg_t _block_lo, arg_t _block_hi, arg_t _buf)
 
void xfs___extent_list_seek (arg_t _count)
 
void xfs___extent_iterate_dirblocks (arg_t _callback, arg_t _callback_data)
 
void xfs___walk_extent_list (arg_t _count, arg_t _ptr, arg_t _callback_extent, arg_t _callback_block, arg_t _callback_data)
 
void xfs___get_last_dirblock ()
 

Variables

label xfs___user_functions
 
label xfs___user_functions_end
 
label xfs___lock
 lock partition access mutex More...
 
label xfs___unlock
 unlock partition access mutex More...
 
label xfs___free
 free all the allocated memory called on partition destroy or during failed initialization from xfs_create_partition More...
 
dd _dst
 
dd _hash
 
DQ _offset_begin
 
DQ _offset_end
 
prologue proc restore
 

Macro Definition Documentation

◆ movbe

#define movbe (   reg,
  arg 
)

◆ omit_frame_pointer_epilogue

#define omit_frame_pointer_epilogue (   procname,
  flag,
  parmbytes,
  localbytes,
  reglist 
)

◆ omit_frame_pointer_prologue

#define omit_frame_pointer_prologue (   procname,
  flag,
  parmbytes,
  localbytes,
  reglist 
)

Function Documentation

◆ xfs___blkrel2sectabs()

void xfs___blkrel2sectabs ( )

◆ xfs___btree_read_block()

void xfs___btree_read_block ( arg_t  _tree,
arg_t  _size,
arg_t  _block_lo,
arg_t  _block_hi,
arg_t  _buf 
)

◆ xfs___conv_bigtime_to_kos_epoch()

void xfs___conv_bigtime_to_kos_epoch ( )

◆ xfs___conv_time_to_kos_epoch()

void xfs___conv_time_to_kos_epoch ( )

◆ xfs___copy_filename()

void xfs___copy_filename ( )

◆ xfs___dir_btree_skip_read()

void xfs___dir_btree_skip_read ( arg_t  _cur_dirblock,
arg_t  _offset_lo,
arg_t  _offset_hi,
arg_t  _arg 
)

◆ xfs___dir_entry_skip_read()

void xfs___dir_entry_skip_read ( arg_t  _arg)

◆ xfs___dir_sf_read()

void xfs___dir_sf_read ( arg_t  _count)

◆ xfs___dir_sf_skip()

void xfs___dir_sf_skip ( arg_t  _count)

skip ecx first entries

Source
fs/xfs.asm:526

◆ xfs___extent_iterate_dirblocks()

void xfs___extent_iterate_dirblocks ( arg_t  _callback,
arg_t  _callback_data 
)

◆ xfs___extent_list_seek()

void xfs___extent_list_seek ( arg_t  _count)

◆ xfs___extent_unpack()

void xfs___extent_unpack ( arg_t  _extent_data)

◆ xfs___file_read_extent()

void xfs___file_read_extent ( arg_t  _callback,
arg_t  _callback_data 
)

◆ xfs___get_addr_by_hash()

void xfs___get_addr_by_hash ( arg_t  _base,
arg_t  _len 
)

eax – hash value

Source
fs/xfs.asm:1506

◆ xfs___get_before_by_hashval()

void xfs___get_before_by_hashval ( arg_t  _base,
arg_t  _count,
arg_t  _hash 
)

◆ xfs___get_inode_by_addr()

void xfs___get_inode_by_addr ( arg_t  _inode_buf)

◆ xfs___get_inode_number_sf()

void xfs___get_inode_number_sf ( )

edx – pointer to inode number in big endian ZF – must be set at exit

Source
fs/xfs.asm:1378

◆ xfs___get_inode_short()

void xfs___get_inode_short ( qword  _inode,
arg_t  _len,
arg_t  _name 
)

search for the _name in _inode dir called for each /path/component/to/my/file out: ZF/zf = ok/fail edx:eax = inode/garbage:error

Source
fs/xfs.asm:1269

◆ xfs___get_last_dirblock()

void xfs___get_last_dirblock ( )

◆ xfs___leafn_calc_entries()

void xfs___leafn_calc_entries ( arg_t  _cur_dirblock,
arg_t  _offset_lo,
arg_t  _offset_hi,
arg_t  _arg 
)

◆ xfs___long_btree_seek()

void xfs___long_btree_seek ( arg_t  _ptr,
arg_t  _size 
)

◆ xfs___lookup_block()

void xfs___lookup_block ( arg_t  _name,
arg_t  _len 
)

◆ xfs___lookup_btree()

void xfs___lookup_btree ( arg_t  _name,
arg_t  _len 
)

◆ xfs___lookup_leaf()

void xfs___lookup_leaf ( arg_t  _name,
arg_t  _len 
)

◆ xfs___lookup_node()

void xfs___lookup_node ( arg_t  _name,
arg_t  _len 
)

◆ xfs___lookup_sf()

void xfs___lookup_sf ( arg_t  _name,
arg_t  _len 
)

returns edx:eax inode or 0

Source
fs/xfs.asm:955

◆ xfs___read_block()

void xfs___read_block ( )

------------------------------------------------------------— block number eax – inode_lo edx – inode_hi

ebx – buffer

Source
fs/xfs.asm:422

◆ xfs___read_blocks()

void xfs___read_blocks ( )

------------------------------------------------------------— start block number edx:eax – block ebx – buffer

ecx – count

Source
fs/xfs.asm:463

◆ xfs___read_dirblock()

void xfs___read_dirblock ( qword  _startblock,
arg_t  _buffer 
)

◆ xfs___readdir()

void xfs___readdir ( arg_t  _start_number,
arg_t  _entries_to_read,
arg_t  _dst,
arg_t  _src,
arg_t  _encoding 
)

-------------------------------------------------------------— src ; inode dst ; bdfe

start_number ; from 0

Source
fs/xfs.asm:892

◆ xfs___readdir_block()

void xfs___readdir_block ( arg_t  _literal_area,
arg_t  _out_buf 
)

◆ xfs___readdir_btree()

void xfs___readdir_btree ( arg_t  _inode_data,
arg_t  _out_buf 
)

◆ xfs___readdir_leaf_node()

void xfs___readdir_leaf_node ( arg_t  _inode_data,
arg_t  _out_buf 
)

◆ xfs___readdir_sf()

void xfs___readdir_sf ( arg_t  _src,
arg_t  _dst 
)

◆ xfs___walk_btree()

void xfs___walk_btree ( arg_t  _ptr,
arg_t  _size,
arg_t  _callback_extent,
arg_t  _callback_block,
arg_t  _callback_data,
arg_t  _is_root 
)

◆ xfs___walk_extent_list()

void xfs___walk_extent_list ( arg_t  _count,
arg_t  _ptr,
arg_t  _callback_extent,
arg_t  _callback_block,
arg_t  _callback_data 
)

◆ xfs_create_partition()

void xfs_create_partition ( )

test partition type (valid XFS one?) alloc and fill XFS (see xfs.inc) structure this function is called for each partition return 0 (not XFS or invalid) / pointer to partition structure

Source
fs/xfs.asm:97

◆ xfs_get_inode()

void xfs_get_inode ( arg_t  _name)

ZF/zf = ok/fail edx:eax = inode/garbage:error.

Source
fs/xfs.asm:1308

◆ xfs_get_inode_info()

void xfs_get_inode_info ( arg_t  _src,
arg_t  _dst 
)

◆ xfs_GetFileInfo()

void xfs_GetFileInfo ( )

-------------------------------------------------------------— xfs_GetFileInfo: XFS implementation of getting file info in: ebp = pointer to XFS structure in: esi = name in: ebx = pointer to parameters from sysfunc 70

out: eax, ebx = return values for sysfunc 70

Source
fs/xfs.asm:1546

◆ xfs_hashname()

void xfs_hashname ( arg_t  _name,
arg_t  _len 
)

◆ xfs_Read()

void xfs_Read ( )

-------------------------------------------------------------— in: ebp = pointer to XFS structure in: esi = name in: ebx = pointer to parameters from sysfunc 70

out: eax, ebx = return values for sysfunc 70

Source
fs/xfs.asm:1723

◆ xfs_read_inode()

void xfs_read_inode ( arg_t  _inode_lo,
arg_t  _inode_hi,
arg_t  _buffer 
)

------------------------------------------------------------—

test eax, eax

Source
fs/xfs.asm:487

◆ xfs_ReadFolder()

void xfs_ReadFolder ( )

in: ebp = pointer to XFS structure in: esi in: ebx = pointer to parameters from sysfunc 70 out: eax, ebx = return values for sysfunc 70 out: [edx] – f70.1 out structure

Source
fs/xfs.asm:1350

Variable Documentation

◆ _dst

dd _dst
Initial value
?
Source
fs/xfs.asm:555

◆ _hash

dd _hash
Initial value
?
Source
fs/xfs.asm:1131
Initial value
?
Source
fs/xfs.asm:1204

◆ _offset_begin

DQ _offset_begin
Initial value
?
Source
fs/xfs.asm:1725

◆ _offset_end

DQ _offset_end
Initial value
?
Source
fs/xfs.asm:1726

◆ restore

prologue proc restore
Initial value
,epilogue@proc
Source
fs/xfs.asm:2160

◆ xfs___free

label xfs___free

free all the allocated memory called on partition destroy or during failed initialization from xfs_create_partition

Source
fs/xfs.asm:369

◆ xfs___lock

label xfs___lock

lock partition access mutex

Source
fs/xfs.asm:355

◆ xfs___unlock

label xfs___unlock

unlock partition access mutex

Source
fs/xfs.asm:361

◆ xfs___user_functions

label xfs___user_functions

◆ xfs___user_functions_end

label xfs___user_functions_end