LLA to DLPI Migration Guide, April 1997

Chapter 2 33
LLA and DLPI Example Programs
LLA Example Program
/*
* Read a packet from the device.
*/
/* call read and check for an error */
if((recv_cnt = read(fd, data_area, MAX_PKT_SIZE)) < 0) {
printf(”error: read failed, errno = %d\n”, errno);
exit(1);
}
return(recv_cnt);
}
/**************************************************************************
Send a packet over LLA
***************************************************************************/
void
put_data(fd, length)
int fd; /* file descriptor */
int length; /* length of data message */
{
/* call putmsg and check for an error */
if(write(fd, data_area, length) < 0) {
printf(”error: put_data putmsg failed, errno = %d\n”, errno);
exit(1);
}
}
/***************************************************************************
Send a control request to the driver.
****************************************************************************/
void
put_ctrl(fd, cmd)
int fd; /* file descriptor */
int cmd; /* NETCTRL or NETSTAT */
{
/* Send control request to driver */
if(ioctl(fd, cmd, &ctrl_buf) < 0) {
printf(”error: put_ctrl putmsg failed, errno = %d\n”, errno);
exit(1);
}
}
/****************************************************************************
Open an LLA device. The device file specifies which device you
attaching to. There is no need to issue a seperate attach control
request to designate which device you are using. In this example
we will default to /dev/lan0.
*****************************************************************************
*/
int
attach() {