patty/include/patty/kiss.h
2024-03-01 00:20:46 -05:00

52 lines
1.3 KiB
C

#ifndef _PATTY_KISS_H
#define _PATTY_KISS_H
#include <sys/types.h>
#define PATTY_KISS_FEND 0xc0
#define PATTY_KISS_FESC 0xdb
#define PATTY_KISS_TFEND 0xdc
#define PATTY_KISS_TFESC 0xdd
#define PATTY_KISS_BUFSZ 4096
#define PATTY_KISS_COMMAND(cmd) \
(cmd & 0x0f)
#define PATTY_KISS_COMMAND_PORT(cmd) \
((cmd & 0xf0) >> 4)
enum patty_kiss_command {
PATTY_KISS_DATA = 0x00,
PATTY_KISS_TXDELAY = 0x01,
PATTY_KISS_PERSISTENCE = 0x02,
PATTY_KISS_SLOT_TIME = 0x03,
PATTY_KISS_TX_TAIL = 0x04,
PATTY_KISS_FULL_DUPLEX = 0x05,
PATTY_KISS_HW_SET = 0x06,
PATTY_KISS_RETURN = 0xff
};
typedef struct _patty_kiss_tnc patty_kiss_tnc;
patty_kiss_tnc *patty_kiss_tnc_new_fd(int fd);
patty_kiss_tnc *patty_kiss_tnc_new(const char *device);
int patty_kiss_tnc_fd(patty_kiss_tnc *tnc);
void patty_kiss_tnc_destroy(patty_kiss_tnc *tnc);
size_t patty_kiss_tnc_dropped(patty_kiss_tnc *tnc);
ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
void *buf,
size_t len,
int *port);
ssize_t patty_kiss_tnc_send(patty_kiss_tnc *tnc,
const void *buf,
size_t len,
int port);
#endif /* _PATTY_KISS_H */