Changeset 368ee04 in mainline for uspace/app/bdsh/exec.c


Ignore:
Timestamp:
2017-04-05T18:10:39Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
93ad8166
Parents:
39f892a9 (diff), 2166728 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~jakub/helenos/vfs-2.5-cherrypick

This merge cherry-picks some of the changesets from Jiri Zarevucky's:

lp:~zarevucky-jiri/helenos/vfs-2.5

and then continues independently, yet sometime in a similar vein.

Roughly speaking, Jiri's branch is merged entirely up to its revision
1926 and then cherry-picked on and off until its revision 1965. Among
these changes are:

  • relativization of the API,
  • client-side roots,
  • server-side mounts,
  • inbox for passing arbitrary files from parent to child,
  • some streamlining and cleanup.

Additional changes include:

  • addressing issues introduced by the above changes,
  • client-side I/O cursors (file positions),
  • all HelenOS file system APIs begin with the vfs_ prefix and can be used after including vfs/vfs.h,
  • removal of some POSIX-ish headers and definitions,
  • additional cleanup.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/bdsh/exec.c

    r39f892a9 r368ee04  
    3737#include <unistd.h>
    3838#include <str.h>
    39 #include <fcntl.h>
    4039#include <str_error.h>
    4140#include <errno.h>
     
    6059        int fd;
    6160
    62         fd = open(f, O_RDONLY);
     61        fd = vfs_lookup_open(f, WALK_REGULAR, MODE_READ);
    6362        if (fd >= 0) {
    64                 close(fd);
     63                vfs_put(fd);
    6564                return 0;
    6665        } else
     
    101100        char *tmp;
    102101        int rc, retval, i;
    103         int file_handles[3];
    104         int *file_handles_p[4];
     102        int file_handles[3] = { -1, -1, -1 };
    105103        FILE *files[3];
    106104
     
    113111       
    114112        for (i = 0; i < 3 && files[i] != NULL; i++) {
    115                 if (vfs_fhandle(files[i], &file_handles[i]) == EOK) {
    116                         file_handles_p[i] = &file_handles[i];
    117                 }
    118                 else {
    119                         file_handles_p[i] = NULL;
    120                 }
     113                vfs_fhandle(files[i], &file_handles[i]);
    121114        }
    122         file_handles_p[i] = NULL;
    123115
    124         rc = task_spawnvf(&tid, &twait, tmp, (const char **) argv, file_handles_p);
     116        rc = task_spawnvf(&tid, &twait, tmp, (const char **) argv,
     117            file_handles[0], file_handles[1], file_handles[2]);
    125118        free(tmp);
    126119
Note: See TracChangeset for help on using the changeset viewer.