Changeset 01b87dc5 in mainline
- Timestamp:
- 2010-12-21T16:07:59Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 61cc94e
- Parents:
- c81b6f2
- Location:
- uspace
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/packet/generic/packet_server.c
rc81b6f2 r01b87dc5 135 135 /** Creates a new packet of dimensions at least as given. 136 136 * 137 * Should be used only when the global data are locked.138 *139 137 * @param[in] length The total length of the packet, including the header, 140 138 * the addresses and the data of the packet. … … 153 151 packet_t *packet; 154 152 int rc; 153 154 assert(fibril_mutex_is_locked(&ps_globals.lock)); 155 155 156 156 // already locked … … 233 233 /** Release the packet and returns it to the appropriate free packet queue. 234 234 * 235 * Should be used only when the global data are locked.236 *237 235 * @param[in] packet The packet to be released. 238 236 * … … 242 240 int index; 243 241 int result; 242 243 assert(fibril_mutex_is_locked(&ps_globals.lock)); 244 244 245 245 for (index = 0; (index < FREE_QUEUES_COUNT - 1) && -
uspace/srv/devman/devman.c
rc81b6f2 r01b87dc5 384 384 printf(NAME ": create_root_node\n"); 385 385 386 fibril_rwlock_write_lock(&tree->rwlock); 386 387 node = create_dev_node(); 387 388 if (node != NULL) { … … 393 394 tree->root_node = node; 394 395 } 396 fibril_rwlock_write_unlock(&tree->rwlock); 395 397 396 398 return node != NULL; … … 455 457 /** Start a driver 456 458 * 457 * The driver's mutex is assumed to be locked.458 *459 459 * @param drv The driver's structure. 460 460 * @return True if the driver's task is successfully spawned, false … … 465 465 int rc; 466 466 467 assert(fibril_mutex_is_locked(&drv->driver_mutex)); 468 467 469 printf(NAME ": start_driver '%s'\n", drv->name); 468 470 … … 859 861 /** Find the device node structure of the device witch has the specified handle. 860 862 * 861 * Device tree's rwlock should be held at least for reading.862 *863 863 * @param tree The device tree where we look for the device node. 864 864 * @param handle The handle of the device. … … 868 868 { 869 869 unsigned long key = handle; 870 link_t *link = hash_table_find(&tree->devman_devices, &key); 870 link_t *link; 871 872 assert(fibril_rwlock_is_locked(&tree->rwlock)); 873 874 link = hash_table_find(&tree->devman_devices, &key); 871 875 return hash_table_get_instance(link, node_t, devman_link); 872 876 } … … 924 928 /** Insert new device into device tree. 925 929 * 926 * The device tree's rwlock should be already held exclusively when calling this927 * function.928 *929 930 * @param tree The device tree. 930 931 * @param node The newly added device node. … … 941 942 assert(tree != NULL); 942 943 assert(dev_name != NULL); 944 assert(fibril_rwlock_is_write_locked(&tree->rwlock)); 943 945 944 946 node->name = dev_name; -
uspace/srv/devmap/devmap.c
rc81b6f2 r01b87dc5 46 46 #include <str.h> 47 47 #include <ipc/devmap.h> 48 #include <assert.h> 48 49 49 50 #define NAME "devmap" … … 208 209 } 209 210 210 /** Find namespace with given name. 211 * 212 * The devices_list_mutex should be already held when 213 * calling this function. 214 * 215 */ 211 /** Find namespace with given name. */ 216 212 static devmap_namespace_t *devmap_namespace_find_name(const char *name) 217 213 { 218 214 link_t *item; 215 216 assert(fibril_mutex_is_locked(&devices_list_mutex)); 217 219 218 for (item = namespaces_list.next; item != &namespaces_list; item = item->next) { 220 219 devmap_namespace_t *namespace = … … 229 228 /** Find namespace with given handle. 230 229 * 231 * The devices_list_mutex should be already held when232 * calling this function.233 *234 230 * @todo: use hash table 235 231 * … … 238 234 { 239 235 link_t *item; 236 237 assert(fibril_mutex_is_locked(&devices_list_mutex)); 238 240 239 for (item = namespaces_list.next; item != &namespaces_list; item = item->next) { 241 240 devmap_namespace_t *namespace = … … 248 247 } 249 248 250 /** Find device with given name. 251 * 252 * The devices_list_mutex should be already held when 253 * calling this function. 254 * 255 */ 249 /** Find device with given name. */ 256 250 static devmap_device_t *devmap_device_find_name(const char *ns_name, 257 251 const char *name) 258 252 { 259 253 link_t *item; 254 255 assert(fibril_mutex_is_locked(&devices_list_mutex)); 256 260 257 for (item = devices_list.next; item != &devices_list; item = item->next) { 261 258 devmap_device_t *device = … … 271 268 /** Find device with given handle. 272 269 * 273 * The devices_list_mutex should be already held when274 * calling this function.275 *276 270 * @todo: use hash table 277 271 * … … 280 274 { 281 275 link_t *item; 276 277 assert(fibril_mutex_is_locked(&devices_list_mutex)); 278 282 279 for (item = devices_list.next; item != &devices_list; item = item->next) { 283 280 devmap_device_t *device = … … 290 287 } 291 288 292 /** Create a namespace (if not already present) 293 * 294 * The devices_list_mutex should be already held when 295 * calling this function. 296 * 297 */ 289 /** Create a namespace (if not already present). */ 298 290 static devmap_namespace_t *devmap_namespace_create(const char *ns_name) 299 291 { 300 devmap_namespace_t *namespace = devmap_namespace_find_name(ns_name); 292 devmap_namespace_t *namespace; 293 294 assert(fibril_mutex_is_locked(&devices_list_mutex)); 295 296 namespace = devmap_namespace_find_name(ns_name); 301 297 if (namespace != NULL) 302 298 return namespace; … … 323 319 } 324 320 325 /** Destroy a namespace (if it is no longer needed) 326 * 327 * The devices_list_mutex should be already held when 328 * calling this function. 329 * 330 */ 321 /** Destroy a namespace (if it is no longer needed). */ 331 322 static void devmap_namespace_destroy(devmap_namespace_t *namespace) 332 323 { 324 assert(fibril_mutex_is_locked(&devices_list_mutex)); 325 333 326 if (namespace->refcnt == 0) { 334 327 list_remove(&(namespace->namespaces)); … … 339 332 } 340 333 341 /** Increase namespace reference count by including device 342 * 343 * The devices_list_mutex should be already held when 344 * calling this function. 345 * 346 */ 334 /** Increase namespace reference count by including device. */ 347 335 static void devmap_namespace_addref(devmap_namespace_t *namespace, 348 336 devmap_device_t *device) 349 337 { 338 assert(fibril_mutex_is_locked(&devices_list_mutex)); 339 350 340 device->namespace = namespace; 351 341 namespace->refcnt++; 352 342 } 353 343 354 /** Decrease namespace reference count 355 * 356 * The devices_list_mutex should be already held when 357 * calling this function. 358 * 359 */ 344 /** Decrease namespace reference count. */ 360 345 static void devmap_namespace_delref(devmap_namespace_t *namespace) 361 346 { 347 assert(fibril_mutex_is_locked(&devices_list_mutex)); 348 362 349 namespace->refcnt--; 363 350 devmap_namespace_destroy(namespace); 364 351 } 365 352 366 /** Unregister device and free it 367 * 368 * The devices_list_mutex should be already held when 369 * calling this function. 370 * 371 */ 353 /** Unregister device and free it. */ 372 354 static void devmap_device_unregister_core(devmap_device_t *device) 373 355 { 356 assert(fibril_mutex_is_locked(&devices_list_mutex)); 357 374 358 devmap_namespace_delref(device->namespace); 375 359 list_remove(&(device->devices));
Note:
See TracChangeset
for help on using the changeset viewer.