Lines Matching refs:fd

58 p5_inb (int fd, uint16_t addr)
67 rc = ioctl (fd, PPRDATA, &val);
70 rc = ioctl (fd, PPRSTATUS, &val);
73 rc = ioctl (fd, PPRCONTROL, &val);
77 rc = ioctl (fd, PPDATADIR, &mode);
79 rc = ioctl (fd, PPSETMODE, &mode);
82 rc = ioctl (fd, PPSETFLAGS, &mode);
84 rc = read (fd, &val, 1);
96 if(fd && addr)
103 p5_outb (int fd, uint16_t addr, uint8_t value)
111 rc = ioctl (fd, PPWDATA, &value);
115 rc = ioctl (fd, PPDATADIR, &mode);
119 rc = ioctl (fd, PPWCONTROL, &value);
124 rc = ioctl (fd, PPDATADIR, &mode);
126 rc = ioctl (fd, PPSETMODE, &mode);
127 rc = write (fd, &value, 1);
131 rc = ioctl (fd, PPDATADIR, &mode);
133 rc = ioctl (fd, PPSETMODE, &mode);
134 rc = write (fd, &value, 1);
146 if(fd && addr && value)
152 write_reg (int fd, uint8_t index, uint8_t value)
160 p5_outb (fd, EPPADR, idx);
161 p5_outb (fd, EPPDATA, value);
165 read_reg (int fd, uint8_t index)
172 p5_outb (fd, EPPADR, idx);
173 return p5_inb (fd, EPPDATA);
178 read_data (int fd, uint8_t * data, int length)
185 rc = ioctl (fd, PPSETMODE, &mode);
186 rc = write (fd, &bval, 1);
189 rc = ioctl (fd, PPDATADIR, &mode);
192 rc = ioctl (fd, PPSETFLAGS, &mode);
195 rc = ioctl (fd, PPSETMODE, &mode);
199 rc = read (fd, data + nb, length - nb);
215 index_write_data (int fd, uint8_t index, uint8_t * data, int length)
222 ioctl (fd, PPSETMODE, &mode);
223 write (fd, &bval, 1);
226 ioctl (fd, PPSETMODE, &mode);
228 ioctl (fd, PPDATADIR, &mode);
229 write (fd, data, length);
234 write_data (int fd, uint8_t * data, int length)
236 index_write_data (fd, REG8, data, length);
240 write_reg2 (int fd, uint8_t index, uint16_t value)
246 index_write_data (fd, index, data2, 2);
251 read_data (int fd, uint8_t * data, int length)
253 if(fd && data && length)
259 write_data (int fd, uint8_t * data, int length)
261 if(fd && data && length)
266 write_reg2 (int fd, uint8_t index, uint16_t value)
268 if(fd && index && value)
281 * @param fd file descriptor used to access hardware
286 memtest (int fd, uint16_t addr)
292 write_reg2 (fd, REG1, addr);
298 write_data (fd, sent, 256);
299 read_data (fd, back, 256);
318 * @param fd filedescriptor of the parallel port communication channel
322 connect (int fd)
326 p5_inb (fd, CONTROL);
327 p5_outb (fd, CONTROL, 0x04);
328 p5_outb (fd, DATA, 0x02);
329 P5_INB (fd, DATA, 0x02);
330 p5_outb (fd, DATA, 0x03);
331 P5_INB (fd, DATA, 0x03);
332 p5_outb (fd, DATA, 0x03);
333 p5_outb (fd, DATA, 0x83);
334 p5_outb (fd, DATA, 0x03);
335 p5_outb (fd, DATA, 0x83);
336 P5_INB (fd, DATA, 0x83);
337 p5_outb (fd, DATA, 0x82);
338 P5_INB (fd, DATA, 0x82);
339 p5_outb (fd, DATA, 0x02);
340 p5_outb (fd, DATA, 0x82);
341 p5_outb (fd, DATA, 0x02);
342 p5_outb (fd, DATA, 0x82);
343 P5_INB (fd, DATA, 0x82);
344 p5_outb (fd, DATA, 0x82);
345 P5_INB (fd, DATA, 0x82);
346 p5_outb (fd, DATA, 0x02);
347 p5_outb (fd, DATA, 0x82);
348 p5_outb (fd, DATA, 0x02);
349 p5_outb (fd, DATA, 0x82);
350 P5_INB (fd, DATA, 0x82);
351 p5_outb (fd, DATA, 0x83);
352 P5_INB (fd, DATA, 0x83);
353 p5_outb (fd, DATA, 0x03);
354 p5_outb (fd, DATA, 0x83);
355 p5_outb (fd, DATA, 0x03);
356 p5_outb (fd, DATA, 0x83);
357 P5_INB (fd, DATA, 0x83);
358 p5_outb (fd, DATA, 0x82);
359 P5_INB (fd, DATA, 0x82);
360 p5_outb (fd, DATA, 0x02);
361 p5_outb (fd, DATA, 0x82);
362 p5_outb (fd, DATA, 0x02);
363 p5_outb (fd, DATA, 0x82);
364 P5_INB (fd, DATA, 0x82);
365 p5_outb (fd, DATA, 0x83);
366 P5_INB (fd, DATA, 0x83);
367 p5_outb (fd, DATA, 0x03);
368 p5_outb (fd, DATA, 0x83);
369 p5_outb (fd, DATA, 0x03);
370 p5_outb (fd, DATA, 0x83);
371 P5_INB (fd, DATA, 0x83);
372 p5_outb (fd, DATA, 0x83);
373 P5_INB (fd, DATA, 0x83);
374 p5_outb (fd, DATA, 0x03);
375 p5_outb (fd, DATA, 0x83);
376 p5_outb (fd, DATA, 0x03);
377 p5_outb (fd, DATA, 0x83);
378 P5_INB (fd, DATA, 0x83);
379 p5_outb (fd, DATA, 0x82);
380 P5_INB (fd, DATA, 0x82);
381 p5_outb (fd, DATA, 0x02);
382 p5_outb (fd, DATA, 0x82);
383 p5_outb (fd, DATA, 0x02);
384 p5_outb (fd, DATA, 0x82);
385 p5_outb (fd, DATA, 0xFF);
391 disconnect (int fd)
395 p5_outb (fd, CONTROL, 0x04);
396 p5_outb (fd, DATA, 0x00);
397 P5_INB (fd, DATA, 0x00);
398 p5_outb (fd, DATA, 0x01);
399 P5_INB (fd, DATA, 0x01);
400 p5_outb (fd, DATA, 0x01);
401 p5_outb (fd, DATA, 0x81);
402 p5_outb (fd, DATA, 0x01);
403 p5_outb (fd, DATA, 0x81);
404 P5_INB (fd, DATA, 0x81);
405 p5_outb (fd, DATA, 0x80);
406 P5_INB (fd, DATA, 0x80);
407 p5_outb (fd, DATA, 0x00);
408 p5_outb (fd, DATA, 0x80);
409 p5_outb (fd, DATA, 0x00);
410 p5_outb (fd, DATA, 0x80);
411 P5_INB (fd, DATA, 0x80);
412 p5_outb (fd, DATA, 0x80);
413 P5_INB (fd, DATA, 0x80);
414 p5_outb (fd, DATA, 0x00);
415 p5_outb (fd, DATA, 0x80);
416 p5_outb (fd, DATA, 0x00);
417 p5_outb (fd, DATA, 0x80);
418 P5_INB (fd, DATA, 0x80);
419 p5_outb (fd, DATA, 0x81);
420 P5_INB (fd, DATA, 0x81);
421 p5_outb (fd, DATA, 0x01);
422 p5_outb (fd, DATA, 0x81);
423 p5_outb (fd, DATA, 0x01);
424 p5_outb (fd, DATA, 0x81);
425 P5_INB (fd, DATA, 0x81);
426 p5_outb (fd, DATA, 0x80);
427 P5_INB (fd, DATA, 0x80);
428 p5_outb (fd, DATA, 0x00);
429 p5_outb (fd, DATA, 0x80);
430 p5_outb (fd, DATA, 0x00);
431 p5_outb (fd, DATA, 0x80);
432 P5_INB (fd, DATA, 0x80);
433 p5_outb (fd, DATA, 0x00);
434 p5_outb (fd, DATA, 0x80);
435 p5_outb (fd, DATA, 0x00);
436 p5_outb (fd, DATA, 0x80);
437 P5_INB (fd, DATA, 0x80);
438 p5_outb (fd, DATA, 0x00);
439 p5_outb (fd, DATA, 0x80);
440 p5_outb (fd, DATA, 0x00);
441 p5_outb (fd, DATA, 0x80);
442 P5_INB (fd, DATA, 0x80);
443 p5_outb (fd, DATA, 0x00);
444 p5_outb (fd, DATA, 0x80);
445 p5_outb (fd, DATA, 0x00);
446 p5_outb (fd, DATA, 0x80);
447 p5_inb (fd, CONTROL);
448 p5_outb (fd, CONTROL, 0x0C);
454 setadresses (int fd, uint16_t start, uint16_t end)
456 write_reg (fd, REG3, start & 0xff);
457 write_reg (fd, REG4, start >> 8);
458 write_reg (fd, REG5, end & 0xff);
459 write_reg (fd, REG6, end >> 8);
472 int fd, mode = 0;
487 fd = open (name, O_RDWR);
488 if (fd < 0)
515 ioctl (fd, PPCLAIM);
516 ioctl (fd, PPGETMODES, &mode);
549 ioctl (fd, PPRELEASE);
550 close (fd);
553 ioctl (fd, PPNEGOT, &mode);
554 ioctl (fd, PPSETMODE, &mode);
556 return fd;
563 close_pp (int fd)
567 if (fd > 2)
569 ioctl (fd, PPNEGOT, &mode);
570 ioctl (fd, PPRELEASE);
571 close (fd);
586 close_pp (int fd)
588 if(fd)
595 * @param fd file descriptor to access scanner
600 test_document (int fd)
605 detector = read_reg (fd, REGE);
617 * @param fd file descriptor to access scanner
621 available_bytes (int fd)
626 counter = read_reg (fd, REG9);
793 write_reg (dev->fd, REG1, 0x01);
794 write_reg (dev->fd, REG7, 0x00);
795 write_reg (dev->fd, REG0, reg0);
796 write_reg (dev->fd, REG1, 0x00);
797 write_reg (dev->fd, REGF, regF);
801 memtest (dev->fd, addr);
825 setadresses (dev->fd, start, end);
827 write_reg (dev->fd, REG1, addr >> 8);
828 write_reg (dev->fd, REG2, reg2);
830 write_reg (dev->fd, REGF, regF);
831 write_reg (dev->fd, REG0, reg0);
834 write_reg (dev->fd, 0x07, 0x04);
838 write_reg (dev->fd, 0x07, 0x00);
840 write_reg (dev->fd, REG1, addr >> 8);
841 write_reg2 (dev->fd, REG1, addr);
842 write_reg (dev->fd, REGF, regF | 0x01);
843 write_reg (dev->fd, REG0, reg0 | 0x0C);
846 write_reg (dev->fd, REG1, 0x19);
850 write_reg (dev->fd, REG1, 0x11);
878 counter = read_reg (dev->fd, REG9);
897 read_data (dev->fd, inbuffer, length / factor + 2);
951 read_reg (dev->fd, REGF);
952 read_reg (dev->fd, REGA);
953 read_reg (dev->fd, REG9);
954 counter = read_reg (dev->fd, REG9);
955 read_reg (dev->fd, REGA);
961 counter = read_reg (dev->fd, REG9);
964 read_reg (dev->fd, REGF);
965 read_reg (dev->fd, REGA);
966 read_reg (dev->fd, REG9);
967 counter = read_reg (dev->fd, REG9);
968 read_reg (dev->fd, REGA);
975 eject (int fd)
983 write_reg2 (fd, REG1, 0x1110);
984 detector = read_reg (fd, REGE);
985 detector = read_reg (fd, REGE);
988 write_reg (fd, REG0, 0x00);
989 write_reg (fd, REG1, 0x00);
990 write_reg (fd, REGF, 0x82);
991 write_reg (fd, REG7, 0x00);
999 * @param fd file descriptor of the physical device
1002 wait_document (int fd, uint8_t detector)
1007 write_reg (fd, REG1, 0x00);
1008 write_reg (fd, REG7, 0x00);
1009 detector = read_reg (fd, REGE);
1014 detector = read_reg (fd, REGE);
1016 setadresses (fd, 0x002d, 0x09c7);
1017 write_reg (fd, REG1, 0x00);
1018 write_reg (fd, REG2, 0x90);
1019 write_reg (fd, REGF, 0x82);
1020 write_reg (fd, REG0, 0x00);
1021 val = p5_inb (fd, STATUS) & 0xf8;
1068 status = test_document (dev->fd);
1076 count = available_bytes (dev->fd);
1093 write_reg2 (dev->fd, REG1, 0x1110);
1094 count = read_reg (dev->fd, REGE);
1095 count = read_reg (dev->fd, REGE);
1096 write_reg (dev->fd, REG0, 0x00);
1097 write_reg (dev->fd, REG1, 0x00);
1098 write_reg (dev->fd, REGF, 0x82);
1099 write_reg (dev->fd, REG7, 0x00);
1434 status = test_document (dev->fd);
1484 status = test_document (dev->fd);
1527 while (test_document (dev->fd) != SANE_STATUS_NO_DOCS);
1605 eject (dev->fd);