Changeset 83a2f43 in mainline
- Timestamp:
- 2011-02-15T19:43:50Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- af6b5157
- Parents:
- 34588a80
- Location:
- uspace
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/isa/isa.c
r34588a80 r83a2f43 68 68 69 69 typedef struct isa_fun { 70 function_t *fnode;70 ddf_fun_t *fnode; 71 71 hw_resource_list_t hw_resources; 72 72 } isa_fun_t; 73 73 74 static hw_resource_list_t *isa_get_fun_resources( function_t *fnode)74 static hw_resource_list_t *isa_get_fun_resources(ddf_fun_t *fnode) 75 75 { 76 76 isa_fun_t *fun = ISA_FUN(fnode); … … 80 80 } 81 81 82 static bool isa_enable_fun_interrupt( function_t *fnode)82 static bool isa_enable_fun_interrupt(ddf_fun_t *fnode) 83 83 { 84 84 // TODO … … 92 92 }; 93 93 94 static d evice_ops_t isa_fun_ops;95 96 static int isa_add_device(d evice_t *dev);94 static ddf_dev_ops_t isa_fun_ops; 95 96 static int isa_add_device(ddf_dev_t *dev); 97 97 98 98 /** The isa device driver's standard operations */ … … 107 107 }; 108 108 109 static isa_fun_t *isa_fun_create(d evice_t *dev, const char *name)109 static isa_fun_t *isa_fun_create(ddf_dev_t *dev, const char *name) 110 110 { 111 111 isa_fun_t *fun = calloc(1, sizeof(isa_fun_t)); … … 113 113 return NULL; 114 114 115 function_t *fnode = ddf_fun_create(dev, fun_inner, name);115 ddf_fun_t *fnode = ddf_fun_create(dev, fun_inner, name); 116 116 if (fnode == NULL) { 117 117 free(fun); … … 388 388 } 389 389 390 static char *isa_fun_read_info(char *fun_conf, d evice_t *dev)390 static char *isa_fun_read_info(char *fun_conf, ddf_dev_t *dev) 391 391 { 392 392 char *line; … … 447 447 } 448 448 449 static void fun_conf_parse(char *conf, d evice_t *dev)449 static void fun_conf_parse(char *conf, ddf_dev_t *dev) 450 450 { 451 451 while (conf != NULL && *conf != '\0') { … … 454 454 } 455 455 456 static void isa_functions_add(d evice_t *dev)456 static void isa_functions_add(ddf_dev_t *dev) 457 457 { 458 458 char *fun_conf; … … 465 465 } 466 466 467 static int isa_add_device(d evice_t *dev)467 static int isa_add_device(ddf_dev_t *dev) 468 468 { 469 469 printf(NAME ": isa_add_device, device handle = %d\n", … … 473 473 printf(NAME ": adding a 'ctl' function\n"); 474 474 475 function_t *ctl = ddf_fun_create(dev, fun_exposed, "ctl");475 ddf_fun_t *ctl = ddf_fun_create(dev, fun_exposed, "ctl"); 476 476 if (ctl == NULL) { 477 477 printf(NAME ": Error creating control function.\n"); … … 500 500 printf(NAME ": HelenOS ISA bus driver\n"); 501 501 isa_init(); 502 return d river_main(&isa_driver);502 return ddf_driver_main(&isa_driver); 503 503 } 504 504 -
uspace/drv/ns8250/ns8250.c
r34588a80 r83a2f43 94 94 typedef struct ns8250 { 95 95 /** DDF device node */ 96 d evice_t *dev;96 ddf_dev_t *dev; 97 97 /** DDF function node */ 98 function_t *fun;98 ddf_fun_t *fun; 99 99 /** Is there any client conntected to the device? */ 100 100 bool client_connected; … … 189 189 * error number otherwise. 190 190 */ 191 static int ns8250_read( function_t *fun, char *buf, size_t count)191 static int ns8250_read(ddf_fun_t *fun, char *buf, size_t count) 192 192 { 193 193 ns8250_t *ns = NS8250(fun); … … 223 223 * @return Zero on success 224 224 */ 225 static int ns8250_write( function_t *fun, char *buf, size_t count)225 static int ns8250_write(ddf_fun_t *fun, char *buf, size_t count) 226 226 { 227 227 ns8250_t *ns = NS8250(fun); … … 234 234 } 235 235 236 static d evice_ops_t ns8250_dev_ops;236 static ddf_dev_ops_t ns8250_dev_ops; 237 237 238 238 /** The character interface's callbacks. */ … … 242 242 }; 243 243 244 static int ns8250_add_device(d evice_t *dev);244 static int ns8250_add_device(ddf_dev_t *dev); 245 245 246 246 /** The serial port device driver's standard operations. */ … … 675 675 * @param dev The serial port device. 676 676 */ 677 static inline void ns8250_interrupt_handler(d evice_t *dev, ipc_callid_t iid,677 static inline void ns8250_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid, 678 678 ipc_call_t *icall) 679 679 { … … 706 706 * @param dev The serial port device. 707 707 */ 708 static int ns8250_add_device(d evice_t *dev)708 static int ns8250_add_device(ddf_dev_t *dev) 709 709 { 710 710 ns8250_t *ns = NULL; 711 function_t *fun = NULL;711 ddf_fun_t *fun = NULL; 712 712 bool need_cleanup = false; 713 713 int rc; … … 777 777 ns->fun = fun; 778 778 779 add_function_to_class(fun, "serial");779 ddf_fun_add_to_class(fun, "serial"); 780 780 781 781 printf(NAME ": the %s device has been successfully initialized.\n", … … 800 800 * @param dev The device. 801 801 */ 802 static int ns8250_open( function_t *fun)802 static int ns8250_open(ddf_fun_t *fun) 803 803 { 804 804 ns8250_t *data = (ns8250_t *) fun->dev->driver_data; … … 824 824 * @param dev The device. 825 825 */ 826 static void ns8250_close( function_t *fun)826 static void ns8250_close(ddf_fun_t *fun) 827 827 { 828 828 ns8250_t *data = (ns8250_t *) fun->dev->driver_data; … … 848 848 */ 849 849 static void 850 ns8250_get_props(d evice_t *dev, unsigned int *baud_rate, unsigned int *parity,850 ns8250_get_props(ddf_dev_t *dev, unsigned int *baud_rate, unsigned int *parity, 851 851 unsigned int *word_length, unsigned int* stop_bits) 852 852 { … … 875 875 * @param stop_bits The number of stop bits to be used. 876 876 */ 877 static int ns8250_set_props(d evice_t *dev, unsigned int baud_rate,877 static int ns8250_set_props(ddf_dev_t *dev, unsigned int baud_rate, 878 878 unsigned int parity, unsigned int word_length, unsigned int stop_bits) 879 879 { … … 902 902 * Configure the parameters of the serial communication. 903 903 */ 904 static void ns8250_default_handler( function_t *fun, ipc_callid_t callid,904 static void ns8250_default_handler(ddf_fun_t *fun, ipc_callid_t callid, 905 905 ipc_call_t *call) 906 906 { … … 950 950 printf(NAME ": HelenOS serial port driver\n"); 951 951 ns8250_init(); 952 return d river_main(&ns8250_driver);952 return ddf_driver_main(&ns8250_driver); 953 953 } 954 954 -
uspace/drv/pciintel/pci.c
r34588a80 r83a2f43 72 72 #define PCI_BUS_FROM_FUN(fun) ((fun)->busptr) 73 73 74 static hw_resource_list_t *pciintel_get_resources( function_t *fnode)74 static hw_resource_list_t *pciintel_get_resources(ddf_fun_t *fnode) 75 75 { 76 76 pci_fun_t *fun = PCI_FUN(fnode); … … 81 81 } 82 82 83 static bool pciintel_enable_interrupt( function_t *fnode)83 static bool pciintel_enable_interrupt(ddf_fun_t *fnode) 84 84 { 85 85 /* TODO */ … … 93 93 }; 94 94 95 static d evice_ops_t pci_fun_ops;96 97 static int pci_add_device(d evice_t *);95 static ddf_dev_ops_t pci_fun_ops; 96 97 static int pci_add_device(ddf_dev_t *); 98 98 99 99 /** PCI bus driver standard operations */ … … 367 367 void pci_bus_scan(pci_bus_t *bus, int bus_num) 368 368 { 369 function_t *fnode;369 ddf_fun_t *fnode; 370 370 pci_fun_t *fun; 371 371 … … 459 459 } 460 460 461 static int pci_add_device(d evice_t *dnode)461 static int pci_add_device(ddf_dev_t *dnode) 462 462 { 463 463 pci_bus_t *bus = NULL; 464 function_t *ctl = NULL;464 ddf_fun_t *ctl = NULL; 465 465 bool got_res = false; 466 466 int rc; … … 633 633 printf(NAME ": HelenOS pci bus driver (intel method 1).\n"); 634 634 pciintel_init(); 635 return d river_main(&pci_driver);635 return ddf_driver_main(&pci_driver); 636 636 } 637 637 -
uspace/drv/pciintel/pci.h
r34588a80 r83a2f43 47 47 typedef struct pciintel_bus { 48 48 /** DDF device node */ 49 d evice_t *dnode;49 ddf_dev_t *dnode; 50 50 uint32_t conf_io_addr; 51 51 void *conf_data_port; … … 56 56 typedef struct pci_fun_data { 57 57 pci_bus_t *busptr; 58 function_t *fnode;58 ddf_fun_t *fnode; 59 59 60 60 int bus; -
uspace/drv/root/root.c
r34588a80 r83a2f43 65 65 #define VIRTUAL_FUN_MATCH_SCORE 100 66 66 67 static int root_add_device(d evice_t *dev);67 static int root_add_device(ddf_dev_t *dev); 68 68 69 69 /** The root device driver's standard operations. */ … … 83 83 * @return EOK on success or negative error code 84 84 */ 85 static int add_virtual_root_fun(d evice_t *dev)85 static int add_virtual_root_fun(ddf_dev_t *dev) 86 86 { 87 87 const char *name = VIRTUAL_FUN_NAME; 88 function_t *fun;88 ddf_fun_t *fun; 89 89 int rc; 90 90 … … 123 123 * @return EOK on success or negative error code 124 124 */ 125 static int add_platform_fun(d evice_t *dev)125 static int add_platform_fun(ddf_dev_t *dev) 126 126 { 127 127 char *match_id; … … 130 130 131 131 const char *name = PLATFORM_FUN_NAME; 132 function_t *fun;132 ddf_fun_t *fun; 133 133 int rc; 134 134 … … 189 189 * of HW and pseudo devices). 190 190 */ 191 static int root_add_device(d evice_t *dev)191 static int root_add_device(ddf_dev_t *dev) 192 192 { 193 193 printf(NAME ": root_add_device, device handle=%" PRIun "\n", … … 212 212 { 213 213 printf(NAME ": HelenOS root device driver\n"); 214 return d river_main(&root_driver);214 return ddf_driver_main(&root_driver); 215 215 } 216 216 -
uspace/drv/rootpc/rootpc.c
r34588a80 r83a2f43 62 62 } rootpc_fun_t; 63 63 64 static int rootpc_add_device(d evice_t *dev);64 static int rootpc_add_device(ddf_dev_t *dev); 65 65 static void root_pc_init(void); 66 66 … … 92 92 }; 93 93 94 static hw_resource_list_t *rootpc_get_resources( function_t *fnode)94 static hw_resource_list_t *rootpc_get_resources(ddf_fun_t *fnode) 95 95 { 96 96 rootpc_fun_t *fun = ROOTPC_FUN(fnode); … … 100 100 } 101 101 102 static bool rootpc_enable_interrupt( function_t *fun)102 static bool rootpc_enable_interrupt(ddf_fun_t *fun) 103 103 { 104 104 /* TODO */ … … 113 113 114 114 /* Initialized in root_pc_init() function. */ 115 static d evice_ops_t rootpc_fun_ops;115 static ddf_dev_ops_t rootpc_fun_ops; 116 116 117 117 static bool 118 rootpc_add_fun(d evice_t *dev, const char *name, const char *str_match_id,118 rootpc_add_fun(ddf_dev_t *dev, const char *name, const char *str_match_id, 119 119 rootpc_fun_t *fun) 120 120 { 121 121 printf(NAME ": adding new function '%s'.\n", name); 122 122 123 function_t *fnode = NULL;123 ddf_fun_t *fnode = NULL; 124 124 match_id_t *match_id = NULL; 125 125 … … 164 164 } 165 165 166 static bool rootpc_add_functions(d evice_t *dev)166 static bool rootpc_add_functions(ddf_dev_t *dev) 167 167 { 168 168 return rootpc_add_fun(dev, "pci0", "intel_pci", &pci_data); … … 175 175 * @return Zero on success, negative error number otherwise. 176 176 */ 177 static int rootpc_add_device(d evice_t *dev)177 static int rootpc_add_device(ddf_dev_t *dev) 178 178 { 179 179 printf(NAME ": rootpc_add_device, device handle = %d\n", … … 197 197 printf(NAME ": HelenOS PC platform driver\n"); 198 198 root_pc_init(); 199 return d river_main(&rootpc_driver);199 return ddf_driver_main(&rootpc_driver); 200 200 } 201 201 -
uspace/drv/rootvirt/rootvirt.c
r34588a80 r83a2f43 61 61 }; 62 62 63 static int rootvirt_add_device(d evice_t *dev);63 static int rootvirt_add_device(ddf_dev_t *dev); 64 64 65 65 static driver_ops_t rootvirt_ops = { … … 78 78 * @return EOK on success or negative error code. 79 79 */ 80 static int rootvirt_add_fun(d evice_t *vdev, virtual_function_t *vfun)80 static int rootvirt_add_fun(ddf_dev_t *vdev, virtual_function_t *vfun) 81 81 { 82 function_t *fun;82 ddf_fun_t *fun; 83 83 int rc; 84 84 … … 112 112 } 113 113 114 static int rootvirt_add_device(d evice_t *dev)114 static int rootvirt_add_device(ddf_dev_t *dev) 115 115 { 116 116 static int instances = 0; … … 142 142 { 143 143 printf(NAME ": HelenOS virtual devices root driver\n"); 144 return d river_main(&rootvirt_driver);144 return ddf_driver_main(&rootvirt_driver); 145 145 } 146 146 -
uspace/drv/test1/char.c
r34588a80 r83a2f43 37 37 #include "test1.h" 38 38 39 static int impl_char_read( function_t *fun, char *buf, size_t count) {39 static int impl_char_read(ddf_fun_t *fun, char *buf, size_t count) { 40 40 memset(buf, 0, count); 41 41 return count; 42 42 } 43 43 44 static int imp_char_write( function_t *fun, char *buf, size_t count) {44 static int imp_char_write(ddf_fun_t *fun, char *buf, size_t count) { 45 45 return count; 46 46 } … … 51 51 }; 52 52 53 d evice_ops_t char_device_ops = {53 ddf_dev_ops_t char_device_ops = { 54 54 .interfaces[CHAR_DEV_IFACE] = &char_dev_ops 55 55 }; -
uspace/drv/test1/test1.c
r34588a80 r83a2f43 36 36 #include "test1.h" 37 37 38 static int test1_add_device(d evice_t *dev);38 static int test1_add_device(ddf_dev_t *dev); 39 39 40 40 static driver_ops_t driver_ops = { … … 55 55 * @param score Device match score. 56 56 */ 57 static int register_fun_verbose(d evice_t *parent, const char *message,57 static int register_fun_verbose(ddf_dev_t *parent, const char *message, 58 58 const char *name, const char *match_id, int match_score) 59 59 { 60 function_t *fun;60 ddf_fun_t *fun; 61 61 int rc; 62 62 … … 105 105 * @return Error code reporting success of the operation. 106 106 */ 107 static int test1_add_device(d evice_t *dev)107 static int test1_add_device(ddf_dev_t *dev) 108 108 { 109 function_t *fun_a;109 ddf_fun_t *fun_a; 110 110 int rc; 111 111 … … 125 125 } 126 126 127 add_function_to_class(fun_a, "virtual");127 ddf_fun_add_to_class(fun_a, "virtual"); 128 128 129 129 if (str_cmp(dev->name, "null") == 0) { 130 130 fun_a->ops = &char_device_ops; 131 add_function_to_class(fun_a, "virt-null");131 ddf_fun_add_to_class(fun_a, "virt-null"); 132 132 } else if (str_cmp(dev->name, "test1") == 0) { 133 133 (void) register_fun_verbose(dev, "cloning myself ;-)", "clone", … … 146 146 { 147 147 printf(NAME ": HelenOS test1 virtual device driver\n"); 148 return d river_main(&test1_driver);148 return ddf_driver_main(&test1_driver); 149 149 } 150 150 -
uspace/drv/test1/test1.h
r34588a80 r83a2f43 36 36 #define NAME "test1" 37 37 38 extern d evice_ops_t char_device_ops;38 extern ddf_dev_ops_t char_device_ops; 39 39 40 40 #endif -
uspace/drv/test2/test2.c
r34588a80 r83a2f43 38 38 #define NAME "test2" 39 39 40 static int test2_add_device(d evice_t *dev);40 static int test2_add_device(ddf_dev_t *dev); 41 41 42 42 static driver_ops_t driver_ops = { … … 57 57 * @param score Device match score. 58 58 */ 59 static int register_fun_verbose(d evice_t *parent, const char *message,59 static int register_fun_verbose(ddf_dev_t *parent, const char *message, 60 60 const char *name, const char *match_id, int match_score) 61 61 { 62 function_t *fun;62 ddf_fun_t *fun; 63 63 int rc; 64 64 … … 92 92 /** Add child devices after some sleep. 93 93 * 94 * @param arg Parent device structure (d evice_t *).94 * @param arg Parent device structure (ddf_dev_t *). 95 95 * @return Always EOK. 96 96 */ 97 97 static int postponed_birth(void *arg) 98 98 { 99 d evice_t *dev = (device_t *) arg;100 function_t *fun_a;99 ddf_dev_t *dev = (ddf_dev_t *) arg; 100 ddf_fun_t *fun_a; 101 101 int rc; 102 102 … … 120 120 } 121 121 122 add_function_to_class(fun_a, "virtual");122 ddf_fun_add_to_class(fun_a, "virtual"); 123 123 124 124 return EOK; 125 125 } 126 126 127 static int test2_add_device(d evice_t *dev)127 static int test2_add_device(ddf_dev_t *dev) 128 128 { 129 129 printf(NAME ": test2_add_device(name=\"%s\", handle=%d)\n", … … 148 148 { 149 149 printf(NAME ": HelenOS test2 virtual device driver\n"); 150 return d river_main(&test2_driver);150 return ddf_driver_main(&test2_driver); 151 151 } 152 152 -
uspace/lib/drv/generic/driver.c
r34588a80 r83a2f43 1 1 /* 2 2 * Copyright (c) 2010 Lenka Trochtova 3 * Copyright (c) 2011 Jiri Svoboda 3 4 * All rights reserved. 4 5 * … … 76 77 }; 77 78 78 static d evice_t *create_device(void);79 static void delete_device(d evice_t *);79 static ddf_dev_t *create_device(void); 80 static void delete_device(ddf_dev_t *); 80 81 81 82 static void driver_irq_handler(ipc_callid_t iid, ipc_call_t *icall) … … 152 153 153 154 interrupt_context_t * 154 find_interrupt_context(interrupt_context_list_t *list, d evice_t *dev, int irq)155 find_interrupt_context(interrupt_context_list_t *list, ddf_dev_t *dev, int irq) 155 156 { 156 157 fibril_mutex_lock(&list->mutex); … … 174 175 175 176 int 176 register_interrupt_handler(d evice_t *dev, int irq, interrupt_handler_t *handler,177 register_interrupt_handler(ddf_dev_t *dev, int irq, interrupt_handler_t *handler, 177 178 irq_code_t *pseudocode) 178 179 { … … 197 198 } 198 199 199 int unregister_interrupt_handler(d evice_t *dev, int irq)200 int unregister_interrupt_handler(ddf_dev_t *dev, int irq) 200 201 { 201 202 interrupt_context_t *ctx = find_interrupt_context(&interrupt_contexts, … … 211 212 } 212 213 213 static void add_to_functions_list( function_t *fun)214 static void add_to_functions_list(ddf_fun_t *fun) 214 215 { 215 216 fibril_mutex_lock(&functions_mutex); … … 218 219 } 219 220 220 static void remove_from_functions_list( function_t *fun)221 static void remove_from_functions_list(ddf_fun_t *fun) 221 222 { 222 223 fibril_mutex_lock(&functions_mutex); … … 225 226 } 226 227 227 static function_t *driver_get_function(link_t *functions, devman_handle_t handle)228 { 229 function_t *fun = NULL;228 static ddf_fun_t *driver_get_function(link_t *functions, devman_handle_t handle) 229 { 230 ddf_fun_t *fun = NULL; 230 231 printf("driver_get_function handle=%" PRIun "\n", handle); 231 232 … … 234 235 235 236 while (link != functions) { 236 fun = list_get_instance(link, function_t, link);237 fun = list_get_instance(link, ddf_fun_t, link); 237 238 printf(" - fun handle %" PRIun "\n", fun->handle); 238 239 if (fun->handle == handle) { … … 257 258 devman_handle_t parent_fun_handle = IPC_GET_ARG2(*icall); 258 259 259 d evice_t *dev = create_device();260 ddf_dev_t *dev = create_device(); 260 261 dev->handle = dev_handle; 261 262 … … 318 319 */ 319 320 devman_handle_t handle = IPC_GET_ARG2(*icall); 320 function_t *fun = driver_get_function(&functions, handle);321 ddf_fun_t *fun = driver_get_function(&functions, handle); 321 322 322 323 if (fun == NULL) { … … 461 462 * @return The device structure. 462 463 */ 463 static d evice_t *create_device(void)464 { 465 d evice_t *dev;466 467 dev = malloc(sizeof(d evice_t));464 static ddf_dev_t *create_device(void) 465 { 466 ddf_dev_t *dev; 467 468 dev = malloc(sizeof(ddf_dev_t)); 468 469 if (dev == NULL) 469 470 return NULL; 470 471 471 memset(dev, 0, sizeof(d evice_t));472 memset(dev, 0, sizeof(ddf_dev_t)); 472 473 return dev; 473 474 } … … 477 478 * @return The device structure. 478 479 */ 479 static function_t *create_function(void)480 { 481 function_t *fun;482 483 fun = calloc(1, sizeof( function_t));480 static ddf_fun_t *create_function(void) 481 { 482 ddf_fun_t *fun; 483 484 fun = calloc(1, sizeof(ddf_fun_t)); 484 485 if (fun == NULL) 485 486 return NULL; … … 495 496 * @param dev The device structure. 496 497 */ 497 static void delete_device(d evice_t *dev)498 static void delete_device(ddf_dev_t *dev) 498 499 { 499 500 free(dev); … … 504 505 * @param dev The device structure. 505 506 */ 506 static void delete_function( function_t *fun)507 static void delete_function(ddf_fun_t *fun) 507 508 { 508 509 clean_match_ids(&fun->match_ids); … … 535 536 * @return New function or @c NULL if memory is not available 536 537 */ 537 function_t *ddf_fun_create(device_t *dev, fun_type_t ftype, const char *name)538 { 539 function_t *fun;538 ddf_fun_t *ddf_fun_create(ddf_dev_t *dev, fun_type_t ftype, const char *name) 539 { 540 ddf_fun_t *fun; 540 541 541 542 fun = create_function(); … … 563 564 * @param fun Function to destroy 564 565 */ 565 void ddf_fun_destroy( function_t *fun)566 void ddf_fun_destroy(ddf_fun_t *fun) 566 567 { 567 568 assert(fun->bound == false); … … 569 570 } 570 571 571 void *function_get_ops( function_t *fun, dev_inferface_idx_t idx)572 void *function_get_ops(ddf_fun_t *fun, dev_inferface_idx_t idx) 572 573 { 573 574 assert(is_valid_iface_idx(idx)); … … 589 590 * @return EOK on success or negative error code 590 591 */ 591 int ddf_fun_bind( function_t *fun)592 int ddf_fun_bind(ddf_fun_t *fun) 592 593 { 593 594 assert(fun->name != NULL); … … 617 618 * @return EOK on success, ENOMEM if out of memory. 618 619 */ 619 int ddf_fun_add_match_id( function_t *fun, const char *match_id_str,620 int ddf_fun_add_match_id(ddf_fun_t *fun, const char *match_id_str, 620 621 int match_score) 621 622 { … … 637 638 638 639 /** Get default handler for client requests */ 639 remote_handler_t *function_get_default_handler( function_t *fun)640 remote_handler_t *function_get_default_handler(ddf_fun_t *fun) 640 641 { 641 642 if (fun->ops == NULL) … … 648 649 * Must only be called when the function is bound. 649 650 */ 650 int add_function_to_class(function_t *fun, const char *class_name)651 int ddf_fun_add_to_class(ddf_fun_t *fun, const char *class_name) 651 652 { 652 653 assert(fun->bound == true); … … 656 657 } 657 658 658 int d river_main(driver_t *drv)659 int ddf_driver_main(driver_t *drv) 659 660 { 660 661 /* -
uspace/lib/drv/generic/remote_char_dev.c
r34588a80 r83a2f43 41 41 #define MAX_CHAR_RW_COUNT 256 42 42 43 static void remote_char_read( function_t *, void *, ipc_callid_t, ipc_call_t *);44 static void remote_char_write( function_t *, void *, ipc_callid_t, ipc_call_t *);43 static void remote_char_read(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 44 static void remote_char_write(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 45 45 46 46 /** Remote character interface operations. */ … … 71 71 */ 72 72 static void 73 remote_char_read( function_t *fun, void *ops, ipc_callid_t callid,73 remote_char_read(ddf_fun_t *fun, void *ops, ipc_callid_t callid, 74 74 ipc_call_t *call) 75 75 { … … 118 118 */ 119 119 static void 120 remote_char_write( function_t *fun, void *ops, ipc_callid_t callid,120 remote_char_write(ddf_fun_t *fun, void *ops, ipc_callid_t callid, 121 121 ipc_call_t *call) 122 122 { -
uspace/lib/drv/generic/remote_hw_res.c
r34588a80 r83a2f43 39 39 #include "driver.h" 40 40 41 static void remote_hw_res_get_resource_list( function_t *, void *, ipc_callid_t,41 static void remote_hw_res_get_resource_list(ddf_fun_t *, void *, ipc_callid_t, 42 42 ipc_call_t *); 43 static void remote_hw_res_enable_interrupt( function_t *, void *, ipc_callid_t,43 static void remote_hw_res_enable_interrupt(ddf_fun_t *, void *, ipc_callid_t, 44 44 ipc_call_t *); 45 45 … … 55 55 }; 56 56 57 static void remote_hw_res_enable_interrupt( function_t *fun, void *ops,57 static void remote_hw_res_enable_interrupt(ddf_fun_t *fun, void *ops, 58 58 ipc_callid_t callid, ipc_call_t *call) 59 59 { … … 68 68 } 69 69 70 static void remote_hw_res_get_resource_list( function_t *fun, void *ops,70 static void remote_hw_res_get_resource_list(ddf_fun_t *fun, void *ops, 71 71 ipc_callid_t callid, ipc_call_t *call) 72 72 { -
uspace/lib/drv/include/dev_iface.h
r34588a80 r83a2f43 43 43 */ 44 44 45 struct function;45 struct ddf_fun; 46 46 47 47 /* … … 49 49 * devices driver. 50 50 */ 51 typedef void remote_iface_func_t(struct function *, void *, ipc_callid_t,51 typedef void remote_iface_func_t(struct ddf_fun *, void *, ipc_callid_t, 52 52 ipc_call_t *); 53 53 typedef remote_iface_func_t *remote_iface_func_ptr_t; 54 typedef void remote_handler_t(struct function *, ipc_callid_t, ipc_call_t *);54 typedef void remote_handler_t(struct ddf_fun *, ipc_callid_t, ipc_call_t *); 55 55 56 56 typedef struct { -
uspace/lib/drv/include/driver.h
r34588a80 r83a2f43 49 49 #include "dev_iface.h" 50 50 51 struct device; 52 typedef struct device device_t; 53 54 struct function; 55 typedef struct function function_t; 51 typedef struct ddf_dev ddf_dev_t; 52 typedef struct ddf_fun ddf_fun_t; 56 53 57 54 /* … … 60 57 61 58 /** Devices operations */ 62 typedef struct d evice_ops {59 typedef struct ddf_dev_ops { 63 60 /** 64 61 * Optional callback function called when a client is connecting to the 65 62 * device. 66 63 */ 67 int (*open)( function_t *);64 int (*open)(ddf_fun_t *); 68 65 69 66 /** … … 71 68 * the device. 72 69 */ 73 void (*close)( function_t *);70 void (*close)(ddf_fun_t *); 74 71 75 72 /** The table of standard interfaces implemented by the device. */ … … 82 79 */ 83 80 remote_handler_t *default_handler; 84 } device_ops_t; 85 81 } ddf_dev_ops_t; 86 82 87 83 /* … … 90 86 91 87 /** Device structure */ 92 struct d evice{88 struct ddf_dev { 93 89 /** 94 90 * Globally unique device identifier (assigned to the device by the … … 114 110 115 111 /** Function structure */ 116 struct function {112 struct ddf_fun { 117 113 /** True if bound to the device manager */ 118 114 bool bound; … … 121 117 122 118 /** Device which this function belogs to */ 123 d evice_t *dev;119 ddf_dev_t *dev; 124 120 125 121 /** Function type */ … … 132 128 void *driver_data; 133 129 /** Implementation of operations provided by this function */ 134 d evice_ops_t *ops;130 ddf_dev_ops_t *ops; 135 131 136 132 /** Link in the list of functions handled by the driver */ … … 145 141 typedef struct driver_ops { 146 142 /** Callback method for passing a new device to the device driver */ 147 int (*add_device)(d evice_t *dev);143 int (*add_device)(ddf_dev_t *dev); 148 144 /* TODO: add other generic driver operations */ 149 145 } driver_ops_t; … … 157 153 } driver_t; 158 154 159 int d river_main(driver_t *);160 161 extern function_t *ddf_fun_create(device_t *, fun_type_t, const char *);162 extern void ddf_fun_destroy( function_t *);163 extern int ddf_fun_bind( function_t *);164 extern int ddf_fun_add_match_id( function_t *, const char *, int);165 166 extern void *function_get_ops( function_t *, dev_inferface_idx_t);155 int ddf_driver_main(driver_t *); 156 157 extern ddf_fun_t *ddf_fun_create(ddf_dev_t *, fun_type_t, const char *); 158 extern void ddf_fun_destroy(ddf_fun_t *); 159 extern int ddf_fun_bind(ddf_fun_t *); 160 extern int ddf_fun_add_match_id(ddf_fun_t *, const char *, int); 161 162 extern void *function_get_ops(ddf_fun_t *, dev_inferface_idx_t); 167 163 168 164 /* … … 170 166 */ 171 167 172 typedef void interrupt_handler_t(d evice_t *, ipc_callid_t, ipc_call_t *);168 typedef void interrupt_handler_t(ddf_dev_t *, ipc_callid_t, ipc_call_t *); 173 169 174 170 typedef struct interrupt_context { 175 171 int id; 176 d evice_t *dev;172 ddf_dev_t *dev; 177 173 int irq; 178 174 interrupt_handler_t *handler; … … 196 192 interrupt_context_list_t *, int); 197 193 extern interrupt_context_t *find_interrupt_context( 198 interrupt_context_list_t *, d evice_t *, int);199 200 extern int register_interrupt_handler(d evice_t *, int, interrupt_handler_t *,194 interrupt_context_list_t *, ddf_dev_t *, int); 195 196 extern int register_interrupt_handler(ddf_dev_t *, int, interrupt_handler_t *, 201 197 irq_code_t *); 202 extern int unregister_interrupt_handler(d evice_t *, int);203 204 extern remote_handler_t *function_get_default_handler( function_t *);205 extern int add_function_to_class(function_t *fun, const char *class_name);198 extern int unregister_interrupt_handler(ddf_dev_t *, int); 199 200 extern remote_handler_t *function_get_default_handler(ddf_fun_t *); 201 extern int ddf_fun_add_to_class(ddf_fun_t *fun, const char *class_name); 206 202 207 203 #endif -
uspace/lib/drv/include/ops/char_dev.h
r34588a80 r83a2f43 39 39 40 40 typedef struct { 41 int (*read)( function_t *, char *, size_t);42 int (*write)( function_t *, char *, size_t);41 int (*read)(ddf_fun_t *, char *, size_t); 42 int (*write)(ddf_fun_t *, char *, size_t); 43 43 } char_dev_ops_t; 44 44 -
uspace/lib/drv/include/ops/hw_res.h
r34588a80 r83a2f43 42 42 43 43 typedef struct { 44 hw_resource_list_t *(*get_resource_list)( function_t *);45 bool (*enable_interrupt)( function_t *);44 hw_resource_list_t *(*get_resource_list)(ddf_fun_t *); 45 bool (*enable_interrupt)(ddf_fun_t *); 46 46 } hw_res_ops_t; 47 47 -
uspace/srv/devman/devman.h
r34588a80 r83a2f43 161 161 dev_node_t *dev; 162 162 163 /** Link to list of functions in the device (d evice_t.functions) */163 /** Link to list of functions in the device (ddf_dev_t.functions) */ 164 164 link_t dev_functions; 165 165
Note:
See TracChangeset
for help on using the changeset viewer.