Lines Matching refs:device

121 static bjnp_device_t device[BJNP_NO_DEVICES];
137 /* loop through the device classes (mp150, mp730 etc) */
597 /* device not yet opened, use 0 for serial and session) */
611 memcpy(cmd->BJNP_id, device[devno].protocol_string, sizeof (cmd->BJNP_id));
615 cmd->seq_no = htons (++(device[devno].serial));
616 cmd->session_id = (cmd_code == CMD_UDP_POLL ) ? 0 : htons (device[devno].session_id);
617 device[devno].last_cmd = cmd_code;
625 * Setup a udp socket for the given device
632 bjnp_sockaddr_t * addr = device[dev_no].addr;
648 (sockfd, &(device[dev_no].addr->addr), sa_size(device[dev_no].addr) )!= 0)
664 * send udp command to given device and receive the response`
701 timeout.tv_sec = device[dev_no].bjnp_ip_timeout /1000;
702 timeout.tv_usec = device[dev_no].bjnp_ip_timeout %1000;
732 (LOG_CRIT, "udp_command: ERROR - no data received (timeout = %d)\n", device[dev_no].bjnp_ip_timeout ) );
773 if (device[dev_no].protocol == PROTOCOL_BJNP)
1168 poll->extensions.type2.dialog = htonl(device[devno].dialog);
1179 poll->extensions.type5.dialog = htonl(device[devno].dialog);
1182 poll->extensions.type5.key = htonl(device[devno].status_key);
1206 device[devno].dialog = ntohl( response -> dialog );
1217 device[devno].status_key = ntohl( response -> key );
1264 device[devno].session_id = ntohs (resp->session_id);
1308 if (device[devno].scanner_data_left)
1312 (unsigned long) device[devno].scanner_data_left,
1313 (unsigned long) device[devno].scanner_data_left));
1325 send (device[devno].tcp_socket, &bjnp_buf,
1357 if (device[devno].scanner_data_left)
1361 (unsigned long) device[devno].scanner_data_left,
1362 (unsigned long) device[devno].scanner_data_left));
1373 send (device[devno].tcp_socket, &bjnp_buf, sizeof (struct BJNP_command),
1391 * devno device number
1408 fd = device[devno].tcp_socket;
1418 timeout.tv_sec = device[devno].bjnp_ip_timeout /1000;
1419 timeout.tv_usec = device[devno].bjnp_ip_timeout %1000;
1438 device[devno].bjnp_ip_timeout ) );
1467 if (resp_buf.cmd_code != device[devno].last_cmd)
1472 resp_buf.cmd_code, device[devno].last_cmd));
1476 if (ntohs (resp_buf.seq_no) != (uint16_t) device[devno].serial)
1481 (int) ntohs (resp_buf.seq_no), (int) device[devno].serial));
1500 /* initialize device structure */
1504 device[dn].open = 0;
1506 device[dn].polling_status = BJNP_POLL_STOPPED;
1507 device[dn].dialog = 0;
1508 device[dn].status_key = 0;
1510 device[dn].protocol = protocol_defs->protocol_version;
1511 device[dn].protocol_string = protocol_defs->proto_string;
1512 device[dn].single_tcp_session = protocol_defs->single_tcp_session;
1513 device[dn].tcp_socket = -1;
1515 device[dn].addr = (bjnp_sockaddr_t *) malloc(sizeof ( bjnp_sockaddr_t) );
1516 memset( device[dn].addr, 0, sizeof( bjnp_sockaddr_t ) );
1517 memcpy(device[dn].addr, sa, sa_size((bjnp_sockaddr_t *)sa) );
1518 device[dn].address_level = get_scanner_name(sa, name);
1519 device[dn].session_id = 0;
1520 device[dn].serial = -1;
1521 device[dn].bjnp_ip_timeout = ip_timeout;
1522 device[dn].bjnp_scanner_timeout = 1000;
1523 device[dn].scanner_data_left = 0;
1524 device[dn].last_cmd = 0;
1525 device[dn].blocksize = BJNP_BLOCKSIZE_START;
1526 device[dn].last_block = 0;
1529 if (bjnp_get_scanner_mac_address(dn, device[dn].mac_address) != 0 )
1533 device[dn].open = 0;
1536 device[dn].open = 1;
1543 if (device[dn].addr != NULL)
1545 free (device[dn].addr );
1546 device[dn].addr = NULL;
1548 device[dn].open = 0;
1558 * Returns: number of bytes of payload received from device
1590 fd = device[devno].tcp_socket;
1597 timeout.tv_sec = device[devno].bjnp_ip_timeout /1000;
1598 timeout.tv_usec = device[devno].bjnp_ip_timeout %1000;
1618 device[devno].bjnp_ip_timeout) );
1649 bjnp_sockaddr_t *addr = device[devno].addr;
1654 if (device[devno].tcp_socket != -1)
1702 (sock, &(addr->addr), sa_size(device[devno].addr)) == 0)
1704 device[devno].tcp_socket = sock;
1720 if ( device[devno].tcp_socket != -1)
1722 PDBG( bjnp_dbg( LOG_INFO, "bjnp_close_tcp - closing tcp-socket %d\n", device[devno].tcp_socket));
1724 close (device[devno].tcp_socket);
1725 device[devno].tcp_socket = -1;
1731 device[devno].open = 0;
1758 /* get device specific ip timeout if any */
1805 /* Check if a device number is already allocated to any of the scanner's addresses */
1810 /* create a new device structure for this address */
1816 "bjnp_allocate_device: WARNING - Too many devices, ran out of device structures, cannot add %s\n",
1836 if ( strcmp( device[i].mac_address, device[bjnp_no_devices].mac_address ) == 0 )
1838 if ( device[i].address_level < device[bjnp_no_devices].address_level )
1841 free (device[i].addr);
1842 device[i].addr = device[bjnp_no_devices].addr;
1843 device[bjnp_no_devices].addr = NULL;
1844 device[i].address_level = device[bjnp_no_devices].address_level;
1859 if (device[bjnp_no_devices].open == 0)
1867 /* Commit new device structure */
1896 /* Allocate device structure for scanner */
1920 determine_scanner_serial (scanner_host, device[*dev_no].mac_address, serial);
1926 uri, serial, device[*dev_no].mac_address));
2003 * The function attach is called for every device which has been found.
2280 /** Open a BJNP device.
2282 * The device is opened by its name devname and the device number is
2292 * @param devname name of the device to open
2293 * @param dn device number
2314 if (device[*dn].single_tcp_session && bjnp_open_tcp (*dn) != 0)
2323 /** Close a BJNP device.
2325 * @param dn device number
2337 /** Activate BJNP device connection
2339 * @param dn device number
2346 if (!(device[dn].single_tcp_session) && bjnp_open_tcp (dn) != 0)
2355 /** Deactivate BJNP device connection
2357 * @paran dn device number
2364 if (!device[dn].single_tcp_session)
2382 device[devno].bjnp_scanner_timeout = timeout;
2387 * Read up to size bytes from the device to buffer. After the read, size
2390 * @param dn device number
2421 (unsigned long) device[dn].scanner_data_left,
2422 (unsigned long) device[dn].scanner_data_left ) );
2424 while ( (recvd < requested) && !( device[dn].last_block && (device[dn].scanner_data_left == 0)) )
2434 if (device[dn].scanner_data_left == 0)
2440 (long int) device[dn].blocksize, (long int) device[dn].blocksize ));
2447 if ( ( error = bjnp_recv_header (dn, &(device[dn].scanner_data_left) ) ) != SANE_STATUS_GOOD)
2454 device[dn].blocksize = MAX (device[dn].blocksize, device[dn].scanner_data_left);
2456 if ( device[dn].scanner_data_left < device[dn].blocksize)
2462 device[dn].last_block = 1;
2467 (unsigned long) device[dn].scanner_data_left,
2468 (unsigned long) device[dn].scanner_data_left));
2472 read_size_max = MIN( device[dn].scanner_data_left, (requested - recvd) );
2480 (unsigned long) device[dn].scanner_data_left,
2481 (unsigned long) device[dn].scanner_data_left) );
2492 device[dn].scanner_data_left = device[dn].scanner_data_left - read_size;
2506 * Write up to size bytes from buffer to the device. After the write size
2509 * @param dn device number
2510 * @param buffer buffer to write to device
2559 "sanei_bjnp_write_bulk: ERROR - Could not read length of data confirmed by device\n"));
2572 device[dn].last_block = 0;
2579 * Read up to size bytes from the interrupt endpoint from the device to
2582 * @param dn device number
2622 switch (device[dn].polling_status)
2631 PDBG (bjnp_dbg (LOG_NOTICE, "bjnp_read_int: WARNING - Failed to setup read_intr dialog with device!\n"));
2632 device[dn].dialog = 0;
2633 device[dn].status_key = 0;
2636 device[dn].polling_status = BJNP_POLL_STARTED;
2641 timeout = device[dn].bjnp_scanner_timeout /1000 + 1;
2642 if (device[dn].bjnp_scanner_timeout %1000 > 0)
2653 device[dn].polling_status = BJNP_POLL_STOPPED;
2660 device[dn].polling_status = BJNP_POLL_STATUS_RECEIVED;
2673 device[dn].polling_status = BJNP_POLL_STOPPED;