lnp.h File Reference

LNP Interface: link networking protocol. More...

#include <config.h>
#include <unistd.h>
Include dependency graph for lnp.h:

Go to the source code of this file.

Macros

#define LNP_DUMMY_INTEGRITY   ((lnp_integrity_handler_t)0)
 dummy integrity layer packet handler
 
#define LNP_DUMMY_ADDRESSING   ((lnp_addressing_handler_t)0)
 dummy addressing layer packet handler
 
#define LNP_DUMMY_REMOTE   ((lnp_remote_handler_t)0)
 dummy remote packet handler
 

Typedefs

typedef void(* lnp_integrity_handler_t) (const unsigned char *, unsigned char)
 the integrity layer packet handler type
 
typedef void(* lnp_addressing_handler_t) (const unsigned char *, unsigned char, unsigned char)
 the addressing layer packet handler type
 
typedef void(* lnp_remote_handler_t) (unsigned int)
 handler for remote
 

Functions

void lnp_integrity_set_handler (lnp_integrity_handler_t handler)
 set the integrity layer packet handler
 
void lnp_addressing_set_handler (unsigned char port, lnp_addressing_handler_t handler)
 set an addressing layer packet handler for a port.
 
void lnp_set_hostaddr (unsigned char host)
 set new LNP host address
 
void lnp_remote_set_handler (lnp_remote_handler_t handler)
 set the remote packet handler
 
int send_msg (unsigned char msg)
 send a standard firmware message
 
void clear_msg (void)
 clear last message from standard firmware
 
wakeup_t msg_received (wakeup_t m)
 wait until receive a message
 
unsigned char get_msg (void)
 read received message from standard firmware
 
int lnp_integrity_write (const unsigned char *data, unsigned char length)
 send a LNP integrity layer packet of given length
 
int lnp_addressing_write (const unsigned char *data, unsigned char length, unsigned char dest, unsigned char srcport)
 send a LNP addressing layer packet of given length
 

Variables

volatile lnp_integrity_handler_t lnp_integrity_handler
 there are no ports for integrity layer packets, so there's just
 
volatile lnp_addressing_handler_t lnp_addressing_handler []
 addressing layer packets may be directed to a variety of ports.
 
unsigned char lnp_hostaddr
 LNP host address.
 
lnp_remote_handler_t lnp_remote_handler
 packets from remote have no ports
 
unsigned char lnp_rcx_message
 message variable
 

Detailed Description

LNP Interface: link networking protocol.

Author
Markus L. Noga marku.nosp@m.s@no.nosp@m.ga.de

Definition in file lnp.h.

Macro Definition Documentation

◆ LNP_DUMMY_ADDRESSING

#define LNP_DUMMY_ADDRESSING   ((lnp_addressing_handler_t)0)

dummy addressing layer packet handler

Definition at line 61 of file lnp.h.

◆ LNP_DUMMY_INTEGRITY

#define LNP_DUMMY_INTEGRITY   ((lnp_integrity_handler_t)0)

dummy integrity layer packet handler

Definition at line 58 of file lnp.h.

◆ LNP_DUMMY_REMOTE

#define LNP_DUMMY_REMOTE   ((lnp_remote_handler_t)0)

dummy remote packet handler

Definition at line 70 of file lnp.h.

Typedef Documentation

◆ lnp_addressing_handler_t

typedef void(* lnp_addressing_handler_t) (const unsigned char *, unsigned char, unsigned char)

the addressing layer packet handler type

arguments are (data,length,src_address).

Definition at line 55 of file lnp.h.

◆ lnp_integrity_handler_t

typedef void(* lnp_integrity_handler_t) (const unsigned char *, unsigned char)

the integrity layer packet handler type

arguments are (data,length).

Definition at line 50 of file lnp.h.

◆ lnp_remote_handler_t

typedef void(* lnp_remote_handler_t) (unsigned int)

handler for remote

arguments are (buttonstate)

Definition at line 67 of file lnp.h.

Function Documentation

◆ clear_msg()

void clear_msg ( void  )
externinline

clear last message from standard firmware

Definition at line 136 of file lnp.h.

References lnp_rcx_message.

Referenced by get_msg().

◆ get_msg()

unsigned char get_msg ( void  )
externinline

read received message from standard firmware

Definition at line 145 of file lnp.h.

References clear_msg(), lnp_rcx_message, msg_received(), and wait_event().

◆ lnp_addressing_set_handler()

void lnp_addressing_set_handler ( unsigned char  port,
lnp_addressing_handler_t  handler 
)
externinline

set an addressing layer packet handler for a port.

Definition at line 107 of file lnp.h.

References lnp_addressing_handler.

◆ lnp_addressing_write()

int lnp_addressing_write ( const unsigned char *  data,
unsigned char  length,
unsigned char  dest,
unsigned char  srcport 
)
extern

send a LNP addressing layer packet of given length

Returns
0 on success.

◆ lnp_integrity_set_handler()

void lnp_integrity_set_handler ( lnp_integrity_handler_t  handler)
externinline

set the integrity layer packet handler

Definition at line 101 of file lnp.h.

References lnp_integrity_handler.

◆ lnp_integrity_write()

int lnp_integrity_write ( const unsigned char *  data,
unsigned char  length 
)
extern

send a LNP integrity layer packet of given length

Returns
0 on success.

◆ lnp_remote_set_handler()

void lnp_remote_set_handler ( lnp_remote_handler_t  handler)
externinline

set the remote packet handler

Definition at line 122 of file lnp.h.

References lnp_remote_handler.

◆ lnp_set_hostaddr()

void lnp_set_hostaddr ( unsigned char  host)
externinline

set new LNP host address

Definition at line 115 of file lnp.h.

References lnp_hostaddr.

◆ msg_received()

wakeup_t msg_received ( wakeup_t  m)

wait until receive a message

Referenced by get_msg().

◆ send_msg()

int send_msg ( unsigned char  msg)
extern

send a standard firmware message

Variable Documentation

◆ lnp_addressing_handler

volatile lnp_addressing_handler_t lnp_addressing_handler[]
extern

addressing layer packets may be directed to a variety of ports.

Referenced by lnp_addressing_set_handler().

◆ lnp_hostaddr

unsigned char lnp_hostaddr
extern

LNP host address.

Referenced by lnp_set_hostaddr().

◆ lnp_integrity_handler

volatile lnp_integrity_handler_t lnp_integrity_handler
extern

there are no ports for integrity layer packets, so there's just

Referenced by lnp_integrity_set_handler().

◆ lnp_rcx_message

unsigned char lnp_rcx_message
extern

message variable

Referenced by clear_msg(), and get_msg().

◆ lnp_remote_handler

lnp_remote_handler_t lnp_remote_handler
extern

packets from remote have no ports

Referenced by lnp_remote_set_handler().


brickOS is released under the Mozilla Public License.
Original code copyright 1998-2005 by the authors.

Generated for brickOS C by doxygen 1.9.8