summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r19236] Description:Quincey Koziol2010-08-121-131/+71
| | | | | | | | | | | | Clean up compiler warnings and misc. style issues with new internal tagged entry code. Tested on: FreeBSD/32 6.3 (duty) in debug mode Mac OS X/32 10.6.4 (amazon) in debug mode Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
* [svn-r19205] Bug 1917: post cleanup.Albert Cheng2010-08-091-3/+0
| | | | | | | | | | fseek64 was used to support large file access for the STDIO driver back in version 1.2.2 in year 2000. Some how it was not included in version 1.4.0. Now, fseeko64 is used to support large file. There is no more need for fseek64 which is not a standard call. Removed its presence from configure and related files. Tested: jam for configure only.
* [svn-r19195] Bug fix: ID 1917Albert Cheng2010-08-091-1/+1
| | | | | | Fixed a typo in the Windows definitions. Had __ftelli64, should be _ftelli64. Tested by Allen in Windows platform.
* [svn-r19188] Bug fix: ID 1917Albert Cheng2010-08-061-32/+47
| | | | | | | | | | | The STDIO only checked for fseeko and incorrectly assumed it can support file sizes larger than 32bits. Fixed it by making to use fseeko64 if supported, else use fseeko. To simplify the code, assume fseeko which is a POSIX function must be supported. Therefore, fseek is not used at all. (Note: the above applies to Unix-like system. The Windows platform has hardcoding using Windows functions which are NOT POSIX compliant.) Tested: h5committested. Also tested in BP (AIX) 32/64 and enable/disable-largefile.
* [svn-r19174] Bug fix for #1239 - The filter's public function CAN_APPLY ↵Raymond Lu2010-08-055-23/+22
| | | | | | | | | | | | should return htri_t not herr_t. To minimize the change of the library's behavior, in the function H5Z_prelude_callback of H5Z.c, if the return value of can_apply is FALSE and the filter is MANDATE, this function returns a FAILURE. If the return value is FALSE but the filter is OPTIONAL, this function returns a SUCCEED. During the IO, the filter will fail and return a size of zero. But the pipeline will skip this filter. Tested on jam, lnew, and amani. Tested on jam with szip.
* [svn-r19171] Bug fix: 1917.Albert Cheng2010-08-052-8/+11
| | | | | | | | The previous fix had the Windows code in H5private.h but they should have been in H5win32defs.h which holds all Windows-specific definitions. Moved the fix. Tested: BP (AIX) to confirm the fix is still valid. Windows tests will occur in daily tests tonight.
* [svn-r19167] Bug fix: 1917.Albert Cheng2010-08-032-24/+22
| | | | | | | | | | | | | | | | | | | Description: test/big incorrectly determined not able to write files larger than 2GB and skipped the SEC2 and STDIO driver tests. The reason was because it was using off_t while the SEC2 driver is using lseek64 which expects off64_t type. Solution: Created a new HDoff_t which is set to off_t or off64_t or other appropriate type depending on which of lseek or lseek64 is available. Changed SEC2 file driver and the big test to use this common definition. Tested: In BP (AIX), using --enable and --disable-largefile, for both 32 and 64 bits modes. Did not do h5committest because: 1. the error was exposed in the remote BP machine; 2. the change is trivial. Note that STDIO driver failed when --disable-largefile is used. That is an error in the STDIO driver code that is being fixed.
* [svn-r19160] Added the tests for fseeko64 and ftello64 which will be used by ↵Albert Cheng2010-07-302-2/+8
| | | | | | | | | the STDIO VFD if they are available. Tested: jam only since it was tests for two new functions that are not used by the code yet.
* [svn-r19156] Description:Quincey Koziol2010-07-306-164/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring revisions from Coverity branch back to trunk: r19044: Coverity #449 - Line 1560 called function H5O_chunk_protect for 2 pointers to allocate. But when there's failure on the second one, the first wasn't freed (H5O_chunk_unprotect). We fixed it by freeing the pointers when an error happens. r19045: Fixed coverity issue # 319. Free sec_node in done if it is not NULL. r19046: Add intended but missing assignments to initialize pointers to NULL (coverity issue fixes). r19049: Hdf5_1_8_coverity branch was recreated from hdf5_1_8 branch in revision 18839 without fix for Coverity issue #84 having been propagated to the hdf5_1_8 branch. This revision adds the fix again. r19060: added parentheses to see if they will keep subversion from getting confused r19061: Fix coverity item 139. Fixed incorrect condition for freeing buffer on error. Fix coverity items 20 and 21. Removed unused NTESTS facility from dtypes.c. Cleanup in H5Shyper.c. r19062: Fix coverity item 450. Check to see if chk_proxy has been allocated before attempting to free it. Fix coverity item 454. Check to see if allocation of buf failed in H5D_fill_refill_vl. Fix coverity items 455-457. Initilize hid_t's to -1, check their value before attempting to close them, and check if the close failed. r19063: New fix to address coverity issue #84. Check that pointers in H5Z_xform_find_type are not NULL before passing them to H5T_cmp. Tested on: Mac OS X/32 10.6.4 (amazon) w/debug & production (Too minor to require h5committest)
* [svn-r19153] Description:Quincey Koziol2010-07-297-300/+244
| | | | | | | | | | | | | | | | | | | | | | | | Bring changes on Coverity branch back to trunk: r19040: Fixed coverity #440 - NULL check after dereference. We moved the NULL check up into the IF block and changed it to assertion. r19041: Maintenance: Addressed Coverity issues 441 and 449 by initializing proper variables r19042: In function H5O_chunk_protect (H5Ochunk.c): - Initialize H5O_chunk_proxy_t pointers chk_proxy and ret_value. - Free chk_proxy on error. r19043: Addressed coverity issues 442 - 448 by initializing pointers to NULL. Tested on: Mac OS X/32 10.6.4 (amazon) w/debug & production (Too minor to require h5committest)
* [svn-r19150] Correction from the previous checkin for H5Oattribute.c. ↵Raymond Lu2010-07-291-3/+8
| | | | | | | | | | Because the attribute structure i is shared now. The only situation that requires copying the data is when the metadata cache evicts and reloads this attribute. The attribute structure will be different in that situation. Tested on jam.
* [svn-r19146] Purpose: Fix bug in direct IO driverNeil Fortner2010-07-281-80/+153
| | | | | | | | | | | Description: In certain circumstances, the direct I/O driver did not perform correctly when data was unaligned. The driver has been patched to fix this. Also added some potential performance improvements for the unaligned case, and strengthened the test for whether the data needs to be aligned. Tested: cobalt
* [svn-r19140] In line 861, there's no need to allocate data buffer or copy ↵Raymond Lu2010-07-281-10/+3
| | | | | | | | the data because the attribute structure is shared now. Only do an assertion check, instead. Tested the same change for 1.8.5 on jam - simple change.
* [svn-r19135] Added new file to windows project files.Allen Byrne2010-07-281-0/+1
| | | | Added new file to src/CMakeLists.txt
* [svn-r19133] Description:Quincey Koziol2010-07-2810-152/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct traversal of user-defined links (including external links) to retain path information of object, allowing H5Iget_name() queries to work quickly (without searching entire destination file). This required some refactoring and addition of a mechanism to detect if a "fast" query was performed (for the tests). Minor code cleanups, etc. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, w/threadsafe, in production mode Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.4 (amazon) in debug mode Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
* [svn-r19124] Description:Quincey Koziol2010-07-221-5/+20
| | | | | | | | | | | | | | | | | | Add some error checking to the process of creating superblock extension. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, w/threadsafe, in production mode Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
* [svn-r19118] Description:Quincey Koziol2010-07-211-1/+1
| | | | | | | | Fix return value from FAIL to NULL. Tested on: Eyeballed only (too trivial to test)
* [svn-r19114] Description:Quincey Koziol2010-07-2028-131/+40
| | | | | | | | | Rename H5AC_set() to H5AC_insert_entry() Get rid of H5C_set_skip_flags() & related flags Tested on: Mac OS X/32 10.6.4 (amazon) w/debug, production & parallel (too simple to require h5committest)
* [svn-r19099] Description:Quincey Koziol2010-07-192-3/+3
| | | | | | | | | | Fix const pointer issues for projection construction routine and also bump time before alarm kicks in to terminate a test from 20 minutes to 30 minutes, to give the PGI compiler tests w/debugging enabled a chance to finish. Tested on: Mac OS X/32 10.6.4 (amazon) w/debug Linux/32 2.6.18 (jam) w/PGI & debug
* [svn-r19096] Description:Quincey Koziol2010-07-199-1054/+2725
| | | | | | | | | | | | | | | | | | | | | Bring "round robin" metadata write strategy code from 'round_robin' branch to the trunk. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.3 (amazon) in debug mode Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r19092] Description:Quincey Koziol2010-07-1911-923/+2058
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring "shape same" changes from LBL branch to trunk. These changes allow shapes that are the same, but projected into dataspaces with different ranks to be detected correctly, and also contains code to project a dataspace into greater/lesser number of dimensions, so the I/O can proceed in a faster way. These changes also contain several bug fixes and _lots_ of code cleanups to the MPI datatype creation code. Many other misc. code cleanup are included as well... Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.3 (amazon) in debug mode Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r19086] Snapshot version 1.9 release 74HDF Tester2010-07-182-3/+3
|
* [svn-r19076] Purpose: Fix bug 1951Neil Fortner2010-07-161-0/+10
| | | | | | | | | | | | Description: A bug introduced in 1.8.5 causes local heap data blocks to be mis-aligned when sizeof_offsets + 2*sizeof_lengths is not a multiple of 8. In this case, the address of the data block as stored in the heap prefix is aligned but the actual data block is not. This causes files created with these sizes to be corrupted, and prevents uncorrupted files with these sizes to be unreadable. Modified local heap code to account for alignment. Tested: jam, amani, linew (h5committest)
* [svn-r19064] Snapshot version 1.9 release 73HDF Tester2010-07-112-3/+3
|
* [svn-r19059] Brought changes from hdf5_1_8 to add version information for ↵Larry Knox2010-07-092-2/+4
| | | | | | fortran and c++ compilers in libhdf5.settings file and configure output (r18836), to install examples as part of make install (r18680), and to provide scripts to compile and run the examples after they are installed (r18817). Tested with new/h5committest on amani, heiwa, and jam.
* [svn-r19047] Snapshot version 1.9 release 72HDF Tester2010-07-042-3/+3
|
* [svn-r19032] Correct use of variable in windows dll builds by changing ↵Allen Byrne2010-06-281-1/+1
| | | | | | qualifier from extern to H5_DLLVAR. Turned off default packed bits setting as feature is not available for trunk
* [svn-r19031] Snapshot version 1.9 release 71HDF Tester2010-06-282-3/+3
|
* [svn-r19022] Snapshot version 1.9 release 70HDF Tester2010-06-202-3/+3
|
* [svn-r19017] Purpose:Mike McGreevy2010-06-171-0/+2
| | | | | | | | | | | | | | | | Minor code cleanup Description: Add missing declaration of H5AC_ignore_tags() to H5ACprivate.h Clean up some warnings in cache_tagging.c test file Tested: jam, gandalf
* [svn-r19015] Description:Quincey Koziol2010-06-172-16/+15
| | | | | | | | | | Remove unused 'ATYPE' parameter from H5T_CONV() macro Remove unused 'result' variable from H5AC_set() Tested on: Mac OS X/32 10.6.4 (amazon) w/debug & production (too minor to require h5committest)
* [svn-r19010] Purpose:Mike McGreevy2010-06-163-9/+5
| | | | | | | | | | | | | | Clean up code. Description: Reorganize to remove mixed declarations and code (which should satisfy windows compile). Tested: jam, blue print, gandalf Windows 7 w/ VS Express 2008 (on VMware)
* [svn-r19008] Purpose:Mike McGreevy2010-06-161-2/+2
| | | | | | | | | | | | | | | | | Fix some tagging issues. Description: - changed H5Gcreate to H5Gcreate2 in the cache_tagging.c test file to work properly with 1.6 API default mapping turned on. - Added FUNC_ENTER/LEAVE_*TAG macros to the H5G_stab_valid function. Tested: gandalf, jam, amani (w/ production mode, 1.6 API mapping)
* [svn-r19006] Purpose: Improve performance of the the chunk cacheNeil Fortner2010-06-153-225/+183
| | | | | | | | | | Description: Previously, the chunk cache would, when looking for a chunk, alwaylook for the chunk in the b-tree before checking the cache. Reworked the functions that look up chunks to always check the cache first and avoid the b-tree lookup if the chunk is in cache. Tested: jam, linew, amani (h5committest)
* [svn-r19005] Purpose:Mike McGreevy2010-06-1543-173/+971
| | | | | | | | | | | | | | | | | | | | | | | Commit metadata tagging framework. Description: This check-in contains a new framework whose goal is to apply a tag value to each new entry in the metadata cache as it is created. This tag value is such that it relates each piece of metadata to the HDF5 object that it belongs to (dataset, group, et cetera). This changeset includes the framework that applies the tags as well as a suite of tests to verify correct tag application, though does not yet make use of the tag values to flush/evict individual objects. Please refer to the "flush/evict individual objects" RFC for further discussion of these changes. Tested: jam, amani, linew (h5committest) liberty, abe, blue print
* [svn-r18996] Updated config files and install commands per external ↵Allen Byrne2010-06-141-7/+1
| | | | | | developers recommendations. Tested: local linux
* [svn-r18965] Windows use of VC_EXTRALEAN no longer did anything. It has been ↵Allen Byrne2010-06-031-1/+5
| | | | | | | | replaced by WIN32_LEAN_AND_MEAN macro. This was the cause of a define conflict causing the use of grp1 and grp2 to be replaced with constants in the h5dumpgentest.c file. This also affected the use of the #include <winsock.h> needed by gethostname. The new include: winsock2.h has been added to h5private.h and either removed or updated in the other files. Tested: Windows
* [svn-r18922] Fix for failures for test/mf.c on windows:Vailin Choi2010-05-282-1/+8
| | | | | 1. H5FD_stdio_truncate() windows code: need to do a rewind 2. Make sure fsinfo.fs_addr is initialized before creating the message.
* [svn-r18917] Description:Quincey Koziol2010-05-2726-398/+264
| | | | | | | | | | | | | | | | | | | | | | | | Bring r18911 (plus some adaptions to match the code on the trunk) from the metadata journaling "merging" branch to the trunk: More general changes to align trunk with eventual changes from metadata journaling branch. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.3 (amazon) in debug mode Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r18908] Corrected name of cstub libraries (needed to be lowercase)Allen Byrne2010-05-261-5/+5
|
* [svn-r18894] Purpose: Improve allocation performance of filtered datasets ↵Neil Fortner2010-05-257-70/+92
| | | | | | | | | | | | | with non-default VL fill values. Description: Previously, H5D_chunk_allocate would, if a dataset were filtered and had a non-default VL fill value, allocate a new buffer for every chunk. Changed H5D_chunk_allocate to reuse the existing buffer if possible. Also other miscellaneous cleanup. Tested: jam, linew, amani (h5committest)
* [svn-r18890] Update CMake fortran configure/build with changes from community.Allen Byrne2010-05-251-0/+2
| | | | | | | | - Add an install rule to copy compiled fortran module files - Only build the xlatefile utility if testing and tools are enabled - Don't do MPI HAVE_XXX checks until MPI_FOUND is true - Install needs H5version.h & H5overflow.h to be copied - Add debug information flags to debug compile and link lines for win32 Intel compiler
* [svn-r18871] Description:Quincey Koziol2010-05-211-8/+8
| | | | | | | | | Clean up compiler warnings (on Windows, I hope) by marking some routines as taking 'volatile' parameters. Tested on: Mac OS X/32 10.6.3 (amazon) w/debug (too minor for h5committest)
* [svn-r18868] Purpose: Fix bug in dataset shrinking algorithmNeil Fortner2010-05-202-214/+292
| | | | | | | | | | | | | | | | Description: Previously, it was possible for a chunk to be flushed due to chunk operations in the callback from H5B_iterate in H5D_chunk_prune_by_extent. Because flushing the chunk can force it to be reallocated if it is filtered, this can change the contents of the chunk b-tree in the middle of H5B_iterate. Because H5B_iterate uses a locally cached copy of the b-tree, this causes subsequent operations to be passed incorrect data. Rewrote H5D_chunk_prune_by_extent to avoid H5B_iterate entirely. Also fixed a bug in the dataset expand algorithm that could cause extra chunks to be created. Tested: jam, linew, smirom (h5committest)
* [svn-r18864] Description:Quincey Koziol2010-05-2016-1143/+125
| | | | | | | | | | | | | | | | | | | | General cleanups to align metadata journaling branch and trunk Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.3 (amazon) in debug mode Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r18856] Added CPack commands for installtion programAllen Byrne2010-05-191-3/+5
| | | | Tested: local linux and Windows
* [svn-r18837] Description:Quincey Koziol2010-05-1814-255/+213
| | | | | | | | | | | | | | | | | | | | | | Remove the size parameter from H5[A]C_unprotect() and the H5[A]C__SIZE_CHANGED_FLAG, switching all clients & tests over to using H5[A]C_resize_entry appropriately. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.6.3 (amazon) in debug mode Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r18834] Description:Quincey Koziol2010-05-171-1/+2
| | | | | | | | | Correct function enter macro and add 'done' label, for routine that is only invoked when configured with --enable-debug=all. Tested on: Mac OS X/32 10.6.3 (amazon) w/debug & production (too minor to require h5committest)
* [svn-r18832] Description:Quincey Koziol2010-05-171-1/+1
| | | | | | | | Correct error where variable didn't always get initialized correctly. Tested on: Mac OS X/32 10.6.3 (amazon) w/debug & prod Windows w/debug & prod
* [svn-r18827] Description:Quincey Koziol2010-05-171-1/+1
| | | | | | | | Correct error where variable didn't always get initialized correctly. Tested on: Mac OS X/32 10.6.3 (amazon) w/debug & prod Windows w/debug & prod