#ifndef  SYS_VNODE_IF_H
#define SYS_VNODE_IF_H

#include <sys/appleapiopts.h>
#include <sys/cdefs.h>
#include <sys/kernel_types.h>
#include <sys/buf.h>
#include <mach/memory_object_types.h>

#include <APPLE/sys/vnode_if.h>

/*vnop_readdir_args

struct vnop_readdir_args { 
    struct vnodeop_desc *a_desc; 
    vnode_t a_vp; 
    struct uio *a_uio; 
    int a_flags; 
    int *a_eofflag; 
    int *a_numdirent; 
    vfs_context_t a_context; 
};  
Discussion 



When VNOP_READDIR is called from the NFS Server, the nfs_data argument is non-NULL. 

The value of nfs_eofflag should be set to TRUE if the end of the directory was reached while reading. 

The directory seek offset (cookies) are returned to the NFS client and may be used later to restart a directory read part way through the directory. There is one cookie returned for each directory entry returned and its size is determince from nfs_sizeofcookie. The value of the cookie should be the logical offset within the directory where the on-disc version of the appropriate directory entry starts. Memory for the cookies is allocated from M_TEMP and it is freed by the caller of VNOP_READDIR.*/
struct vnop_readdir_args { 
    struct vnodeop_desc *a_desc; 
    vnode_t a_vp; 
    struct uio *a_uio; 
    int a_flags; 
    int *a_eofflag; 
    int *a_numdirent; 
    vfs_context_t a_context; 
};  

#endif 
