00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <fcntl.h>
00027 #include <stdio.h>
00028 #include <stdlib.h>
00029 #include <unistd.h>
00030 #include <string.h>
00031 #include <errno.h>
00032 #include <sys/ioctl.h>
00033
00034 #include "tffs.h"
00035
00036 #define TFFSDEVICE "/dev/tffsa"
00037
00038 #if 0
00039 void main(void)
00040 {
00041 char Buffer[16];
00042 int i;
00043
00044 get_hw_id(Buffer);
00045
00046 for(i=0; i<16; i++)
00047 {
00048 printf("%02X", Buffer[i]);
00049 }
00050 printf("\n");
00051 }
00052 #endif
00053
00054 int get_hw_id(char *Buffer)
00055 {
00056 flIOctlRecord ioctlRecord;
00057 flUniqueIdOutput ID;
00058 int i;
00059 int docHandle;
00060
00061 docHandle = open(TFFSDEVICE, O_RDWR);
00062 if(docHandle==-1)
00063 {
00064 return -1;
00065 }
00066
00067 ioctlRecord.inputRecord = NULL;
00068 ioctlRecord.outputRecord = &ID;
00069 memset(ID.id, 0x00, 16);
00070
00071 i = ioctl(docHandle, FL_IOCTL_UNIQUE_ID, &ioctlRecord);
00072 if(i != 0)
00073 {
00074 return -2;
00075 }
00076 memcpy(Buffer, ID.id, 16);
00077 return i;
00078 }