Sample Programs

Raw Mode

printf(” dl_errno = 0x%02x\n”, err_ack->dl_errno); printf(” dl_unix_errno = %d\n”, err_ack->dl_unix_errno); exit(1);

} else {

printf(”%s,check_ctrl: expected primitive 0x%02x”, tag, prim); printf(”, got primitive 0x%02x\n”, err_ack->dl_primitive); exit(1);

}

}

}

/*-=-* put a control message on a stream *-=-*/ void

put_ctrl(fd, len, pri)

int fd, len, pri;

{

ctl.len = len;

if(putmsg(fd, &ctl, 0, pri) < 0) {

printf(”%s,put_ctrl: putmsg failed, errno = %d\n”, tag, errno); exit(1);

}

}

/*-=-* put a control + data message on a stream *-=-*/ void

put_both(fd, clen, dlen, pri)

int fd, clen, dlen, pri;

{

ctl.len = clen; dat.len = dlen;

if(putmsg(fd, &ctl, &dat, pri) < 0) {

printf(”%s,put_both: putmsg failed, errno = %d\n”, tag, errno); exit(1);

}

}

/*-=-* open file descriptor and attach *-=-*/

int

 

dl_open(ppa)

 

int

ppa;

{

 

int

fd;

dl_attach_req_t *attach_req = (dl_attach_req_t *)ctl_area;

if((fd = open(”/dev/dlpi”, O_RDWR)) == -1) { printf(”%s,dl_open: open failed, errno = %d\n”,tag, errno); exit(1);

}

attach_req->dl_primitive = DL_ATTACH_REQ; attach_req->dl_ppa = ppa;

put_ctrl(fd, sizeof(dl_attach_req_t), 0); get_msg(fd);

check_ctrl(DL_OK_ACK);

Appendix A

169

Page 169
Image 169
HP UX 11i v2 Networking Software manual Appendix a 169