Intel PCI-X A. Opening a socket for management API, B. Create request block for driver ioctl

Models: PCI-X PCI

1 54
Download 54 pages 44.32 Kb
Page 46
Image 46

GigMAC-PMC and PCI

 

GigPMC Switch

Board and Driver Users Manual

A. Opening a socket for management API

int s;

s = socket (PF_INET, SOCK_STREAM, 0);

B. Create request block for driver ioctl

struct ifreq ifr; int subCmd; NpkUserCtl myIoc;

char myDataBuf[MAX_LINES * MAX_LINE_LEN];

/* set interface name */ strcpy (ifr.ifr_name, “eth1”);

/* set ioctl sub-type */ subCmd = DM_IOCTL_GET_STATS;

/* set command argument */ myIoc.arg1 = 0;

myIoc.dataItm = (u_int) myDataBuf; ifr.ifr_data = (char *) &myIoc;

C. Issue ioctl command

/* issue ioctl to network driver */

err = ioctl (s, SIOCDEVPRIVATE + subCmd, &ifr);

D. Check and print results

if (err < 0)

{

/* perror (errno); */ usage ();

exit (1);

}

if (subCmd == DM_IOCTL_GET_TRC)

{

print_trace();

}

else

{

if ((subCmd != DM_IOCTL_SET_LOOP_MODE) &&

(subCmd != DM_IOCTL_PROG_EEPROM)) printf ("\n%s\n", myDataBuf);

}

IOCTL COMMAND SUB-TYPES

DSS NETWORKS, INC.

Version: 2.6

Page: 46

Page 46
Image 46
Intel PCI-X A. Opening a socket for management API, B. Create request block for driver ioctl, C. Issue ioctl command