Changeset 986332aa in mainline


Ignore:
Timestamp:
2007-12-30T21:07:31Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
92688eb
Parents:
2f02aa17
Message:

Use libc's VFS wrappers instead of direct communication with VFS.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tester/vfs/vfs1.c

    r2f02aa17 r986332aa  
    2727 */
    2828
    29 #include <ipc/ipc.h>
    30 #include <ipc/services.h>
    3129#include <errno.h>
    3230#include <stdio.h>
     31#include <stdlib.h>
    3332#include <string.h>
    34 #include <async.h>
    35 #include "../../../srv/vfs/vfs.h"
     33#include <sys/types.h>
     34#include <vfs.h>
    3635#include "../tester.h"
    37 
    38 #define TMPFS_DEVHANDLE 999
    39 
    40 char fs_name[] = "tmpfs";
    41 char mp[] = "/";
    4236
    4337char *test_vfs1(bool quiet)
    4438{
    45         /* 1. connect to VFS */
    46         int vfs_phone;
    47         vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0, 0);
    48         if (vfs_phone < EOK)
    49                 return "Could not connect to VFS.\n";
    50        
    51         /* 2. mount TMPFS as / */
    52         ipcarg_t rc;
    53         aid_t req;
    54         req = async_send_1(vfs_phone, VFS_MOUNT, TMPFS_DEVHANDLE, NULL);
    55         if (ipc_data_write_send(vfs_phone, fs_name, strlen(fs_name)) != EOK) {
    56                 async_wait_for(req, &rc);
    57                 return "Could not send fs_name to VFS.\n";
    58         }
    59         if (ipc_data_write_send(vfs_phone, mp, strlen(mp)) != EOK) {
    60                 async_wait_for(req, &rc);
    61                 return "Could not send mp to VFS.\n";
    62         }
    63         async_wait_for(req, &rc);
    64         if (rc != EOK)
     39        if (mount("tmpfs", "/", "nulldev0") != EOK)
    6540                return "Mount failed.\n";
    66        
    67         /* 3. open some files */
    68         char *path = "/dir2/file2";
    69         ipc_call_t answer;
    70         req = async_send_2(vfs_phone, VFS_OPEN, 0, 0, &answer);
    71         if (ipc_data_write_send(vfs_phone, path, strlen(path)) != EOK) {
    72                 async_wait_for(req, &rc);
    73                 return "Could not send path to VFS.\n";
    74         }
    75         async_wait_for(req, &rc);
    76         if (rc != EOK)
     41        int fd1 = open("/dir1/file1", 0);
     42        int fd2 = open("/dir2/file2", 0);
     43
     44        if (fd1 < 0)
    7745                return "Open failed.\n";
     46        if (fd2 < 0)
     47                return "Open failed.\n";
     48
    7849        if (!quiet)
    79                 printf("Opened %s handle=%d\n", path, IPC_GET_ARG1(answer));
     50                printf("Opened file descriptors %d and %d.\n", fd1, fd2);
    8051
    81         /* 4. read data */
    8252        char buf[10];
    83         req = async_send_1(vfs_phone, VFS_READ, 0, &answer);
    84         if (ipc_data_read_send(vfs_phone, buf, sizeof(buf)) != EOK) {
    85                 async_wait_for(req, &rc);
    86                 return "Could not read data from open file.\n";
    87         }
    88         async_wait_for(req, &rc);
    89         if (rc != EOK)
     53
     54        ssize_t cnt = read(fd1, buf, sizeof(buf));
     55        if (cnt < 0)
    9056                return "Read failed.\n";
    91         printf("Read %d bytes: %s\n", IPC_GET_ARG1(answer), buf);
     57
     58        if (!quiet)
     59                printf("Read %d bytes: %.*s\n", cnt, cnt, buf);
    9260
    9361        return NULL;
    9462}
     63
Note: See TracChangeset for help on using the changeset viewer.