Use only one write(2) call per frame start
Use only one write(2) call per frame start in src/kiss.c
This commit is contained in:
parent
d7ab08338c
commit
54a521e8a8
1 changed files with 10 additions and 7 deletions
17
src/kiss.c
17
src/kiss.c
|
@ -229,8 +229,15 @@ static inline ssize_t write_byte(int fd, uint8_t c) {
|
|||
return write(fd, &c, sizeof(c));
|
||||
}
|
||||
|
||||
static inline ssize_t write_command(int fd, int command, int port) {
|
||||
return write_byte(fd, ((port & 0x0f) << 4) | (command & 0x0f));
|
||||
static inline ssize_t write_start(int fd,
|
||||
enum patty_kiss_command command,
|
||||
int port) {
|
||||
uint8_t start[2] = {
|
||||
PATTY_KISS_FEND,
|
||||
((port & 0x0f) << 4) | (command & 0x0f)
|
||||
};
|
||||
|
||||
return write(fd, start, sizeof(start));
|
||||
}
|
||||
|
||||
static uint8_t escape_fend[2] = { PATTY_KISS_FESC, PATTY_KISS_TFEND };
|
||||
|
@ -242,11 +249,7 @@ ssize_t patty_kiss_tnc_send(patty_kiss_tnc *tnc,
|
|||
int port) {
|
||||
size_t i, start = 0, end = 0;
|
||||
|
||||
if (write_byte(tnc->fd, PATTY_KISS_FEND) < 0) {
|
||||
goto error_io;
|
||||
}
|
||||
|
||||
if (write_command(tnc->fd, PATTY_KISS_DATA, port) < 0) {
|
||||
if (write_start(tnc->fd, PATTY_KISS_DATA, port) < 0) {
|
||||
goto error_io;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue