Changes in uspace/drv/test1/test1.c [ebcb05a:af6b5157] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/test1/test1.c
rebcb05a raf6b5157 35 35 #include <str_error.h> 36 36 #include <ddf/driver.h> 37 #include <ddf/log.h>38 37 39 38 #include "test1.h" … … 59 58 */ 60 59 static int register_fun_verbose(ddf_dev_t *parent, const char *message, 61 const char *name, const char *match_id, int match_score, 62 int expected_rc) 60 const char *name, const char *match_id, int match_score) 63 61 { 64 ddf_fun_t *fun = NULL;62 ddf_fun_t *fun; 65 63 int rc; 66 64 67 ddf_msg(LVL_DEBUG, "Registering function `%s': %s.", name, message);65 printf(NAME ": registering function `%s': %s.\n", name, message); 68 66 69 67 fun = ddf_fun_create(parent, fun_inner, name); 70 68 if (fun == NULL) { 71 ddf_msg(LVL_ERROR, "Failed creating function %s", name); 72 rc = ENOMEM; 73 goto leave; 69 printf(NAME ": error creating function %s\n", name); 70 return ENOMEM; 74 71 } 75 72 76 rc = ddf_fun_add_match_id(fun, str_dup(match_id), match_score);73 rc = ddf_fun_add_match_id(fun, match_id, match_score); 77 74 if (rc != EOK) { 78 ddf_msg(LVL_ERROR, "Failed adding match IDs to function %s",79 name);80 goto leave;75 printf(NAME ": error adding match IDs to function %s\n", name); 76 ddf_fun_destroy(fun); 77 return rc; 81 78 } 82 79 83 80 rc = ddf_fun_bind(fun); 84 81 if (rc != EOK) { 85 ddf_msg(LVL_ERROR, "Failed binding function %s: %s", name,82 printf(NAME ": error binding function %s: %s\n", name, 86 83 str_error(rc)); 87 goto leave; 84 ddf_fun_destroy(fun); 85 return rc; 88 86 } 89 87 90 ddf_msg(LVL_NOTE, "Registered child device `%s'", name); 91 rc = EOK; 92 93 leave: 94 if (rc != expected_rc) { 95 fprintf(stderr, 96 NAME ": Unexpected error registering function `%s'.\n" 97 NAME ": Expected \"%s\" but got \"%s\".\n", 98 name, str_error(expected_rc), str_error(rc)); 99 } 100 101 if ((rc != EOK) && (fun != NULL)) { 102 ddf_fun_destroy(fun); 103 } 104 105 return rc; 88 printf(NAME ": registered child device `%s'\n", name); 89 return EOK; 106 90 } 107 91 … … 128 112 int rc; 129 113 130 ddf_msg(LVL_DEBUG, "add_device(name=\"%s\", handle=%d)",114 printf(NAME ": add_device(name=\"%s\", handle=%d)\n", 131 115 dev->name, (int) dev->handle); 132 116 133 117 fun_a = ddf_fun_create(dev, fun_exposed, "a"); 134 118 if (fun_a == NULL) { 135 ddf_msg(LVL_ERROR, "Failed creating function 'a'.");119 printf(NAME ": error creating function 'a'.\n"); 136 120 return ENOMEM; 137 121 } … … 139 123 rc = ddf_fun_bind(fun_a); 140 124 if (rc != EOK) { 141 ddf_msg(LVL_ERROR, "Failed binding function 'a'.");125 printf(NAME ": error binding function 'a'.\n"); 142 126 return rc; 143 127 } … … 149 133 ddf_fun_add_to_class(fun_a, "virt-null"); 150 134 } else if (str_cmp(dev->name, "test1") == 0) { 151 (void) register_fun_verbose(dev, 152 "cloning myself ;-)", "clone", 153 "virtual&test1", 10, EOK); 154 (void) register_fun_verbose(dev, 155 "cloning myself twice ;-)", "clone", 156 "virtual&test1", 10, EEXISTS); 135 (void) register_fun_verbose(dev, "cloning myself ;-)", "clone", 136 "virtual&test1", 10); 157 137 } else if (str_cmp(dev->name, "clone") == 0) { 158 (void) register_fun_verbose(dev, 159 "run by the same task", "child", 160 "virtual&test1&child", 10, EOK); 138 (void) register_fun_verbose(dev, "run by the same task", "child", 139 "virtual&test1&child", 10); 161 140 } 162 141 163 ddf_msg(LVL_DEBUG, "Device `%s' accepted.", dev->name);142 printf(NAME ": device `%s' accepted.\n", dev->name); 164 143 165 144 return EOK; … … 169 148 { 170 149 printf(NAME ": HelenOS test1 virtual device driver\n"); 171 ddf_log_init(NAME, LVL_ERROR);172 150 return ddf_driver_main(&test1_driver); 173 151 }
Note:
See TracChangeset
for help on using the changeset viewer.