path.c File Reference

#include "fs.h"
#include <string.h>
#include <minix/callnr.h>
#include <sys/stat.h>
#include "buf.h"
#include "file.h"
#include "fproc.h"
#include "inode.h"
#include "super.h"

Include dependency graph for path.c:

Go to the source code of this file.

Functions

FORWARD _PROTOTYPE (char *get_name,(char *old_name, char string[NAME_MAX]))
FORWARD _PROTOTYPE (struct inode *ltraverse,(struct inode *rip, char *path, char *suffix, struct inode *ldip))
PUBLIC struct inodeparse_path (char *path, string, int action)
PUBLIC struct inodeeat_path (char *path)
PUBLIC struct inodelast_dir (char *path, string)
PRIVATE struct inodeltraverse (struct inode *rip, char *path, char *suffix, struct inode *ldip)
PRIVATE char * get_name (char *old_name, string)
PUBLIC struct inodeadvance (struct inode **pdirp, string)
PUBLIC int search_dir (struct inode *ldir_ptr, string, ino_t *numb, int flag)

Variables

PUBLIC char dot1 [2] = "."
PUBLIC char dot2 [3] = ".."


Function Documentation

FORWARD _PROTOTYPE struct inode ltraverse,
(struct inode *rip, char *path, char *suffix, struct inode *ldip) 
 

FORWARD _PROTOTYPE char *  get_name,
(char *old_name, char string[NAME_MAX]) 
 

PUBLIC struct inode* advance struct inode **  pdirp,
string 
 

Definition at line 251 of file path.c.

References advance(), dot2, err_code, fp, get_inode(), inode::i_dev, I_MOUNT, inode::i_mount, inode::i_num, inode::i_sp, int(), LOOK_UP, NIL_INODE, NR_SUPERS, OK, put_inode(), r, ROOT_INODE, search_dir(), sp, strcmp, and string.

PUBLIC struct inode* eat_path char *  path  ) 
 

Definition at line 130 of file path.c.

References EAT_PATH, and parse_path().

Referenced by change(), common_open(), do_access(), do_chmod(), do_chown(), do_link(), do_stat(), do_truncate(), do_utime(), and name_to_dev().

PRIVATE char* get_name char *  old_name,
string 
 

Definition at line 210 of file path.c.

References c, ENAMETOOLONG, err_code, PATH_MAX, and string.

PUBLIC struct inode* last_dir char *  path,
string 
 

Definition at line 143 of file path.c.

References LAST_DIR, parse_path(), and string.

Referenced by do_link(), do_rename(), and do_unlink().

PRIVATE struct inode* ltraverse struct inode rip,
char *  path,
char *  suffix,
struct inode ldip
 

Definition at line 161 of file path.c.

References b, bp, DIRECTORY_BLOCK, dup_inode(), ENOENT, err_code, fp, get_block(), memmove(), NIL_BUF, NIL_INODE, NO_BLOCK, NORMAL, PATH_MAX, put_block(), put_inode(), read_map(), sp, and strlen().

Referenced by parse_path().

PUBLIC struct inode* parse_path char *  path,
string  ,
int  action
 

Definition at line 33 of file path.c.

References advance(), dup_inode(), ELOOP, ENOENT, ENOTDIR, err_code, fp, get_name(), I_DIRECTORY, inode::i_mode, inode::i_nlinks, I_TYPE, ltraverse(), NIL_INODE, PATH_NONSYMBOLIC, PATH_OPAQUE, PATH_PENULTIMATE, put_inode(), S_ISLNK, string, SYMLOOP, and TRUE.

Referenced by do_lstat(), do_rdlink(), eat_path(), last_dir(), and new_node().

PUBLIC int search_dir struct inode ldir_ptr,
string  ,
ino_t numb,
int  flag
 

Definition at line 342 of file path.c.

References b, b_dir, bits, bp, conv4(), CTIME, direct::d_ino, direct::d_name, DELETE, DIR_ENTRY_SIZE, DIRECTORY_BLOCK, DIRTY, dot1, dot2, ENOTDIR, ENOTEMPTY, ENTER, FALSE, forbidden(), get_block(), i, I_DIRECTORY, I_TYPE, IS_EMPTY, LOOK_UP, MTIME, NO_BLOCK, NO_NUM, NORMAL, NR_DIR_ENTRIES, NULL, OK, panic, pos, put_block(), r, read_map(), read_only(), sp, strcmp, string, strncmp(), t, TRUE, W_BIT, and X_BIT.

Referenced by advance(), do_link(), do_mkdir(), do_rename(), do_slink(), new_node(), remove_dir(), and unlink_file().


Variable Documentation

PUBLIC char dot1[2] = "."
 

Definition at line 22 of file path.c.

Referenced by do_mkdir(), f_delblines(), f_delspc(), remove_dir(), and search_dir().

PUBLIC char dot2[3] = ".."
 

Definition at line 23 of file path.c.

Referenced by advance(), do_mkdir(), do_rename(), f_delblines(), remove_dir(), and search_dir().


Generated on Fri Apr 14 23:21:06 2006 for minix by  doxygen 1.4.6