Changeset cbfece7 in mainline for uspace/lib/nic/src/nic_driver.c
- Timestamp:
- 2014-07-21T22:10:18Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1f1fa64
- Parents:
- 96e368a (diff), 54a1ca7 (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/lib/nic/src/nic_driver.c
r96e368a rcbfece7 42 42 #include <stdio.h> 43 43 #include <str_error.h> 44 #include <ipc/services.h>45 #include <ipc/ns.h>46 #include <ipc/irc.h>47 44 #include <sysinfo.h> 48 45 #include <as.h> … … 378 375 } 379 376 380 381 /**382 * Enable interrupts for this driver.383 *384 * @param nic_data385 * @param irq The IRQ number for this device386 */387 void nic_enable_interrupt(nic_t *nic_data, int irq)388 {389 async_exch_t *exch = async_exchange_begin(nic_data->irc_session);390 async_msg_1(exch, IRC_ENABLE_INTERRUPT, irq);391 async_exchange_end(exch);392 }393 394 /**395 * Disable interrupts for this driver.396 *397 * @param nic_data398 * @param irq The IRQ number for this device399 */400 void nic_disable_interrupt(nic_t *nic_data, int irq)401 {402 async_exch_t *exch = async_exchange_begin(nic_data->irc_session);403 async_msg_1(exch, IRC_CLEAR_INTERRUPT, irq);404 async_exchange_end(exch);405 }406 407 377 /** Get the polling mode information from the device 408 378 * … … 420 390 return nic_data->poll_mode; 421 391 }; 422 423 /**424 * Connect to IRC service. This function should be called only from425 * the add_device handler, thus no locking is required.426 *427 * @param nic_data428 *429 * @return EOK If connection was successful.430 * @return EINVAL If the IRC service cannot be determined.431 * @return EREFUSED If IRC service cannot be connected.432 */433 int nic_connect_to_services(nic_t *nic_data)434 {435 /* IRC service */436 sysarg_t apic;437 sysarg_t i8259;438 services_t irc_service = -1;439 if (((sysinfo_get_value("apic", &apic) == EOK) && (apic)) ||440 ((sysinfo_get_value("i8259", &i8259) == EOK) && (i8259)))441 irc_service = SERVICE_IRC;442 else443 return EINVAL;444 445 nic_data->irc_session = service_connect_blocking(EXCHANGE_SERIALIZE,446 irc_service, 0, 0);447 if (nic_data->irc_session == NULL)448 return errno;449 450 return EOK;451 }452 392 453 393 /** Inform the NICF about poll mode … … 668 608 nic_data->state = NIC_STATE_STOPPED; 669 609 nic_data->client_session = NULL; 670 nic_data->irc_session = NULL;671 610 nic_data->poll_mode = NIC_POLL_IMMEDIATE; 672 611 nic_data->default_poll_mode = NIC_POLL_IMMEDIATE; … … 975 914 nic_t *nic_get_from_ddf_fun(ddf_fun_t *fun) 976 915 { 977 return (nic_t *) ddf_ fun_data_get(fun);916 return (nic_t *) ddf_dev_data_get(ddf_fun_get_dev(fun)); 978 917 } 979 918
Note:
See TracChangeset
for help on using the changeset viewer.