Changeset 4998 for trunk/csctapi/io_serial.c
- Timestamp:
- 04/14/11 02:41:42 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/csctapi/io_serial.c
r4934 r4998 58 58 */ 59 59 60 static int IO_Serial_Bitrate(int bitrate);61 62 bool IO_Serial_WaitToRead (struct s_reader * reader, u nsigned delay_ms, unsignedtimeout_ms);63 64 static bool IO_Serial_WaitToWrite (struct s_reader * reader, u nsigned delay_ms, unsignedtimeout_ms);60 static int32_t IO_Serial_Bitrate(int32_t bitrate); 61 62 bool IO_Serial_WaitToRead (struct s_reader * reader, uint32_t delay_ms, uint32_t timeout_ms); 63 64 static bool IO_Serial_WaitToWrite (struct s_reader * reader, uint32_t delay_ms, uint32_t timeout_ms); 65 65 66 66 #if defined(TUXBOX) && defined(PPC) 67 void IO_Serial_Ioctl_Lock(struct s_reader * reader, int flag)68 { 69 static int oscam_sem=0;67 void IO_Serial_Ioctl_Lock(struct s_reader * reader, int32_t flag) 68 { 69 static int32_t oscam_sem=0; 70 70 if ((reader->typ != R_DB2COM1) && (reader->typ != R_DB2COM2)) return; 71 71 if (!flag) … … 83 83 } 84 84 85 static bool IO_Serial_DTR_RTS_dbox2(struct s_reader * reader, int * dtr, int * rts)86 { 87 int rc;88 u nsigned short msr;89 u nsigned int mbit;90 u nsigned short rts_bits[2]={ 0x10, 0x800};91 u nsigned short dtr_bits[2]={0x100, 0};92 int mcport = (reader->typ == R_DB2COM2);85 static bool IO_Serial_DTR_RTS_dbox2(struct s_reader * reader, int32_t * dtr, int32_t * rts) 86 { 87 int32_t rc; 88 uint16_t msr; 89 uint32_t mbit; 90 uint16_t rts_bits[2]={ 0x10, 0x800}; 91 uint16_t dtr_bits[2]={0x100, 0}; 92 int32_t mcport = (reader->typ == R_DB2COM2); 93 93 94 94 if ((rc=ioctl(reader->fdmc, GET_PCDAT, &msr))>=0) … … 100 100 { 101 101 if (*dtr) 102 msr&=(u nsigned short)(~dtr_bits[mcport]);102 msr&=(uint16_t)(~dtr_bits[mcport]); 103 103 else 104 104 msr|=dtr_bits[mcport]; … … 112 112 cs_debug_mask(D_DEVICE, "IO: multicam.o RTS:%s\n", *rts ? "set" : "clear"); fflush(stdout); 113 113 if (*rts) 114 msr&=(u nsigned short)(~rts_bits[mcport]);114 msr&=(uint16_t)(~rts_bits[mcport]); 115 115 else 116 116 msr|=rts_bits[mcport]; … … 124 124 #endif 125 125 126 bool IO_Serial_DTR_RTS(struct s_reader * reader, int * dtr, int * rts)126 bool IO_Serial_DTR_RTS(struct s_reader * reader, int32_t * dtr, int32_t * rts) 127 127 { 128 128 #if defined(TUXBOX) && defined(PPC) … … 131 131 #endif 132 132 133 u nsigned int msr;134 u nsigned int mbit;133 uint32_t msr; 134 uint32_t mbit; 135 135 136 136 if(dtr) … … 179 179 */ 180 180 181 bool IO_Serial_SetBitrate (struct s_reader * reader, u nsigned longbitrate, struct termios * tio)181 bool IO_Serial_SetBitrate (struct s_reader * reader, uint32_t bitrate, struct termios * tio) 182 182 { 183 183 /* Set the bitrate */ … … 204 204 struct serial_struct nuts; 205 205 ioctl(reader->handle, TIOCGSERIAL, &nuts); 206 int custom_baud_asked = bitrate * reader->mhz / reader->cardmhz;206 int32_t custom_baud_asked = bitrate * reader->mhz / reader->cardmhz; 207 207 nuts.custom_divisor = (nuts.baud_base + (custom_baud_asked/2))/ custom_baud_asked; 208 int custom_baud_delivered = nuts.baud_base / nuts.custom_divisor;208 int32_t custom_baud_delivered = nuts.baud_base / nuts.custom_divisor; 209 209 cs_debug_mask(D_DEVICE, "custom baudrate: cardmhz=%d mhz=%d custom_baud=%d baud_base=%d divisor=%d -> effective baudrate %d", 210 210 reader->cardmhz, reader->mhz, custom_baud_asked, nuts.baud_base, nuts.custom_divisor, custom_baud_delivered); 211 int baud_diff = custom_baud_delivered - custom_baud_asked;211 int32_t baud_diff = custom_baud_delivered - custom_baud_asked; 212 212 if (baud_diff < 0) 213 213 baud_diff = (-baud_diff); … … 228 228 } 229 229 230 bool IO_Serial_SetParams (struct s_reader * reader, u nsigned long bitrate, unsigned bits, int parity, unsigned stopbits, int dtr, int rts)230 bool IO_Serial_SetParams (struct s_reader * reader, uint32_t bitrate, uint32_t bits, int32_t parity, uint32_t stopbits, int32_t dtr, int32_t rts) 231 231 { 232 232 struct termios newtio; … … 325 325 // return ERROR; 326 326 327 int mctl;327 int32_t mctl; 328 328 if (ioctl (reader->handle, TIOCMGET, &mctl) >= 0) { 329 329 mctl &= ~TIOCM_RTS; //should be mctl |= TIOCM_RTS; for readers with reversed polarity reset … … 337 337 } 338 338 339 int IO_Serial_SetParity (struct s_reader * reader, BYTE parity)339 int32_t IO_Serial_SetParity (struct s_reader * reader, BYTE parity) 340 340 { 341 341 if(reader->typ == R_INTERNAL) … … 346 346 347 347 struct termios tio; 348 int current_parity;348 int32_t current_parity; 349 349 // Get current parity 350 350 if (tcgetattr (reader->handle, &tio) != 0) … … 406 406 } 407 407 408 void IO_Serial_Sendbreak(struct s_reader * reader, int duration)408 void IO_Serial_Sendbreak(struct s_reader * reader, int32_t duration) 409 409 { 410 410 tcsendbreak (reader->handle, duration); 411 411 } 412 412 413 bool IO_Serial_Read (struct s_reader * reader, u nsigned timeout, unsignedsize, BYTE * data)413 bool IO_Serial_Read (struct s_reader * reader, uint32_t timeout, uint32_t size, BYTE * data) 414 414 { 415 415 BYTE c; 416 uint count = 0;416 uint32_t count = 0; 417 417 #ifdef SH4 418 418 bool readed; … … 423 423 { 424 424 BYTE buf[256]; 425 int n = reader->written;425 int32_t n = reader->written; 426 426 reader->written = 0; 427 427 … … 474 474 } 475 475 476 bool IO_Serial_Write (struct s_reader * reader, u nsigned delay, unsignedsize, const BYTE * data)477 { 478 u nsignedcount, to_send, i_w;476 bool IO_Serial_Write (struct s_reader * reader, uint32_t delay, uint32_t size, const BYTE * data) 477 { 478 uint32_t count, to_send, i_w; 479 479 BYTE data_w[512]; 480 480 … … 493 493 for (i_w=0; i_w < to_send; i_w++) 494 494 data_w [i_w] = data [count + i_w]; 495 u nsigned int u = write (reader->handle, data_w, to_send);495 uint32_t u = write (reader->handle, data_w, to_send); 496 496 if (u != to_send) 497 497 { … … 538 538 */ 539 539 540 static int IO_Serial_Bitrate(int bitrate)541 { 542 static const struct BaudRates { int real; speed_t apival; } BaudRateTab[] = {540 static int32_t IO_Serial_Bitrate(int32_t bitrate) 541 { 542 static const struct BaudRates { int32_t real; speed_t apival; } BaudRateTab[] = { 543 543 #ifdef B230400 544 544 { 230400, B230400 }, … … 606 606 }; 607 607 608 int i;608 int32_t i; 609 609 610 610 for(i=0; i<(int)(sizeof(BaudRateTab)/sizeof(struct BaudRates)); i++) 611 611 { 612 int b=BaudRateTab[i].real;613 int d=((b-bitrate)*10000)/b;612 int32_t b=BaudRateTab[i].real; 613 int32_t d=((b-bitrate)*10000)/b; 614 614 if(abs(d)<=350) 615 615 { … … 620 620 } 621 621 622 bool IO_Serial_WaitToRead (struct s_reader * reader, u nsigned delay_ms, unsignedtimeout_ms)622 bool IO_Serial_WaitToRead (struct s_reader * reader, uint32_t delay_ms, uint32_t timeout_ms) 623 623 { 624 624 fd_set rfds; 625 625 fd_set erfds; 626 626 struct timeval tv; 627 int select_ret;628 int in_fd;627 int32_t select_ret; 628 int32_t in_fd; 629 629 630 630 if (delay_ms > 0) … … 670 670 } 671 671 672 static bool IO_Serial_WaitToWrite (struct s_reader * reader, u nsigned delay_ms, unsignedtimeout_ms)672 static bool IO_Serial_WaitToWrite (struct s_reader * reader, uint32_t delay_ms, uint32_t timeout_ms) 673 673 { 674 674 fd_set wfds; 675 675 fd_set ewfds; 676 676 struct timeval tv; 677 int select_ret;678 int out_fd;677 int32_t select_ret; 678 int32_t out_fd; 679 679 680 680 #ifdef SCI_DEV … … 719 719 bool IO_Serial_InitPnP (struct s_reader * reader) 720 720 { 721 u nsigned int PnP_id_size = 0;721 uint32_t PnP_id_size = 0; 722 722 BYTE PnP_id[IO_SERIAL_PNPID_SIZE]; /* PnP Id of the serial device */ 723 723
Note:
See TracChangeset
for help on using the changeset viewer.