source: mainline/uspace/app/tester/devs/devman2.c@ df29f24

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since df29f24 was 5d1b3aa, checked in by Jakub Jermar <jakub@…>, 14 years ago

Add missing files for devman2 test and test3 driver.

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*
2 * Copyright (c) 2011 Vojtech Horky
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/** @addtogroup tester
30 * @brief Test devman service.
31 * @{
32 */
33/**
34 * @file
35 */
36
37#include <inttypes.h>
38#include <errno.h>
39#include <str_error.h>
40#include <sys/types.h>
41#include <async.h>
42#include <devman.h>
43#include <str.h>
44#include <vfs/vfs.h>
45#include <sys/stat.h>
46#include <fcntl.h>
47#include "../tester.h"
48
49#define DEVICE_CLASS "test3"
50
51const char *test_devman2(void)
52{
53 size_t idx = 1;
54 int rc = EOK;
55 const char *err_msg = NULL;
56 char *path = NULL;
57 while (rc == EOK) {
58 rc = asprintf(&path, "/dev/class/%s\\%zu", DEVICE_CLASS, idx);
59 if (rc < 0) {
60 continue;
61 }
62 int fd = open(path, O_RDONLY);
63 if (fd < 0) {
64 TPRINTF("Failed opening `%s': %s.\n",
65 path, str_error(fd));
66 rc = fd;
67 err_msg = "Failed opening file";
68 continue;
69 }
70 int phone = fd_phone(fd);
71 close(fd);
72 if (phone < 0) {
73 TPRINTF("Failed opening phone: %s.\n", str_error(phone));
74 rc = phone;
75 err_msg = "Failed opening file descriptor phone";
76 continue;
77 }
78 async_hangup(phone);
79 TPRINTF("Path `%s' okay.\n", path);
80 free(path);
81 idx++;
82 rc = EOK;
83 }
84
85 if (path != NULL) {
86 free(path);
87 }
88
89 return err_msg;
90}
91
92/** @}
93 */
Note: See TracBrowser for help on using the repository browser.