Changeset 8436590 in mainline for uspace/drv/test1/test1.c
- Timestamp:
- 2011-04-07T21:38:17Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 033cbf82
- Parents:
- 3acb285 (diff), ccca251 (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/test1/test1.c
r3acb285 r8436590 59 59 */ 60 60 static int register_fun_verbose(ddf_dev_t *parent, const char *message, 61 const char *name, const char *match_id, int match_score) 61 const char *name, const char *match_id, int match_score, 62 int expected_rc) 62 63 { 63 ddf_fun_t *fun ;64 ddf_fun_t *fun = NULL; 64 65 int rc; 65 66 66 ddf_msg(LVL_DEBUG, "Registering function `%s': %s. \n", name, message);67 ddf_msg(LVL_DEBUG, "Registering function `%s': %s.", name, message); 67 68 68 69 fun = ddf_fun_create(parent, fun_inner, name); 69 70 if (fun == NULL) { 70 ddf_msg(LVL_ERROR, "Failed creating function %s\n", name); 71 return ENOMEM; 71 ddf_msg(LVL_ERROR, "Failed creating function %s", name); 72 rc = ENOMEM; 73 goto leave; 72 74 } 73 75 74 rc = ddf_fun_add_match_id(fun, match_id, match_score);76 rc = ddf_fun_add_match_id(fun, str_dup(match_id), match_score); 75 77 if (rc != EOK) { 76 ddf_msg(LVL_ERROR, "Failed adding match IDs to function %s \n",78 ddf_msg(LVL_ERROR, "Failed adding match IDs to function %s", 77 79 name); 78 ddf_fun_destroy(fun); 79 return rc; 80 goto leave; 80 81 } 81 82 82 83 rc = ddf_fun_bind(fun); 83 84 if (rc != EOK) { 84 ddf_msg(LVL_ERROR, "Failed binding function %s: %s \n", name,85 ddf_msg(LVL_ERROR, "Failed binding function %s: %s", name, 85 86 str_error(rc)); 86 ddf_fun_destroy(fun); 87 return rc; 87 goto leave; 88 88 } 89 89 90 ddf_msg(LVL_NOTE, "Registered child device `%s'\n", name); 91 return EOK; 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; 92 106 } 93 107 … … 114 128 int rc; 115 129 116 ddf_msg(LVL_DEBUG, "add_device(name=\"%s\", handle=%d) \n",130 ddf_msg(LVL_DEBUG, "add_device(name=\"%s\", handle=%d)", 117 131 dev->name, (int) dev->handle); 118 132 119 133 fun_a = ddf_fun_create(dev, fun_exposed, "a"); 120 134 if (fun_a == NULL) { 121 ddf_msg(LVL_ERROR, "Failed creating function 'a'. \n");135 ddf_msg(LVL_ERROR, "Failed creating function 'a'."); 122 136 return ENOMEM; 123 137 } … … 125 139 rc = ddf_fun_bind(fun_a); 126 140 if (rc != EOK) { 127 ddf_msg(LVL_ERROR, "Failed binding function 'a'. \n");141 ddf_msg(LVL_ERROR, "Failed binding function 'a'."); 128 142 return rc; 129 143 } … … 135 149 ddf_fun_add_to_class(fun_a, "virt-null"); 136 150 } else if (str_cmp(dev->name, "test1") == 0) { 137 (void) register_fun_verbose(dev, "cloning myself ;-)", "clone", 138 "virtual&test1", 10); 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); 139 157 } else if (str_cmp(dev->name, "clone") == 0) { 140 (void) register_fun_verbose(dev, "run by the same task", "child", 141 "virtual&test1&child", 10); 158 (void) register_fun_verbose(dev, 159 "run by the same task", "child", 160 "virtual&test1&child", 10, EOK); 142 161 } 143 162 144 ddf_msg(LVL_DEBUG, "Device `%s' accepted. \n", dev->name);163 ddf_msg(LVL_DEBUG, "Device `%s' accepted.", dev->name); 145 164 146 165 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.