Lines Matching refs:fd

172 #define inb_data(fd) ieee1284_read_data(pplist.portv[fd]);
173 #define inb_stat(fd) (ieee1284_read_status(pplist.portv[fd]) ^ S1284_INVERTED)
174 #define inb_ctrl(fd) (ieee1284_read_control(pplist.portv[fd]) ^ C1284_INVERTED)
176 static inline u_char inb_eppdata(int fd)
179 ieee1284_epp_read_data(pplist.portv[fd], 0, (char *)&val, 1);
183 static inline void outb_eppdata(int fd, u_char val)
185 ieee1284_epp_write_data(pplist.portv[fd], 0, (const char *)&val, 1);
188 #define outb_data(fd,val) ieee1284_write_data(pplist.portv[fd], val)
189 #define outb_ctrl(fd,val) ieee1284_write_control(pplist.portv[fd], \
191 static inline void outb_addr(int fd, u_char val)
193 ieee1284_epp_write_addr (pplist.portv[fd], 0, (char *)&val, 1);
198 #define inb_data(fd) sanei_inb(port[fd].base)
199 #define inb_stat(fd) sanei_inb(port[fd].base + 1)
200 #define inb_ctrl(fd) sanei_inb(port[fd].base + 2)
201 #define inb_eppdata(fd) sanei_inb(port[fd].base + 4)
203 #define outb_data(fd,val) sanei_outb(port[fd].base, val)
204 #define outb_stat(fd,val) sanei_outb(port[fd].base + 1, val)
205 #define outb_ctrl(fd,val) sanei_outb(port[fd].base + 2, val)
206 #define outb_addr(fd,val) sanei_outb(port[fd].base + 3, val)
207 #define outb_eppdata(fd,val) sanei_outb(port[fd].base + 4, val)
214 #define inbyte400(fd) sanei_inb(port[fd].base + 0x400)
215 #define inbyte402(fd) sanei_inb(port[fd].base + 0x402)
216 #define outbyte400(fd,val) sanei_outb(port[fd].base + 0x400, val)
217 #define outbyte402(fd,val) sanei_outb(port[fd].base + 0x402, val)
317 pp_probe( int fd )
326 DBG( 4, "pp_probe: port 0x%04lx\n", port[fd].base );
329 outbyte402( fd, 0x0c );
330 outb_ctrl ( fd, 0x0c );
331 outb_data ( fd, 0x55 );
332 a = inb_data( fd );
346 a = inbyte402( fd );
351 inbyte400( fd ); /* Remove byte from FIFO */
358 outbyte402( fd, b );
359 c = inbyte402( fd );
362 outbyte402( fd, 0xc0 ); /* FIFO test */
364 while (!(inbyte402( fd ) & 0x01) && (j < 1024)) {
365 inbyte402( fd );
372 while (!(inbyte402( fd ) & 0x02) && (j < 1024)) {
373 outbyte400( fd, 0x00 );
380 while (!(inbyte402( fd ) & 0x01) && (j < 1024)) {
381 inbyte400( fd );
395 outbyte402( fd, 0x20 );
398 outb_data( fd, 0x55 );
399 outb_ctrl( fd, 0x0c );
400 a = inb_data( fd );
401 outb_data( fd, 0x55 );
402 outb_ctrl( fd, 0x2c );
403 b = inb_data( fd );
410 if( port[fd].base & 0x007 ) {
417 outbyte402( fd, i );
419 a = inb_stat( fd );
420 outb_stat( fd, a );
421 outb_stat( fd, (a & 0xfe));
422 a = inb_stat( fd );
430 outbyte402( fd, 0x80 );
434 a = inb_stat( fd );
435 outb_stat( fd, a );
436 outb_stat( fd, (a & 0xfe));
437 a = inb_stat( fd );
440 outbyte402( fd, 0x0c );
441 outb_ctrl ( fd, 0x0c );
445 outb_ctrl( fd, 0x04 );
446 inb_eppdata ( fd );
447 a = inb_stat( fd );
448 outb_stat( fd, a );
449 outb_stat( fd, (a & 0xfe));
459 outb_ctrl( fd, 0x24 );
460 inb_eppdata ( fd );
461 a = inb_stat( fd );
462 outb_stat( fd, a );
463 outb_stat( fd, (a & 0xfe));
473 outbyte402( fd, 0x0c );
474 outb_ctrl ( fd, 0x0c );
480 static int pp_set_scpmode( int fd )
486 tmp = inbyte402( fd );
488 outbyte402( fd, tmp );
490 tmp = inb_ctrl( fd );
492 outb_ctrl ( fd, tmp );
497 static int pp_set_bidimode( int fd )
502 tmp = inbyte402( fd );
504 outbyte402( fd, tmp );
506 tmp = inb_ctrl( fd );
508 outb_ctrl ( fd, tmp );
513 static int pp_set_eppmode( int fd )
518 tmp = inbyte402( fd );
520 outbyte402( fd, tmp );
522 tmp = inb_ctrl( fd );
524 outb_ctrl ( fd, tmp );
529 static int pp_set_ecpmode( int fd )
537 tmp = inbyte402( fd );
539 outbyte402( fd, tmp );
548 pp_setmode( int fd, int mode )
552 if( 0 == (mode & port[fd].caps)) {
558 case SANEI_PP_MODE_SPP: ret = pp_set_scpmode( fd ); break;
559 case SANEI_PP_MODE_BIDI: ret = pp_set_bidimode( fd ); break;
560 case SANEI_PP_MODE_EPP: ret = pp_set_eppmode( fd ); break;
561 case SANEI_PP_MODE_ECP: ret = pp_set_ecpmode( fd ); break;
841 pp_close( int fd, SANE_Status *status )
846 DBG( 4, "pp_close: fd=%d\n", fd );
849 DBG( 6, "pp_close: this is port '%s'\n", pplist.portv[fd]->name );
851 DBG( 6, "pp_close: this is port 0x%03lx\n", port[fd].base );
853 outb_ctrl( fd, port[fd].ctrl );
855 outbyte402( fd, port[fd].ecp_ctrl );
859 if( port[fd].claimed == SANE_TRUE ) {
860 sanei_pp_release( fd );
865 if((result = ieee1284_close(pplist.portv[fd])) < 0) {
867 if( sanei_ioperm( port[fd].base, 5, 0 )) {
871 pplist.portv[fd]->name, pp_libieee1284_errorstr(result));
873 DBG( 1, "pp_close: can't free port 0x%03lx\n", port[fd].base );
880 port[fd].in_use = SANE_FALSE;
905 sanei_pp_open( const char *dev, int *fd )
911 *fd = pp_open( dev, &status );
912 if( *fd == -1 ) {
917 DBG( 6, "sanei_pp_open: connected to device using fd %u\n", *fd );
923 sanei_pp_close( int fd )
927 DBG( 4, "sanei_pp_close: fd = %d\n", fd );
930 if((fd < 0) || (fd >= pplist.portc)) {
932 if((fd < 0) || (fd >= NELEMS (port))) {
934 DBG( 2, "sanei_pp_close: fd %d is invalid\n", fd );
938 if( port[fd].in_use == SANE_FALSE ) {
942 DBG( 6, "sanei_pp_close: port is '%s'\n", pplist.portv[fd]->name );
944 DBG( 6, "sanei_pp_close: port is 0x%03lx\n", port[fd].base );
950 if( pp_close (fd, &status) == -1 ) {
958 sanei_pp_claim( int fd )
963 DBG( 4, "sanei_pp_claim: fd = %d\n", fd );
966 if((fd < 0) || (fd >= pplist.portc)) {
967 DBG( 2, "sanei_pp_claim: fd %d is invalid\n", fd );
971 result = ieee1284_claim (pplist.portv[fd]);
979 port[fd].claimed = SANE_TRUE;
985 sanei_pp_release( int fd )
987 DBG( 4, "sanei_pp_release: fd = %d\n", fd );
990 if((fd < 0) || (fd >= pplist.portc)) {
991 DBG( 2, "sanei_pp_release: fd %d is invalid\n", fd );
995 ieee1284_release( pplist.portv[fd] );
997 port[fd].claimed = SANE_FALSE;
1003 sanei_pp_outb_data( int fd, SANE_Byte val )
1006 DBG( 4, "sanei_pp_outb_data: called for fd %d\n", fd );
1009 if ((fd < 0) || (fd >= pplist.portc)) {
1011 if ((fd < 0) || (fd >= NELEMS (port))) {
1013 DBG( 2, "sanei_pp_outb_data: invalid fd %d\n", fd );
1017 outb_data( fd, val );
1022 sanei_pp_outb_ctrl( int fd, SANE_Byte val )
1025 DBG( 4, "sanei_pp_outb_ctrl: called for fd %d\n", fd );
1028 if ((fd < 0) || (fd >= pplist.portc)) {
1030 if ((fd < 0) || (fd >= NELEMS (port))) {
1032 DBG( 2, "sanei_pp_outb_ctrl: invalid fd %d\n", fd );
1036 outb_ctrl( fd, val );
1041 sanei_pp_outb_addr( int fd, SANE_Byte val )
1044 DBG( 4, "sanei_pp_outb_addr: called for fd %d\n", fd );
1047 if ((fd < 0) || (fd >= pplist.portc)) {
1049 if ((fd < 0) || (fd >= NELEMS (port))) {
1051 DBG( 2, "sanei_pp_outb_addr: invalid fd %d\n", fd );
1055 outb_addr( fd, val );
1060 sanei_pp_outb_epp( int fd, SANE_Byte val )
1063 DBG( 4, "sanei_pp_outb_epp: called for fd %d\n", fd );
1066 if ((fd < 0) || (fd >= pplist.portc)) {
1068 if ((fd < 0) || (fd >= NELEMS (port))) {
1070 DBG( 2, "sanei_pp_outb_epp: invalid fd %d\n", fd );
1074 outb_eppdata( fd, val );
1079 sanei_pp_inb_data( int fd )
1082 DBG( 4, "sanei_pp_inb_data: called for fd %d\n", fd );
1085 if ((fd < 0) || (fd >= pplist.portc)) {
1087 if ((fd < 0) || (fd >= NELEMS (port))) {
1089 DBG( 2, "sanei_pp_inb_data: invalid fd %d\n", fd );
1093 return inb_data( fd );
1097 sanei_pp_inb_stat( int fd )
1100 DBG( 4, "sanei_pp_inb_stat: called for fd %d\n", fd );
1103 if ((fd < 0) || (fd >= pplist.portc)) {
1105 if ((fd < 0) || (fd >= NELEMS (port))) {
1107 DBG( 2, "sanei_pp_outb_stat: invalid fd %d\n", fd );
1111 return inb_stat( fd );
1115 sanei_pp_inb_ctrl( int fd )
1118 DBG( 4, "sanei_pp_inb_ctrl: called for fd %d\n", fd );
1120 if ((fd < 0) || (fd >= pplist.portc)) {
1122 if ((fd < 0) || (fd >= NELEMS (port))) {
1124 DBG( 2, "sanei_pp_inb_ctrl: invalid fd %d\n", fd );
1128 return inb_ctrl( fd );
1132 sanei_pp_inb_epp( int fd )
1135 DBG( 4, "sanei_pp_inb_epp: called for fd %d\n", fd );
1138 if ((fd < 0) || (fd >= pplist.portc)) {
1140 if ((fd < 0) || (fd >= NELEMS (port))) {
1142 DBG( 2, "sanei_pp_inb_epp: invalid fd %d\n", fd );
1146 return inb_eppdata( fd );
1150 sanei_pp_getmodes( int fd, int *mode )
1153 if ((fd < 0) || (fd >= pplist.portc)) {
1155 if ((fd < 0) || (fd >= NELEMS (port))) {
1157 DBG( 2, "sanei_pp_getmodes: invalid fd %d\n", fd );
1162 *mode = port[fd].caps;
1168 sanei_pp_setmode( int fd, int mode )
1173 if ((fd < 0) || (fd >= pplist.portc)) {
1175 if ((fd < 0) || (fd >= NELEMS (port))) {
1177 DBG( 2, "sanei_pp_setmode: invalid fd %d\n", fd );
1199 result = ieee1284_negotiate( pplist.portv[fd], mode );
1210 return pp_setmode( fd, mode );
1237 sanei_pp_set_datadir( int fd, int rev )
1240 if ((fd < 0) || (fd >= pplist.portc)) {
1244 if ((fd < 0) || (fd >= NELEMS (port))) {
1246 DBG( 2, "sanei_pp_setdir: invalid fd %d\n", fd );
1251 ieee1284_data_dir( pplist.portv[fd], rev );
1253 tmp = inb_ctrl( fd );
1258 outb_ctrl( fd, tmp );
1285 sanei_pp_open( const char *dev, int *fd )
1287 if (fd)
1288 *fd = -1;
1301 sanei_pp_close( int fd )
1303 DBG( 4, "sanei_pp_close: called for fd %d\n", fd );
1304 DBG( 2, "sanei_pp_close: fd %d is invalid\n", fd );
1309 sanei_pp_claim( int fd )
1311 DBG( 4, "sanei_pp_claim: called for fd %d\n", fd );
1312 DBG( 2, "sanei_pp_claim: fd %d is invalid\n", fd );
1317 sanei_pp_release( int fd )
1319 DBG( 4, "sanei_pp_release: called for fd %d\n", fd );
1320 DBG( 2, "sanei_pp_release: fd %d is invalid\n", fd );
1325 sanei_pp_outb_data( int fd, SANE_Byte val )
1328 DBG( 4, "sanei_pp_outb_data: called for fd %d\n", fd );
1329 DBG( 2, "sanei_pp_outb_data: fd %d is invalid\n", fd );
1334 sanei_pp_outb_ctrl( int fd, SANE_Byte val )
1337 DBG( 4, "sanei_pp_outb_ctrl: called for fd %d\n", fd );
1338 DBG( 2, "sanei_pp_outb_ctrl: fd %d is invalid\n", fd );
1343 sanei_pp_outb_addr( int fd, SANE_Byte val )
1346 DBG( 4, "sanei_pp_outb_addr: called for fd %d\n", fd );
1347 DBG( 2, "sanei_pp_outb_addr: fd %d is invalid\n", fd );
1352 sanei_pp_inb_data( int fd )
1354 DBG( 4, "sanei_pp_inb_data: called for fd %d\n", fd );
1355 DBG( 2, "sanei_pp_inb_data: fd %d is invalid\n", fd );
1359 SANE_Byte sanei_pp_inb_stat( int fd )
1361 DBG( 4, "sanei_pp_inb_stat: called for fd %d\n", fd );
1362 DBG( 2, "sanei_pp_inb_stat: fd %d is invalid\n", fd );
1366 SANE_Byte sanei_pp_inb_ctrl( int fd )
1368 DBG( 4, "sanei_pp_inb_ctrl: called for fd %d\n", fd );
1369 DBG( 2, "sanei_pp_inb_ctrl: fd %d is invalid\n", fd );
1373 SANE_Byte sanei_pp_inb_epp ( int fd )
1375 DBG( 4, "sanei_pp_inb_epp: called for fd %d\n", fd );
1376 DBG( 2, "sanei_pp_inb_epp: fd %d is invalid\n", fd );
1381 sanei_pp_getmodes( int fd, int *mode )
1384 DBG( 4, "sanei_pp_getmodes: called for fd %d\n", fd );
1385 DBG( 1, "sanei_pp_getmodes: fd %d is invalid\n", fd );
1390 sanei_pp_setmode( int fd, int mode )
1393 DBG( 4, "sanei_pp_setmode: called for fd %d\n", fd );
1394 DBG( 1, "sanei_pp_setmode: fd %d is invalid\n", fd );
1407 sanei_pp_set_datadir( int fd, int rev )
1410 DBG( 4, "sanei_pp_setdir: called for fd %d\n", fd );
1411 DBG( 1, "sanei_pp_setdir: fd %d is invalid\n", fd );