/*! @defgroup version version - version.c This module is used to build the version application. The version program is used to get the firmware version and compile date of the 37e12's firmware. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ARGCHECK(num){if(argc!=num){printf("invalid number of arguements\n");help();return -1;}} #define OPENDEV(filed,dev){if((filed = open(dev, O_RDWR))<=0){printf("couldn't open %s\n",dev);return -1;}} static int help(void) { const char *help_table = "********************************************** *version * *Nathan Z. Gustavson * *Emac.inc * *"__DATE__" * *usage: * *version device * *ex: * *version /dev/37e12 * *Gets the firmware version * *of /dev/37e12 * **********************************************\n"; printf("%s",help_table); return 0; } #define VERSIONMASK BITMASK(VERSIONINFO) int main(int argc, char **argv) { int fd,rxnum; VersionInfo *version; __u8 buffer[100]; Cop_Data *CopRouter; __u32 typemask; ARGCHECK(2); OPENDEV(fd,argv[1]); CopRouter = CopDeviceCreate(0); version = &CopRouter->version; e12packetout(fd,VERSIONINFO,0,NULL); rxnum = read(fd,buffer,sizeof(buffer)); typemask = E12_Packet_Route(CopRouter,buffer, rxnum); if(typemask&VERSIONMASK) { printf("version %u.%u -- %s\n",version->version>>4,version->version&0x0F,version->date); } close(fd); return 0; }