home | help
LFS_BMAPV(2)		       System Calls Manual		    LFS_BMAPV(2)

NAME
     lfs_bmapv -- retrieve disk addresses for arrays of blocks

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/types.h>
     #include <ufs/lfs/lfs.h>

     int
     lfs_bmapv(fsid_t *fsidp, BLOCK_INFO *blkiov, int blkcnt);

DESCRIPTION
     lfs_bmapv() fills in the bi_daddr field for every block listed in the block
     array  blkiov  with  the  disk  address  corresponding to the logical block
     bi_lbn of the file with inode bi_inode.  If bi_lbn is  LFS_UNUSED_LBN,  the
     disk  location  of  the inode block containing the file's inode will be re-
     turned in bi_daddr instead.

     The fsidp argument contains the id of the file system to which  the  inodes
     and  blocks  belong.   The blkiov argument is an array of BLOCK_INFO struc-
     tures (see below).  The blkcnt argument determines the size of  the  blkiov
     array.

     typedef struct block_info {
	 ino_t	     bi_inode;	   /* inode # */
	 ufs_daddr_t bi_lbn;	   /* logical block w/in file */
	 ufs_daddr_t bi_daddr;	   /* disk address of block */
	 time_t      bi_segcreate; /* origin segment create time */
	 int	     bi_version;   /* file version number */
	 void	    *bi_bp;	   /* data buffer */
	 int	     bi_size;	   /* size of the block (if fragment) */
     } BLOCK_INFO;

RETURN VALUES
     lfs_bmapv() returns 0 on success, or -1 on error.

ERRORS
     An error return from lfs_bmapv() indicates:

     [EFAULT]		fsidp  points  outside	the  process's allocated address
			space.

     [EINVAL]		*fsidp does not specify a valid file system.

SEE ALSO
     lfs_markv(2), lfs_segclean(2), lfs_segwait(2), lfs_cleanerd(8)

HISTORY
     The lfs_bmapv() function call appeared in 4.4BSD.

NetBSD 5.0			  May 23, 2000			    LFS_BMAPV(2)

home | help