[packages/hdf-eos5] - added support for hid_t longer than long (i.e. int64_t on ILP32)
qboosh
qboosh at pld-linux.org
Wed Dec 11 18:35:49 CET 2019
commit 7824161a3ba1709e28c120c0193aa315ae02d46a
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Wed Dec 11 18:36:21 2019 +0100
- added support for hid_t longer than long (i.e. int64_t on ILP32)
hdf-eos5-types.patch | 297 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 297 insertions(+)
---
diff --git a/hdf-eos5-types.patch b/hdf-eos5-types.patch
index e254f64..e3622bb 100644
--- a/hdf-eos5-types.patch
+++ b/hdf-eos5-types.patch
@@ -997,3 +997,300 @@
/* Define dimensions and specify their sizes */
/* ----------------------------------------- */
+--- hdfeos5/include/HE5_HdfEosDef.h.orig 2017-03-27 20:15:22.000000000 +0200
++++ hdfeos5/include/HE5_HdfEosDef.h 2019-12-11 16:02:29.100529098 +0100
+@@ -549,6 +549,10 @@
+ hid_t HE5_EHint2hid(int invalue);
+ hid_t HE5_EHlong2hid(long invalue);
+ int HE5_EHlong2int(long invalue);
++int HE5_EHllong2int(long long invalue);
++long HE5_EHllong2long(long long invalue);
++long long HE5_EHint2llong(int invalue);
++long long HE5_EHlong2llong(long invalue);
+
+ hsize_t HE5_EHhid2hsize(hid_t invalue);
+ hsize_t HE5_EHint2hsize(int invalue);
+@@ -557,6 +561,8 @@
+ long HE5_EHhsize2long(hsize_t invalue);
+ int HE5_EHhsize2int(hsize_t invalue);
+ hssize_t HE5_EHhsize2hssize(hsize_t invalue);
++long long HE5_EHhsize2llong(hsize_t invalue);
++hsize_t HE5_EHllong2hsize(long long invalue);
+
+ hssize_t HE5_EHhid2hssize(hid_t invalue);
+ hssize_t HE5_EHint2hssize(int invalue);
+@@ -565,6 +571,8 @@
+ long HE5_EHhssize2long(hssize_t invalue);
+ int HE5_EHhssize2int(hssize_t invalue);
+ hsize_t HE5_EHhssize2hsize(hssize_t invalue);
++long long HE5_EHhssize2llong(hssize_t invalue);
++hssize_t HE5_EHllong2hssize(long long invalue);
+
+ unsigned LONGLONG HE5_EHint2ullong(int invalue);
+ long HE5_EHullong2long(unsigned LONGLONG invalue);
+--- hdfeos5/src/EHapi.c.orig 2019-12-11 15:44:35.239680034 +0100
++++ hdfeos5/src/EHapi.c 2019-12-11 16:00:43.981098579 +0100
+@@ -324,6 +324,8 @@
+ outvalue = HE5_EHint2long(invalue);
+ else if (sizeof(hid_t) == sizeof(long))
+ outvalue = invalue;
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHllong2long(invalue);
+
+ return(outvalue);
+ }
+@@ -410,6 +410,8 @@
+ outvalue = invalue;
+ else if (sizeof(hid_t) == sizeof(long))
+ outvalue = HE5_EHlong2int(invalue);
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHllong2int(invalue);
+
+ return(outvalue);
+ }
+@@ -447,6 +449,8 @@
+ outvalue = invalue;
+ else if (sizeof(hid_t) == sizeof(long))
+ outvalue = HE5_EHint2long(invalue);
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHint2llong(invalue);
+
+ return(outvalue);
+ }
+@@ -485,6 +489,8 @@
+ outvalue = HE5_EHlong2int(invalue);
+ else if (sizeof(hid_t) == sizeof(long))
+ outvalue = invalue;
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHlong2llong(invalue);
+
+ return(outvalue);
+ }
+@@ -542,6 +548,79 @@
+ return(outvalue);
+ }
+
++int
++HE5_EHllong2int(long long invalue)
++{
++ herr_t status = FAIL;
++ long outvalue = FAIL;
++
++ status = H5Tconvert(H5T_NATIVE_LLONG, H5T_NATIVE_INT, 1, &invalue, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHllong2int", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long long\" to \"int\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,&invalue,sizeof(int));
++ return(outvalue);
++}
++
++long
++HE5_EHllong2long(long long invalue)
++{
++ herr_t status = FAIL;
++ long outvalue = FAIL;
++
++ status = H5Tconvert(H5T_NATIVE_LLONG, H5T_NATIVE_LONG, 1, &invalue, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHllong2long", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long long\" to \"long\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,&invalue,sizeof(long));
++ return(outvalue);
++}
++
++long long
++HE5_EHint2llong(int invalue)
++{
++ herr_t status = FAIL;
++ long long outvalue = FAIL;
++ long long buf = FAIL;
++
++ memmove(&buf,&invalue,sizeof(int));
++
++ status = H5Tconvert(H5T_NATIVE_INT, H5T_NATIVE_LLONG, 1, &buf, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHint2llong", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"int\" to \"long long\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,&buf,sizeof(long long));
++ return(outvalue);
++}
++
++long long
++HE5_EHlong2llong(long invalue)
++{
++ herr_t status = FAIL;
++ long long outvalue = FAIL;
++ long long buf = FAIL;
++
++ memmove(&buf,&invalue,sizeof(long));
++
++ status = H5Tconvert(H5T_NATIVE_LONG, H5T_NATIVE_LLONG, 1, &buf, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHlong2llong", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long\" to \"long long\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,&buf,sizeof(long long));
++ return(outvalue);
++}
+
+ /*----------------------------------------------------------------------------|
+ | BEGIN_PROLOG |
+@@ -576,6 +655,8 @@
+ outvalue = HE5_EHint2hsize(invalue);
+ else if (sizeof(hid_t) == sizeof(long) )
+ outvalue = HE5_EHlong2hsize(invalue);
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHllong2hsize(invalue);
+
+ return(outvalue);
+ }
+@@ -728,6 +809,8 @@
+ outvalue = HE5_EHhsize2int(invalue);
+ else if (sizeof(hid_t) == sizeof(long) )
+ outvalue = HE5_EHhsize2long(invalue);
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHhsize2llong(invalue);
+
+ return(outvalue);
+ }
+@@ -843,6 +926,55 @@
+ return(outvalue);
+ }
+
++hsize_t
++HE5_EHllong2hsize(long long invalue)
++{
++
++ herr_t status = FAIL;
++ void *buf = NULL;
++ hsize_t outvalue = 0;
++ size_t maxsize = 0;
++
++ maxsize = MAX(H5Tget_size(H5T_NATIVE_LLONG),H5Tget_size(H5T_NATIVE_HSIZE));
++ buf = calloc(1,maxsize);
++ memmove(buf,&invalue,sizeof(long long));
++
++ status = H5Tconvert(H5T_NATIVE_LLONG, H5T_NATIVE_HSIZE, 1, buf, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHllong2hsize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long long\" to \"hsize_t\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSIZE));
++ free(buf);
++ return(outvalue);
++}
++
++long long
++HE5_EHhsize2llong(hsize_t invalue)
++{
++ herr_t status = FAIL;
++ void *buf = NULL;
++ long long outvalue = FAIL;
++ size_t maxsize = 0;
++
++ maxsize = MAX(H5Tget_size(H5T_NATIVE_LLONG),H5Tget_size(H5T_NATIVE_HSIZE));
++ buf = calloc(1,maxsize);
++ memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSIZE));
++
++ status = H5Tconvert(H5T_NATIVE_HSIZE, H5T_NATIVE_LLONG, 1, buf, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHhsize2llong", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hsize_t\" to \"long long\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_LLONG));
++ free(buf);
++ return(outvalue);
++}
++
+ /*----------------------------------------------------------------------------|
+ | BEGIN_PROLOG |
+ | |
+@@ -877,6 +1009,8 @@
+ outvalue = HE5_EHint2hssize(invalue);
+ else if (sizeof(hid_t) == sizeof(long) )
+ outvalue = HE5_EHlong2hssize(invalue);
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHllong2hssize(invalue);
+
+ return(outvalue);
+ }
+@@ -1027,6 +1161,8 @@
+ outvalue = HE5_EHhssize2int(invalue);
+ else if (sizeof(hid_t) == sizeof(long) )
+ outvalue = HE5_EHhssize2long(invalue);
++ else if (sizeof(hid_t) == sizeof(long long))
++ outvalue = HE5_EHhssize2llong(invalue);
+
+ return(outvalue);
+ }
+@@ -1142,6 +1278,55 @@
+ return(outvalue);
+ }
+
++hssize_t
++HE5_EHllong2hssize(long long invalue)
++{
++
++ herr_t status = FAIL;
++ void *buf = NULL;
++ hssize_t outvalue = FAIL;
++ size_t maxsize = 0;
++
++ maxsize = MAX(sizeof(long long),H5Tget_size(H5T_NATIVE_HSSIZE));
++ buf = calloc(1,maxsize);
++ memmove(buf,&invalue,sizeof(long long));
++
++ status = H5Tconvert(H5T_NATIVE_LLONG, H5T_NATIVE_HSSIZE, 1, buf, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHllong2hssize", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"long long\" to \"hssize_t\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_HSSIZE));
++ free(buf);
++ return(outvalue);
++}
++
++long long
++HE5_EHhssize2llong(hssize_t invalue)
++{
++ herr_t status = FAIL;
++ void *buf = NULL;
++ long long outvalue = FAIL;
++ size_t maxsize = 0;
++
++ maxsize = MAX(H5Tget_size(H5T_NATIVE_LLONG),H5Tget_size(H5T_NATIVE_HSSIZE));
++ buf = calloc(1,maxsize);
++ memmove(buf,&invalue,H5Tget_size(H5T_NATIVE_HSSIZE));
++
++ status = H5Tconvert(H5T_NATIVE_HSSIZE, H5T_NATIVE_LLONG, 1, buf, NULL, H5P_DEFAULT);
++ if (status == FAIL)
++ {
++ H5Epush(__FILE__, "HE5_EHhssize2llong", __LINE__, H5E_FUNC, H5E_CANTINIT, "Cannot convert \"hssize_t\" to \"long long\" data type.");
++ return(status);
++ }
++
++ memmove(&outvalue,buf,H5Tget_size(H5T_NATIVE_LLONG));
++ free(buf);
++ return(outvalue);
++}
++
+ /*----------------------------------------------------------------------------|
+ | BEGIN_PROLOG |
+ | |
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/hdf-eos5.git/commitdiff/7824161a3ba1709e28c120c0193aa315ae02d46a
More information about the pld-cvs-commit
mailing list