@ -146,4 +146,52 @@ u64 os_get_nsec(void);
*/
int os_parse_args ( struct sandbox_state * state , int argc , char * argv [ ] ) ;
/*
* Types of directory entry that we support . See also os_dirent_typename in
* the C file .
*/
enum os_dirent_t {
OS_FILET_REG , /* Regular file */
OS_FILET_LNK , /* Symbolic link */
OS_FILET_DIR , /* Directory */
OS_FILET_UNKNOWN , /* Something else */
OS_FILET_COUNT ,
} ;
/** A directory entry node, containing information about a single dirent */
struct os_dirent_node {
struct os_dirent_node * next ; /* Pointer to next node, or NULL */
ulong size ; /* Size of file in bytes */
enum os_dirent_t type ; /* Type of entry */
char name [ 0 ] ; /* Name of entry */
} ;
/**
* Get a directionry listing
*
* This allocates and returns a linked list containing the directory listing .
*
* @ param dirname Directory to examine
* @ param headp Returns pointer to head of linked list , or NULL if none
* @ return 0 if ok , - ve on error
*/
int os_dirent_ls ( const char * dirname , struct os_dirent_node * * headp ) ;
/**
* Get the name of a directory entry type
*
* @ param type Type to cehck
* @ return string containing the name of that type , or " ??? " if none / invalid
*/
const char * os_dirent_get_typename ( enum os_dirent_t type ) ;
/**
* Get the size of a file
*
* @ param fname Filename to check
* @ return size of file , or - 1 if an error ocurred
*/
ssize_t os_get_filesize ( const char * fname ) ;
# endif