Ignore:
Timestamp:
Nov 7, 2017, 3:08:12 PM (6 years ago)
Author:
alain
Message:

First implementation of fork/exec.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/syscalls/sys_closedir.c

    r23 r407  
    2424#include <hal_types.h>
    2525#include <vfs.h>
     26#include <printk.h>
    2627#include <thread.h>
    27 #include <printk.h>
    2828#include <process.h>
     29#include <errno.h>
     30#include <syscalls.h>
     31#include <shared_syscalls.h>
    2932
    30 /////////////////////////////////////
    31 int sys_closedir ( uint32_t file_id )
     33///////////////////////////////
     34int sys_closedir ( DIR * dirp )
    3235{
    33         error_t        error;
    34         xptr_t         file_xp;   // extended pointer on searched directory file descriptor
    35 
    36         thread_t     * this     = CURRENT_THREAD;
    37         process_t    * process  = this->process;
    38 
    39     // check file_id argument
    40         if( file_id >= CONFIG_PROCESS_FILE_MAX_NR )
    41         {
    42         printk("\n[ERROR] in %s : illegal file descriptor index %d\n",
    43                __FUNCTION__ , file_id );
    44         this->errno = EBADFD;
    45                 return -1;
    46         }
    47 
    48     // get extended pointer on remote file descriptor
    49     file_xp = process_fd_get_xptr( process , file_id );
    50 
    51     if( file_xp == XPTR_NULL )
    52     {
    53         printk("\n[ERROR] in %s : undefined file descriptor index = %d\n",
    54                __FUNCTION__ , file_id );
    55                 this->errno = EBADFD;
    56                 return -1;
    57     }
    58 
    59     // call relevant VFS function
    60         error  = vfs_close( file_xp , file_id );
    61 
    62         if( error )
    63         {
    64         printk("\n[ERROR] in %s : cannot close the directory = %d\n",
    65                __FUNCTION__ , file_id );
    66                 this->errno = error;
    67                 return -1;
    68         }
    69 
    70         return 0;
    71 
     36    printk("\n[ERROR] in %s : not implemented yet\n", __FUNCTION__ );
     37    CURRENT_THREAD->errno = ENOMEM;
     38    return -1;
    7239}  // end sys_closedir()
Note: See TracChangeset for help on using the changeset viewer.