OSDN Git Service

svn rev.329より移動。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / chnos / uuid.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/uuid.c b/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/uuid.c
new file mode 100644 (file)
index 0000000..e81ca35
--- /dev/null
@@ -0,0 +1,67 @@
+\r
+#include "core.h"\r
+\r
+void gen_UUID(UUID *uuid)\r
+{\r
+       uint tsc[2];\r
+\r
+       /*from date*/\r
+       srand((uint)readcmos(0x32));\r
+       uuid->data[0] = (uchar)rand();\r
+\r
+       srand((uint)readcmos(0x09));\r
+       uuid->data[1] = (uchar)rand();\r
+\r
+       srand((uint)readcmos(0x08));\r
+       uuid->data[2] = (uchar)rand();\r
+\r
+       srand((uint)readcmos(0x07));\r
+       uuid->data[3] = (uchar)rand();\r
+\r
+       srand((uint)readcmos(0x04));\r
+       uuid->data[4] = (uchar)rand();\r
+\r
+       srand((uint)readcmos(0x02));\r
+       uuid->data[5] = (uchar)rand();\r
+\r
+       srand((uint)readcmos(0x00));\r
+       uuid->data[6] = (uchar)rand();\r
+\r
+       /*from tsc*/\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[0] & 0x000000ff));\r
+       uuid->data[7] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[0] & 0x0000ff00) >> 8);\r
+       uuid->data[8] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[0] & 0x00ff0000) >> 16);\r
+       uuid->data[9] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[0] >> 24));\r
+       uuid->data[10] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[1] & 0x000000ff));\r
+       uuid->data[11] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[1] & 0x0000ff00) >> 8);\r
+       uuid->data[12] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[1] & 0x00ff0000) >> 16);\r
+       uuid->data[13] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       srand((uint)(tsc[1] >> 24));\r
+       uuid->data[14] = (uchar)rand();\r
+\r
+       read_tsc(tsc);\r
+       uuid->data[15] = (uchar)(tsc[1] & 0x000000ff);\r
+\r
+       return;\r
+}\r