This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history] / sys / isofs / isofs_node.h
index e20489d..9b8382f 100644 (file)
@@ -1,11 +1,22 @@
 /*
 /*
- * PATCHES MAGIC                LEVEL   PATCH THAT GOT US HERE
- * --------------------         -----   ----------------------
- * CURRENT PATCH LEVEL:         1       00151
- * --------------------         -----   ----------------------
- *
- * 23 Apr 93   Jagane D Sundar         support nfs exported isofs
+ *     $Id: isofs_node.h,v 1.4 1993/11/25 01:32:26 wollman Exp $
  */
  */
+
+#ifndef _ISOFS_ISOFS_NODE_H_
+#define _ISOFS_ISOFS_NODE_H_ 1
+
+
+typedef        struct  {
+       unsigned        iso_cln;        /* Child link */
+       unsigned        iso_pln;        /* Parents link */
+       struct timeval  iso_atime;      /* time of last access */
+       struct timeval  iso_mtime;      /* time of last modification */
+       struct timeval  iso_ctime;      /* time file changed */
+       u_short         iso_mode;       /* files access mode and type */
+       uid_t           iso_uid;        /* owner user id */
+       gid_t           iso_gid;        /* owner group id */
+} ISO_RRIP_INODE;
+
 struct iso_node {
        struct  iso_node *i_chain[2]; /* hash chain, MUST be first */
        struct  vnode *i_vnode; /* vnode associated with this inode */
 struct iso_node {
        struct  iso_node *i_chain[2]; /* hash chain, MUST be first */
        struct  vnode *i_vnode; /* vnode associated with this inode */
@@ -25,15 +36,14 @@ struct iso_node {
        int iso_extlen;
        int iso_extent;
        int i_size;
        int iso_extlen;
        int iso_extent;
        int i_size;
-       unsigned char iso_time[7];
        int iso_flags;
        int iso_unit_size;
        int iso_interleave_gap;
        int iso_volume_seq;
        int iso_flags;
        int iso_unit_size;
        int iso_interleave_gap;
        int iso_volume_seq;
-       int iso_namelen;
-       /* The following are reqd for NFS FH. -Jagane D Sundar- */
-       int iso_parent;
-       int iso_parent_ext;
+       int iso_namelen;        /* ISO9660/RRIP name len */
+       int iso_parent;         /* byte offset in beginning of dir record */
+       int iso_parent_ext;     /* block number of dir record */
+       ISO_RRIP_INODE  inode;
 };
 
 #define        i_forw          i_chain[0]
 };
 
 #define        i_forw          i_chain[0]
@@ -50,8 +60,6 @@ struct iso_node {
 #define ISO_ILOCK(ip)  iso_ilock(ip)
 #define ISO_IUNLOCK(ip)        iso_iunlock(ip)
 
 #define ISO_ILOCK(ip)  iso_ilock(ip)
 #define ISO_IUNLOCK(ip)        iso_iunlock(ip)
 
-#define VT_ISOFS (VT_MFS+1)
-
 /*
  * Prototypes for ISOFS vnode operations
  */
 /*
  * Prototypes for ISOFS vnode operations
  */
@@ -82,6 +90,19 @@ int isofs_reclaim __P((struct vnode *vp));
 int isofs_lock __P((struct vnode *vp));
 int isofs_unlock __P((struct vnode *vp));
 int isofs_strategy __P((struct buf *bp));
 int isofs_lock __P((struct vnode *vp));
 int isofs_unlock __P((struct vnode *vp));
 int isofs_strategy __P((struct buf *bp));
-int isofs_print __P((struct vnode *vp));
+void isofs_print __P((struct vnode *vp));
 int isofs_islocked __P((struct vnode *vp));
 
 int isofs_islocked __P((struct vnode *vp));
 
+/* From isofs_node.c: */
+struct iso_directory_record;
+extern void isofs_init(void);
+extern int iso_iget(struct iso_node *, ino_t, struct iso_node **, 
+                   struct iso_directory_record *);
+extern void iso_iput(struct iso_node *);
+extern void iso_ilock(struct iso_node *);
+extern void iso_iunlock(struct iso_node *);
+
+
+extern int iso_blkatoff(struct iso_node *, off_t, char **, struct buf **);
+
+#endif /* _ISOFS_ISOFS_NODE_H_ */