def tcsetattr_llimpl(fd, when, attributes): c_struct = lltype.malloc(TERMIOSP.TO, flavor='raw') c_struct.c_c_iflag, c_struct.c_c_oflag, c_struct.c_c_cflag, \ c_struct.c_c_lflag, ispeed, ospeed, cc = attributes try: for i in range(NCCS): c_struct.c_c_cc[i] = rffi.r_uchar(ord(cc[i][0])) if c_cfsetispeed(c_struct, ispeed) < 0: raise OSError(rposix.get_errno(), 'tcsetattr failed') if c_cfsetospeed(c_struct, ospeed) < 0: raise OSError(rposix.get_errno(), 'tcsetattr failed') if c_tcsetattr(fd, when, c_struct) < 0: raise OSError(rposix.get_errno(), 'tcsetattr failed') finally: lltype.free(c_struct, flavor='raw')
def tcsetattr_llimpl(fd, when, attributes): c_struct = lltype.malloc(TERMIOSP.TO, flavor='raw') c_struct.c_c_iflag, c_struct.c_c_oflag, c_struct.c_c_cflag, \ c_struct.c_c_lflag, ispeed, ospeed, cc = attributes try: for i in range(NCCS): c_struct.c_c_cc[i] = rffi.r_uchar(ord(cc[i])) error = c_cfsetispeed(c_struct, ispeed) if error == -1: raise termios.error(error, 'tcsetattr failed') error = c_cfsetospeed(c_struct, ospeed) if error == -1: raise termios.error(error, 'tcsetattr failed') error = c_tcsetattr(fd, when, c_struct) if error == -1: raise termios.error(error, 'tcsetattr failed') finally: lltype.free(c_struct, flavor='raw')
def tcsetattr_llimpl(fd, when, attributes): c_struct = lltype.malloc(TERMIOSP.TO, flavor='raw') try: c_struct.c_c_iflag = r_uint(attributes[0]) c_struct.c_c_oflag = r_uint(attributes[1]) c_struct.c_c_cflag = r_uint(attributes[2]) c_struct.c_c_lflag = r_uint(attributes[3]) ispeed = r_uint(attributes[4]) ospeed = r_uint(attributes[5]) cc = attributes[6] for i in range(NCCS): c_struct.c_c_cc[i] = rffi.r_uchar(ord(cc[i][0])) if c_cfsetispeed(c_struct, ispeed) < 0: raise OSError(rposix.get_errno(), 'tcsetattr failed') if c_cfsetospeed(c_struct, ospeed) < 0: raise OSError(rposix.get_errno(), 'tcsetattr failed') if c_tcsetattr(fd, when, c_struct) < 0: raise OSError(rposix.get_errno(), 'tcsetattr failed') finally: lltype.free(c_struct, flavor='raw')