hdf_err HDFattrWrite(hdf_idt id, void *val)
{
hdf_idt type_id;
- hdf_type type;
- hdf_class_type hdf_type;
int ret = 0;
+#ifdef PCLINUX
+ int isI32BE = 0;
+#endif
if ((type_id = H5Aget_type(id)) < 0)
return -1;
+#ifdef PCLINUX
+ if((H5Tget_class(type_id) == H5T_INTEGER) && (H5Tget_size(type_id) == 4)) {
+ isI32BE = 1; /* See HDFattrCreate */
+ if (H5Tconvert(H5T_NATIVE_INT,H5T_STD_I32BE,1,(void *)val,NULL,NULL) < 0)
+ return -1;
+ }
+#endif
+
ret = H5Awrite(id,type_id, val);
+
+#ifdef PCLINUX
+ if (isI32BE && (H5Tconvert(H5T_STD_I32BE,H5T_NATIVE_INT,1,(void *)val,NULL,NULL) < 0))
+ return -1;
+#endif
+
H5Tclose(type_id);
return ret;