Changeset 623


Ignore:
Timestamp:
Jul 17, 2015, 4:34:54 PM (9 years ago)
Author:
guerin
Message:

fat32: use struct for _fat_file_info(), pass is_dir

Location:
soft/giet_vm
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_fat32/fat32.c

    r622 r623  
    30563056/////////////////////////////////////////////////////////////////////////////////
    30573057// This function implements the giet_fat_file_info() system call.
    3058 // It returns the size and the current offset value for a file identified
    3059 // by the "fd_id" argument.
     3058// It returns the size, the current offset and the directory info for a file
     3059// identified by the "fd_id" argument.
    30603060/////////////////////////////////////////////////////////////////////////////////
    30613061// Returns  0 if success.
     
    30653065//  -3  : "File not open"
    30663066/////////////////////////////////////////////////////////////////////////////////
    3067 int _fat_file_info( unsigned int   fd_id,
    3068                     unsigned int*  size,
    3069                     unsigned int*  offset )
    3070 {
    3071     // checking FAT initialised
    3072     if( _fat.initialised != FAT_INITIALISED )
     3067int _fat_file_info( unsigned int            fd_id,
     3068                    struct fat_file_info_s* info )
     3069{
     3070    if ( _fat.initialised != FAT_INITIALISED )
    30733071    {
    30743072        _printf("\n[FAT ERROR] in _fat_file_info() : FAT not initialised\n");
     
    30763074    }
    30773075
    3078 
    3079     if( fd_id >= GIET_OPEN_FILES_MAX )
     3076    if ( fd_id >= GIET_OPEN_FILES_MAX )
    30803077    {
    30813078        _printf("\n[FAT ERROR] in _fat_file_info() : illegal file descriptor index\n");
     
    30903087    }
    30913088
    3092     *size   = _fat.fd[fd_id].inode->size;
    3093     *offset = _fat.fd[fd_id].seek; 
     3089    info->size   = _fat.fd[fd_id].inode->size;
     3090    info->offset = _fat.fd[fd_id].seek;
     3091    info->is_dir = _fat.fd[fd_id].inode->is_dir;
     3092
    30943093    return 0;
    3095 
    30963094} // end _fat_file_info()
    30973095
  • soft/giet_vm/giet_fat32/fat32.h

    r587 r623  
    124124/*******************************************************************************/
    125125
     126#define FAT_INITIALISED         0xBABEF00D
     127
     128#ifndef _FAT32_SHARED
     129#define _FAT32_SHARED
     130typedef struct fat_file_info_s
     131{
     132    unsigned int size;
     133    unsigned int offset;
     134    unsigned int is_dir;
     135}   fat_file_info_t;
    126136
    127137#define SEEK_SET                0
    128138#define SEEK_CUR                1
    129139
    130 #define FAT_INITIALISED         0xBABEF00D
    131 
    132140#define O_RDONLY                0x01
    133141#define O_CREATE                0x20
     142#endif // _FAT32_SHARED
    134143
    135144/********************************************************************************
     
    227236extern int _fat_close( unsigned int fd_id );               // file descriptor
    228237
    229 extern int _fat_file_info( unsigned int  fd_id,            // file descriptor
    230                            unsigned int* size,             // file size
    231                            unsigned int* offset );         // current offset
     238extern int _fat_file_info( unsigned int            fd_id,  // file descriptor
     239                           struct fat_file_info_s* info ); // file info struct
    232240
    233241extern int _fat_read( unsigned int fd_id,                  // file descriptor 
  • soft/giet_vm/giet_libs/stdio.c

    r614 r623  
    907907
    908908/////////////////////////////////////////////
    909 int giet_fat_file_info( unsigned int  fd_id,
    910                         unsigned int* size,
    911                         unsigned int* offset )
     909int giet_fat_file_info( unsigned int            fd_id,
     910                        struct fat_file_info_s* info )
    912911{
    913912    return sys_call( SYSCALL_FAT_FINFO,
    914913                     fd_id,
    915                      (unsigned int)size,
    916                      (unsigned int)offset,
    917                      0 );
     914                     (unsigned int)info,
     915                     0, 0 );
    918916}
    919917
  • soft/giet_vm/giet_libs/stdio.h

    r614 r623  
    8888////////////////////////////////////////////////////////////////////////////
    8989
     90#ifndef _FAT32_SHARED
     91#define _FAT32_SHARED
     92typedef struct fat_file_info_s
     93{
     94    unsigned int size;
     95    unsigned int offset;
     96    unsigned int is_dir;
     97}   fat_file_info_t;
     98
    9099#define SEEK_SET            0          // argument for giet_fat_lseek()
    91100#define SEEK_CUR            1          // argument for giet_fat_lseek
     
    93102#define O_CREATE            0x20       // argument for giet_fat_open()
    94103#define O_RDONLY            0x01       // argument for giet_fat_open()
     104#endif // _FAT32_SHARED
    95105
    96106////////////////////////////////////////////////////////////////////////////
     
    284294extern int giet_fat_close( unsigned int fd_id );
    285295
    286 extern int giet_fat_file_info( unsigned int  fd_id,
    287                                unsigned int* size,
    288                                unsigned int* offset );
     296extern int giet_fat_file_info( unsigned int             fd_id,
     297                               struct fat_file_info_s*  info );
    289298
    290299extern int giet_fat_read( unsigned int fd_id,
Note: See TracChangeset for help on using the changeset viewer.