52 lines
1.3 KiB
C
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 */
|