Changeset 986332aa in mainline
- Timestamp:
- 2007-12-30T21:07:31Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 92688eb
- Parents:
- 2f02aa17
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/tester/vfs/vfs1.c
r2f02aa17 r986332aa 27 27 */ 28 28 29 #include <ipc/ipc.h>30 #include <ipc/services.h>31 29 #include <errno.h> 32 30 #include <stdio.h> 31 #include <stdlib.h> 33 32 #include <string.h> 34 #include < async.h>35 #include "../../../srv/vfs/vfs.h"33 #include <sys/types.h> 34 #include <vfs.h> 36 35 #include "../tester.h" 37 38 #define TMPFS_DEVHANDLE 99939 40 char fs_name[] = "tmpfs";41 char mp[] = "/";42 36 43 37 char *test_vfs1(bool quiet) 44 38 { 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) 65 40 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) 77 45 return "Open failed.\n"; 46 if (fd2 < 0) 47 return "Open failed.\n"; 48 78 49 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); 80 51 81 /* 4. read data */82 52 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) 90 56 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); 92 60 93 61 return NULL; 94 62 } 63
Note:
See TracChangeset
for help on using the changeset viewer.