int serialConnectDevice (SerialDevice *serial, const char *device) { if ((serial->package.port = grub_serial_find(device))) { serial->package.byte = SERIAL_NO_BYTE; if (serialPrepareDevice(serial)) { logMessage(LOG_CATEGORY(SERIAL_IO), "device opened: %s", device); return 1; } } else { logMessage(LOG_ERR, "cannot find serial device: %s", device); errno = ENOENT; } return 0; }
int serialConnectDevice (SerialDevice *serial, const char *device) { if ((serial->fileDescriptor = open(device, O_RDWR|O_NOCTTY|O_NONBLOCK)) != -1) { serial->package.deviceIndex = -1; { char *truePath; if ((truePath = _truename(device, NULL))) { char *com; { char *c = truePath; while (*c) { *c = toupper(*c); c += 1; } } if ((com = strstr(truePath, "COM"))) { serial->package.deviceIndex = atoi(com+3) - 1; } free(truePath); } } if (serial->package.deviceIndex >= 0) { if (serialPrepareDevice(serial)) { logMessage(LOG_CATEGORY(SERIAL_IO), "device opened: %s: fd=%d", device, serial->fileDescriptor); return 1; } } else { logMessage(LOG_ERR, "could not determine serial device number: %s", device); } close(serial->fileDescriptor); } else { logMessage(LOG_ERR, "cannot open serial device: %s: %s", device, strerror(errno)); } return 0; }
int serialConnectDevice (SerialDevice *serial, const char *device) { if ((serial->package.fileHandle = CreateFile(device, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL)) != INVALID_HANDLE_VALUE) { serial->package.pendingCharacter = -1; if (serialPrepareDevice(serial)) { logMessage(LOG_CATEGORY(SERIAL_IO), "device opened: %s: fh=%" PRIfd, device, serial->package.fileHandle); return 1; } CloseHandle(serial->package.fileHandle); } else { logWindowsSystemError("CreateFile"); logMessage(LOG_ERR, "cannot open serial device: %s", device); } return 0; }
int serialConnectDevice (SerialDevice *serial, const char *device) { if ((serial->fileDescriptor = open(device, O_RDWR|O_NOCTTY|O_NONBLOCK)) != -1) { if (isatty(serial->fileDescriptor)) { if (serialPrepareDevice(serial)) { logMessage(LOG_DEBUG, "serial device opened: %s: fd=%d", device, serial->fileDescriptor); return 1; } } else { logMessage(LOG_ERR, "not a serial device: %s", device); } close(serial->fileDescriptor); } else { logMessage(LOG_ERR, "cannot open serial device: %s: %s", device, strerror(errno)); } return 0; }