Go to the documentation of this file.
   41 #define VBLKSIZE         (1 << VBLKSHIFT) 
   42 #define VBLKMASK         (VBLKSIZE - 1) 
   43 #define DBPERVBLK        (VBLKSIZE / DEV_BSIZE) 
   44 #define INDIRPERVBLK(fs) (NINDIR(fs) / ((fs)->fs_bsize >> VBLKSHIFT)) 
   45 #define IPERVBLK(fs)     (INOPB(fs) / ((fs)->fs_bsize >> VBLKSHIFT)) 
   46 #define INOPB(fs)        ((fs)->fs_inopb) 
   47 #define INO_TO_VBA(fs, ipervblk, x) \ 
   48     (fsbtodb(fs, cgimin(fs, ino_to_cg(fs, x))) + \ 
   49     (((x) % (fs)->fs_ipg) / (ipervblk) * DBPERVBLK)) 
   50 #define INO_TO_VBO(ipervblk, x) ((x) % ipervblk) 
   69 #if defined(UFS2_ONLY) 
   70 #define DIP(field) dp2.field 
   71 #elif defined(UFS1_ONLY) 
   72 #define DIP(field) dp1.field 
   74 #define DIP(field) fs->fs_magic == FS_UFS1_MAGIC ? dp1.field : dp2.field 
   89   size_t n, nb, size, off, vboff;
 
  101     for (n = 0; sblock_try[n] != -1; n++) {
 
  102       if (dskread(
fs, sblock_try[n] / 
DEV_BSIZE, 16, fd))
 
  105 #
if defined(UFS1_ONLY)
 
  107 #elif defined(UFS2_ONLY)
 
  116     if (sblock_try[n] == -1) {
 
  126   if (inomap != 
inode) {
 
  131 #if defined(UFS1_ONLY) 
  134 #elif defined(UFS2_ONLY) 
  172       if (indmap != vbaddr) {
 
  173         if (dskread(indbuf, vbaddr, 
DBPERVBLK, fd))
 
  177       n = (lbn - 
NDADDR) & (n - 1);
 
  178 #if defined(UFS1_ONLY) 
  180 #elif defined(UFS2_ONLY) 
  197       if (dskread(blkbuf, vbaddr, n >> 
DEV_BSHIFT, fd))
 
  204     memcpy(s, blkbuf + vboff, n);
 
  248     for (s = path; *s && *s != 
'/'; s++)
 
  259     if ((dt = fsfind(
name, &ino, fd)) <= 0)
 
  264   return dt == 
DT_REG ? ino : 0;
 
  284   fsread(fd->
ino, &tmp, 1, fd);
 
  293   return (fsread(fd->
ino, data, size, fd));
 
  322   (
void *) ufs_openFile, 
 
  331     kpanic(
"Unable To Enable UFS");
 
  
 
struct ufs1_dinode ufs1_i
int ufs_initialize(struct vfs_mountPoint *mp)
void kfree(void *baseAddr)
int lookup(struct inode *dir, const char *name, int len, struct inode **result)
int strcmp(const char *str1, const char *str2)
void kpanic(const char *fmt,...)
print panic message and halt system
void * memcpy(const void *dst, const void *src, size_t length)
struct vfs_mountPoint * mp
int vfsRegisterFS(struct fileSystem newFS)
register a file system
int ufs_writeFile(fileDescriptor_t *fd, char *data, uInt32 offset, long size)
int ufs_readFile(fileDescriptor_t *fd, char *data, uInt32 offset, long size)
struct ufs2_dinode ufs2_i
#define sblksize(fs, size, lbn)
int(* read)(void *, void *, uInt32, uInt32)
#define INO_TO_VBA(fs, ipervblk, x)
struct device_node * device
void * kmalloc(uInt32 len)
#define INO_TO_VBO(ipervblk, x)
struct device_interface * devInfo
int kprintf(const char *,...)
#define blkmap(fs, map, loc)