Changeset 869d936 in mainline for uspace/lib/nic/src/nic_driver.c
- Timestamp:
- 2014-07-18T08:11:34Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e5424e9
- Parents:
- fc6abbe
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/nic/src/nic_driver.c
rfc6abbe r869d936 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;
Note:
See TracChangeset
for help on using the changeset viewer.