This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, next has been updated via d5419e8857b2bc61d3be17fe53f171550fee426b (commit) via 94665734b42bb11f98bf18205c4df7ad13c6f2a4 (commit) via c3af3011406a0b5a67c8dbf95b53ef94775d3014 (commit) via c1a00bb2a20b166a329dbd1158400fb27081c66c (commit) via 34dcdce23b1851f910aef53c4f17f3491f95183c (commit) via 7b98d4d5018461db83c3feef696b4470674844de (commit) via ff6fdd70a2b07bee11b708f5fd13350c5740de0e (commit) via b6ac02a13723c372501d21c56c9d73f506cafc3b (commit) via 40e4bafd9122e9531b0b6480b14f3d73d1d14e58 (commit) via ca9bf637fdadca1208fce921e836a58b40237c7b (commit) via e7823af35b340fed70ed5f423f7d04c7d5c62b38 (commit) via 9ee8609b86639606217d2f78c52f28e3fe08c782 (commit) via 569810c52a72c83aced5c5b8adf3eec40f371d90 (commit) via 6e213fbae7f16558e572da39704927f107c01f80 (commit) via cc453ca9fc04f370c3af28d4366c49d5f07bec32 (commit) via 448629199c4b50d5dd22be946b8c0d963479a3f3 (commit) via 1e47fa70c2eeb3d2f3805af28a00476c7284ef24 (commit) via 7599dfb05bf942eaad227462f1a58a78aac9e67d (commit) via c175ae14ed7122dce26e89a4fc464eba7208bb22 (commit) via ea529e1c3312459b6722c8a175d7f03ad0251a0a (commit) via 2f8d049cc5a33933165fdec19c1a8480cd71e984 (commit) via 6ea9400bfcc7497ea8f9d2fd8cc3b77936c71d0b (commit) via 18462171eb83f9b6f867812629f7e89998bc6e1a (commit) via c976a3146724bd0d09bcad2bd83810c300bf8ad5 (commit) via 9805209384a5f40210b5f57c1f7a67e83f07fb99 (commit) via 67b1d6ed0e5a318f6913f96f9d427df5799317e9 (commit) via 22866cc9df76230750b8ce5504d948ed78a727a2 (commit) via ab78f2924a353d4e0e45deea73201e6da10a7664 (commit) via 41b3fa2cd994a7ef68290a07dcde5564e4640847 (commit) via 9f288d8c4d6c2233a8fdf1a7bcd8f63f96157b73 (commit) via 533c57ac5562844636dd83b3b3f80cc007ccf91c (commit) via d3b7a09dbdceec170479760cacdc5898090c90de (commit) via 16702cb5bf170d0d32cfae690176d8da23b0ad64 (commit) via eed69e81f7830269012517691a276c4dac57d6cf (commit) via 0f0d381ce87519fb5451ff93c0f8c5d0d7d57748 (commit) via cf3aaa01b620da6f2bc25df23ad2c129d650ea43 (commit) via a0002111f4f41d8d292400257c2ccf2707659bb4 (commit) via 16c2b11d02f5c76ff2b5735b8387771a1c5094d4 (commit) via d905533519ffe68ec05d07d09f1f70d6d1b491a6 (commit) via 4fbb34a163a6b4aba4935e1fbd2d31b11c30198a (commit) via bde4740691276d71ef50653350a67823229bacc6 (commit) via f78fe4715f39df3aef59d13a1d2e31d62f4da9cc (commit) via 7f77562ed4969cb793fb38f0a174c89df41ca6e7 (commit) via 74ff9da52c9acee25e0aeae417e44d483f645e91 (commit) via 994e9549e9bf0b92c6a046685c9622e7f279b574 (commit) via dc5540a0ac7a0fb9f923abde540546628f6fb082 (commit) via d912f56b1d87560c0712310ca1978217ac9757c8 (commit) via addebaf68180c001973a9f43b157d202a309b394 (commit) via 96a0e78c553dabb933d9263bbc78ad05731545a3 (commit) via 06db20e7ea4d18bc9b7ae347625bfd284509ed85 (commit) via 6f07a40cc29b4b9ebc69a3badc31de7497ae6253 (commit) via 257b08b35ceea41bad5a7f1c626496cf111e657a (commit) via 27a7923236030fed0272cc9072f0cde62496e91d (commit) via bfa24c0b7f035a84dd30e161673e97df244a926f (commit) via 7f80bdf3a851c1b37e5826327ab5415ac5abe7a4 (commit) via f74f2facaa16b35618c220f5652dbdb295c527e1 (commit) via eeb098456bc51314cd6520d05f82f92353ba4a02 (commit) via 379d527e891e1ad246b0bb796e6fc938618758c4 (commit) via 637a332968967672395f1d41d809d0eba8d8dbd1 (commit) via 24847c049d1a3ead549f0ccb5c7da5fbdedaa794 (commit) via 70217ce609bd28e1982ec9caae2b4d91fca4074d (commit) via e2023d4f1767d2358c97bc4aab4b21086dba1421 (commit) via 72aa3ae9e181a90718b42da85561638cf7f3d480 (commit) via 5865787680be13b47b777e8b0b64646755be41e0 (commit) via c90cbf70a08d8d7124af226086e0525bcf4a9e50 (commit) via 70f5c00a0713856daae879ebe3652d44c5d783f2 (commit) via b72a57524cd02abc873c15a451c40e9cb2dd6ee5 (commit) via c0bf89cf3c36c7f0504e78fe6b337e50e7dc17d4 (commit) via 9c0c41b80fa0f7f7316115fd2228eec57dde5814 (commit) via 2596adf51485f1d996e1e084e6f63dbe68b582a3 (commit) via 545a65fc7064c13deda58fb86b1863365c318500 (commit) via 84c37a0fa947f1a81eef5aff225ecdf73ad3387c (commit) via b95ccd3db6eeb7358a877541747e06354429acdd (commit) via 9a46e749c6da2d4a4aef7337ab8247b0cd0c2be9 (commit) via 8e826373dcbe52eca0036deab60b4fb83917e237 (commit) via ae02d6ca65ef5f484258c8ce4d477a06151713b6 (commit) via 716b3335f9e3003dcb2d79404c91b21551c2077b (commit) via 01ec93bbfffe740b1a12213ac201c89dd9f2ef71 (commit) via 7c458a44a785ab664f2f92ed14845fa8ece6e0ec (commit) via bbdc120cdca0ceb37cb20baa6e85796733083221 (commit) via c3c110cb114012c22796eb96f17facb3c1f021b8 (commit) via fdae7a0f9b597289579463c5464877c307d9c318 (commit) via e98c15a9d2ee9d1dd21e3d6c3d9829581d8328c0 (commit) via 1f4a5f79557186df79c2091dcc73b6e783c95f74 (commit) via 6c4ecdb73aa869e4733b9b323d9dc4c625a63e58 (commit) via 6be7adab1a16a62e871bc4ed4f3c926645b2ecd0 (commit) via f7e4949e65f29f043115df1a171e0e49a4830ef6 (commit) via 984686b0763495c6dd97d2094f292fc7e01937d0 (commit) via e678e44fe99ada59b80097f97e22b0546bcdadc8 (commit) via 27480d82bd93a881ae683a3c314c11042a68ce29 (commit) via fbcf3e60c699c5f450fd6a4e7a5c78980b3512c5 (commit) via 4a6bae575eb67aa5a484d70d765f6283ea76c183 (commit) via b63e52ee345ae1d69435deded1391167d311bff3 (commit) via 9cb360c18f3948c14bb902351a0ace971479c336 (commit) via 99300f9db4c368e7519c52af93c93d702790b2b4 (commit) via 9ea61da809269644ac6332a1b0f53be68a7e26d7 (commit) via 91b127d61530bcf0e8c5399b3d4117ef2389ca12 (commit) via b122176ee59494dd957f0f5ff41d4b55a1477e13 (commit) via 22193a06524fa8dc43dfd106cf7eab46745b86f4 (commit) via 6582992616b1d95844d41ba93aeb0bb6c7dd6bd7 (commit) via 5911355121d94a192c9336b036cebb3734a78db2 (commit) via d48d55d846c3e711c2632a66db485f9079a768cf (commit) via 3c2b4804a2c3bca57febe2aea8a56b586c44f035 (commit) via a4767f0cbe844cd7f61f43557f0f90eaa2969192 (commit) via 7915f861ea56bbb0f5a0c22d93a7b4ff6b3c76e2 (commit) via 741bdb906e946d22194ab5676c9ea06e3debb2a1 (commit) via ac8b5f2a26edfa6249e134572a151dbd36c8dce6 (commit) via 89b0cbaa9cf4b8d6e93258f4dc2fd5084f3287b3 (commit) via f4e4b30454d6d961d0401717a11c6da06a889a7b (commit) via beb496bad99c91f639ea0aefaed7d4d30ec1368c (commit) via 3f069804f73c39e3bf98a998bbccd169f6c948f7 (commit) via 9836cf55fa6a5177f95fed5f10c01af0254303ce (commit) via a841f6b5448b4190230047dc7307f80ff77d01f5 (commit) via 3ce9d6ab16d064b0f83508e2f0b2e476d64b15e1 (commit) via d7ec85bbba32e9747307bd1cd76a061a39e7c731 (commit) via a001621520f769f835ce963d1e7ef8c1af74ad66 (commit) via 33afa2d1d4f6df342214dd9d9e4aab4433da3d7d (commit) via 29e5037571610ee49830dd64a43a47a8ccbadb87 (commit) via 988ae5930a9db1ceb88e46a84a116e67b0108307 (commit) via 5a4502fc6bc53e6503169da3028f456b64811a0b (commit) via ccb6eb85729ad0657b5c852cb2a6ddb519d60898 (commit) via f3b6be23045a924b8d8034a9a490b4fe5928684e (commit) via d4ad3409a51f94df403e0ae27e25baab2b0a1bf4 (commit) via 2bbecec83bc1d8ca1b45f98214d2dbbe13950e25 (commit) via db250be8b7363b24708ebc9476aa26fe1754d3c0 (commit) via 39730f7e46405a44abee01532547fed530c6f906 (commit) via 2c92ee7ef4198ba7b7ab67cf079c2262e70414d2 (commit) via d35f27a2c613e5fa66a6d854b662b435f0e4f402 (commit) via db2587a9a5ade3e9ad3f4e3355db2d4639e100b0 (commit) via 0f628d448a0055cfff6ea759790c60520bbff6b8 (commit) via 42e8e9ac8bf029fb94c4b0d79dba115ba7450958 (commit) via 8d3786410c269d5e9838bacb9dd0a4b0524824ef (commit) via be3696f3617fb05bf55347a724e422814b1be19b (commit) via e3f0ac3bb039d95af55176828539ebfd2697f932 (commit) via ffee6ee63f437bab54151da5f31d54385c3247af (commit) via 22e7c58bf12540c95168f079f6b39375c96f6e94 (commit) via aa698a07e99416663b9b829926efefde1c4e0abb (commit) via 34ba6c32491c9b18f78f49855d76c5e60555dd6e (commit) via 0c8009e48f6bcb254ba06a85e9226d1a0459a36e (commit) via d70c5f1ce3e98c3a7409312ccfdc3ce0087a2d49 (commit) via 47932d20fdf72f73e5de4961569fda760200edc6 (commit) via 585af294de9194f2e5e0bd53b4d5e12eba8ba1ba (commit) via 9fd7bf5ec2096b65248d9be983130396de1c32eb (commit) via 539b6fb552d171d202880c3f5ee6e7ca509db98a (commit) via faa8498d122fcce6321140d9f1c062ebc2bc3d79 (commit) via 94bcafaaccc3aba545cc112da8ff9fd828a25a98 (commit) via 84d5cf917d301d91246f013c3e51da35fa26b903 (commit) via 0689cde60fa90e5ddd24d07fec08ea95251d6db5 (commit) via a8ce5f13b5cbf1583fef04d687cef94d18357520 (commit) via e93535eed4262b76597c193a169fbc94fd91bb25 (commit) via b4b6cdaa390cef0e5a42e6c8fc0f605d7879bee5 (commit) via 96ad2312bfc2d1d0d1d23e61113da55d31b7fbc1 (commit) via 55f928652f0b6accc8ba82fc68eeaebb2fd1426d (commit) via 3c5a55ba323f36a255615983afdb21b17f8b1597 (commit) via 3dc3b1fbfb71b0c81e6ce047f48f51d4e13e81dc (commit) via 4cbcb2d11673fdde483753db67343018aa09e3ad (commit) via 14156f2feae2aa5a2835cf6ff0a3b4a2d7dae4df (commit) via 5399f2f78624599910c574e3c7247378118a8af4 (commit) via cd2dfa966f8c08c99feda2d0622ecc27c0361245 (commit) via f831c691a20ca2d0ffbbf707f43eee7600bca6b6 (commit) via e1883c9e050a5cc3ad838c02f943113f3b1e2383 (commit) via 627c9f51e2de51c3bb20f59161ac8ea1b6c2703f (commit) via edf998617f1744a9a92ed0ebb4905149f5731ed5 (commit) via bece10957f7d85107a71662e308dba8fc1d6c578 (commit) via 08d0c1658cd13bb174cc9c01f132bc98d004efa7 (commit) via 60feb6af342d581f798308563b975974986d9a3c (commit) via 503bc79ee960ea4caa72d639cbc5a42c7524a790 (commit) via cfeb9fa2519ede1f34e3a814079a62095f23e64e (commit) via bd9ab1c7a6ba3ecf4532e36b7d431a6c2df2c72b (commit) via 4d2c80472c0623b406f25c07fcca42849f41d847 (commit) via 3d10b69994b9a4629ae5858c4f13b8fc73137fc3 (commit) via 96874082fe02560068588af59817fa2152982638 (commit) via ad317cdf97c0f19d27bca380d06617937a0e548d (commit) via 7f1ea3704569c50a48f1029c0bd8f3f0bf84f43e (commit) via c99bed8f3a710d25d824cdcb1d109f974650906d (commit) via cd46d6263073efb18c69a621d9cc6c50da76359d (commit) via 3768a6331899a4b17dcd89ec82b0295fb1ef667a (commit) via 6a7c5313178504d4c0d211de231c52b795e26c5f (commit) via c9528e9576a391ee865f7efb3df5fb9a69602c40 (commit) via 77ff03881d844a9d6a4bc773086bd8aaecace541 (commit) via 53b114eac3815099760186f90b64a201d7fac69b (commit) via 1bb6291e4e9050d476fefb02f11024898847e2b7 (commit) via 5e064cd9fa626b8fe7cc6d695b5bbf5065e0e54e (commit) via e3cef11dd0161d49dddc09d8e6263722825953f7 (commit) via 520c170d758f2d37554631bf1467ec50e027cd3e (commit) via f73cd6de167b16bae0256fee65c77d11ee18699e (commit) via 1e2435a49ca5380143546f33aebc32e0b935bc54 (commit) via 2237981c5e20dd4efb2e181ad59785e6f9f099bb (commit) via 6c0942658b564835e200def502c053f63d55c400 (commit) via 4b06ab1aadb653958dd49b62899929e2720b5c9f (commit) via ea2c187b7ba3ca3b9e21624b139c871c2bd8f11c (commit) via fdcaa6d73a4c577ea92d69d95d851c1b2de86c61 (commit) via fac80a8a4b26b863a85266cd62fb07a5e2cd84e4 (commit) via 13171a0c3f83e905a99250fdfca925231dcaa7e2 (commit) via 4b5776e8e8bbec6340392af74b7ee7a18c191b52 (commit) via 76b9155ed01abcd3287b659d35b9217f77b81cc2 (commit) via d59a6b8a1b049ab3e978accbd420eb25993a5997 (commit) via 8609d2eba06d8e964daff5cb8ecb81bb802ea585 (commit) via cd793bfd9667e25db7cb1dbd9c276374e0ee879b (commit) via 09188114d855456920113c8d6889c5c1e2451d75 (commit) via 8296d0e9a91e2a435ec780052e22095563dfbf12 (commit) via d831814b8d0a1d7817f014aae91031dafd1ceeb6 (commit) via ee5d0385064f4bacb511cfd497abcd014930ffaa (commit) via 5d44e562a5c0c1252dbfd11b49c87084767da2e2 (commit) via 634b380b63de53c65b92c214d91aaf03785d69db (commit) via b1749baf2590f402ba3cbd23385b9056c99f3839 (commit) via a37fda78cb7c7d4804c0d9ae1c67801977ce1de5 (commit) via 0fe531c4ec9d49f562f91056eab29f81b98f63f6 (commit) via 8bd76909bea5d4d3a7917d00269a493628c96d5e (commit) via 4c23114ed39db175beaa317f63b782fad02b2c6f (commit) via 88fd84e7e613ce93fc078320b312d2aa8c388a8c (commit) via 2503425036ca2ee48003ef20fcb87003e5d1e956 (commit) from 49ebafae0edebbc750742d8874ad0a7588286dea (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- -----------------------------------------------------------------------
Summary of changes: .shippable.yml | 29 +- .travis.yml | 235 ++++-- Makefile.inc | 18 + configure.ac | 179 +++-- doc/implementers-guide/Makefile.am | 6 +- doc/implementers-guide/implementers-guide.adoc | 2 +- doc/platform-api-guide/Makefile.am | 3 +- doc/process-guide/release-guide.adoc | 2 +- doc/users-guide/Makefile.am | 6 + example/Makefile.inc | 24 +- example/generator/Makefile.am | 5 + example/generator/generator_run.sh | 17 + example/generator/odp_generator.c | 332 ++++++--- example/ipfragreass/Makefile.am | 2 + example/ipfragreass/odp_ipfragreass.c | 4 +- example/ipsec/Makefile.am | 1 + example/ipsec/odp_ipsec_stream.c | 6 +- example/ipsec_api/.gitignore | 2 +- example/ipsec_api/Makefile.am | 30 +- ...sec_run_ah_in.sh => odp_ipsec_api_run_ah_in.sh} | 2 +- ...c_run_ah_out.sh => odp_ipsec_api_run_ah_out.sh} | 2 +- ...ah_tun_in.sh => odp_ipsec_api_run_ah_tun_in.sh} | 2 +- ..._tun_out.sh => odp_ipsec_api_run_ah_tun_out.sh} | 2 +- ...c_run_esp_in.sh => odp_ipsec_api_run_esp_in.sh} | 2 +- ...run_esp_out.sh => odp_ipsec_api_run_esp_out.sh} | 2 +- ...p_tun_in.sh => odp_ipsec_api_run_esp_tun_in.sh} | 2 +- ...tun_out.sh => odp_ipsec_api_run_esp_tun_out.sh} | 2 +- ...ipsec_run_live.sh => odp_ipsec_api_run_live.sh} | 2 +- ...c_run_router.sh => odp_ipsec_api_run_router.sh} | 2 +- ...c_run_simple.sh => odp_ipsec_api_run_simple.sh} | 2 +- example/l2fwd_simple/l2fwd_simple_run.sh | 13 + example/l2fwd_simple/odp_l2fwd_simple.c | 22 +- example/l3fwd/odp_l3fwd_db.h | 4 +- example/switch/odp_switch.c | 4 +- example/traffic_mgmt/odp_traffic_mgmt.c | 1 + helper/Makefile.am | 15 +- helper/cuckootable.c | 8 +- helper/include/odp/helper/ip.h | 4 +- helper/include/odp/helper/strong_types.h | 4 +- helper/iplookuptable.c | 4 +- helper/m4/configure.m4 | 11 +- helper/test/Makefile.am | 24 +- helper/test/linux/process.c | 2 + helper/test/linux/pthread.c | 2 + helper/threads.c | 1 + include/Makefile.am | 329 ++++++++- include/README | 79 ++ .../api => include/odp/api/abi-default}/align.h | 14 +- include/odp/api/abi-default/atomic.h | 70 ++ .../odp/api/abi-default/barrier.h | 4 +- .../default/api/abi => api/abi-default}/buffer.h | 2 +- .../odp/api/abi-default/byteorder.h | 41 +- .../api/abi => api/abi-default}/classification.h | 0 .../odp/api/abi-default/cpu.h | 10 +- .../odp/api/abi-default/cpumask.h | 9 +- .../default/api/abi => api/abi-default}/crypto.h | 0 include/odp/api/abi-default/debug.h | 35 + .../default/api/abi => api/abi-default}/event.h | 2 +- .../odp/api/abi-default/init.h | 6 +- .../odp/api/abi-default/ipsec.h | 12 +- .../default/api/abi => api/abi-default}/packet.h | 2 +- .../odp/api/abi-default/packet_flags.h | 11 +- .../odp/api/abi-default/packet_io.h | 19 +- .../default/api/abi => api/abi-default}/pool.h | 0 .../default/api/abi => api/abi-default}/queue.h | 0 .../odp/api/abi-default/rwlock.h | 11 +- .../odp/api/abi-default/rwlock_recursive.h | 10 +- .../odp/api/abi-default/schedule.h | 23 +- .../odp/api/abi-default}/schedule_types.h | 12 +- .../api/abi => api/abi-default}/shared_memory.h | 0 .../odp/api/abi-default/spinlock.h | 13 +- .../odp/api/abi-default/spinlock_recursive.h | 10 +- .../odp/api/abi-default/std_clib.h | 10 +- .../odp/api/abi-default}/std_types.h | 9 +- .../cpu.h => include/odp/api/abi-default/sync.h | 10 +- .../odp/api/abi-default/thread.h | 4 +- .../odp/api/abi-default/thrmask.h | 4 +- .../odp/api/abi-default/ticketlock.h | 11 +- .../odp/api/abi-default/time.h | 4 +- include/odp/api/abi-default/timer.h | 54 ++ .../odp/api/abi-default/traffic_mngr.h | 11 +- .../odp/api/abi-default/version.h | 4 +- .../odp/api/errno.h => include/odp/api/align.h | 11 +- .../odp/api/thread.h => include/odp/api/atomic.h | 10 +- .../include => include}/odp/api/barrier.h | 8 +- .../include => include}/odp/api/buffer.h | 18 +- .../api/compiler.h => include/odp/api/byteorder.h | 16 +- .../include => include}/odp/api/chksum.h | 12 +- include/odp/api/classification.h | 33 + .../include => include}/odp/api/cpu.h | 8 +- .../include => include}/odp/api/cpumask.h | 6 +- .../include => include}/odp/api/crypto.h | 12 +- .../odp/api/thread.h => include/odp/api/debug.h | 10 +- .../include => include}/odp/api/deprecated.h | 4 +- .../include => include}/odp/api/errno.h | 5 +- .../include => include}/odp/api/event.h | 14 +- .../include => include}/odp/api/feature.h | 12 +- .../include => include}/odp/api/hash.h | 12 +- .../include => include}/odp/api/hints.h | 12 +- .../include => include}/odp/api/init.h | 14 +- .../include => include}/odp/api/ipsec.h | 14 +- include/odp/api/packet.h | 33 + .../include => include}/odp/api/packet_flags.h | 9 +- .../include => include}/odp/api/packet_io.h | 14 +- .../include => include}/odp/api/packet_io_stats.h | 4 +- .../include => include}/odp/api/pool.h | 17 +- .../api/system_info.h => include/odp/api/queue.h | 13 +- .../include => include}/odp/api/random.h | 12 +- .../include => include}/odp/api/rwlock.h | 6 +- .../include => include}/odp/api/rwlock_recursive.h | 6 +- .../include => include}/odp/api/schedule.h | 15 +- .../include => include}/odp/api/schedule_types.h | 6 +- .../include => include}/odp/api/shared_memory.h | 14 +- include/odp/api/spec/align.h | 4 +- include/odp/api/spec/atomic.h | 4 +- include/odp/api/spec/barrier.h | 4 +- include/odp/api/spec/buffer.h | 4 +- include/odp/api/spec/byteorder.h | 4 +- include/odp/api/spec/chksum.h | 4 +- include/odp/api/spec/classification.h | 15 +- include/odp/api/spec/compiler.h | 53 -- include/odp/api/spec/cpu.h | 7 +- include/odp/api/spec/cpumask.h | 4 +- include/odp/api/spec/crypto.h | 4 +- include/odp/api/spec/debug.h | 4 +- include/odp/api/spec/deprecated.h.in | 4 +- include/odp/api/spec/errno.h | 4 +- include/odp/api/spec/event.h | 4 +- include/odp/api/spec/feature.h | 4 +- include/odp/api/spec/hash.h | 4 +- include/odp/api/spec/hints.h | 4 +- include/odp/api/spec/init.h | 37 +- include/odp/api/spec/ipsec.h | 4 +- include/odp/api/spec/packet.h | 4 +- include/odp/api/spec/packet_flags.h | 4 +- include/odp/api/spec/packet_io.h | 4 +- include/odp/api/spec/packet_io_stats.h | 4 +- include/odp/api/spec/pool.h | 4 +- include/odp/api/spec/queue.h | 9 +- include/odp/api/spec/random.h | 4 +- include/odp/api/spec/rwlock.h | 4 +- include/odp/api/spec/rwlock_recursive.h | 4 +- include/odp/api/spec/schedule.h | 24 +- include/odp/api/spec/schedule_types.h | 14 +- include/odp/api/spec/shared_memory.h | 4 +- include/odp/api/spec/spinlock.h | 4 +- include/odp/api/spec/spinlock_recursive.h | 4 +- include/odp/api/spec/std_clib.h | 4 +- include/odp/api/spec/std_types.h | 4 +- include/odp/api/spec/support.h | 4 +- include/odp/api/spec/sync.h | 4 +- include/odp/api/spec/system_info.h | 4 +- include/odp/api/spec/thread.h | 32 +- include/odp/api/spec/thread_types.h | 59 ++ include/odp/api/spec/threshold.h | 5 +- include/odp/api/spec/thrmask.h | 4 +- include/odp/api/spec/ticketlock.h | 4 +- include/odp/api/spec/time.h | 4 +- include/odp/api/spec/timer.h | 4 +- include/odp/api/spec/traffic_mngr.h | 4 +- include/odp/api/spec/version.h.in | 4 +- .../include => include}/odp/api/spinlock.h | 6 +- .../odp/api/spinlock_recursive.h | 6 +- .../include => include}/odp/api/std_clib.h | 13 +- .../include => include}/odp/api/std_types.h | 19 +- .../include => include}/odp/api/support.h | 12 +- .../odp/api/thread.h => include/odp/api/sync.h | 10 +- .../include => include}/odp/api/system_info.h | 5 +- .../include => include}/odp/api/thread.h | 8 +- .../include => include}/odp/api/threshold.h | 12 +- .../include => include}/odp/api/thrmask.h | 14 +- .../include => include}/odp/api/ticketlock.h | 10 +- .../include => include}/odp/api/time.h | 8 +- .../include => include}/odp/api/timer.h | 20 +- .../include => include}/odp/api/traffic_mngr.h | 13 +- .../include => include}/odp/api/version.h | 7 +- .../arm32-linux/odp/api/abi/{pool.h => align.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => atomic.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => barrier.h} | 2 +- include/odp/arch/arm32-linux/odp/api/abi/buffer.h | 2 +- .../odp/api/abi/{pool.h => byteorder.h} | 2 +- .../arch/arm32-linux/odp/api/abi/classification.h | 2 +- .../odp/arch/arm32-linux/odp/api/abi/cpu.h | 6 +- .../arm32-linux/odp/api/abi/{pool.h => cpumask.h} | 2 +- include/odp/arch/arm32-linux/odp/api/abi/crypto.h | 2 +- .../arm32-linux/odp/api/abi/{pool.h => debug.h} | 2 +- include/odp/arch/arm32-linux/odp/api/abi/event.h | 2 +- .../arm32-linux/odp/api/abi/{pool.h => init.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => ipsec.h} | 2 +- include/odp/arch/arm32-linux/odp/api/abi/packet.h | 2 +- .../odp/api/abi/{packet.h => packet_flags.h} | 2 +- .../odp/api/abi/{pool.h => packet_io.h} | 2 +- include/odp/arch/arm32-linux/odp/api/abi/pool.h | 2 +- include/odp/arch/arm32-linux/odp/api/abi/queue.h | 2 +- .../arm32-linux/odp/api/abi/{pool.h => rwlock.h} | 2 +- .../odp/api/abi/{packet.h => rwlock_recursive.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => schedule.h} | 2 +- .../odp/api/abi/{packet.h => schedule_types.h} | 2 +- .../arch/arm32-linux/odp/api/abi/shared_memory.h | 2 +- .../arm32-linux/odp/api/abi/{pool.h => spinlock.h} | 2 +- .../odp/api/abi/{packet.h => spinlock_recursive.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => std_clib.h} | 2 +- .../odp/api/abi/{pool.h => std_types.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => sync.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => thread.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => thrmask.h} | 2 +- .../odp/api/abi/{pool.h => ticketlock.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => time.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => timer.h} | 2 +- .../odp/api/abi/{packet.h => traffic_mngr.h} | 2 +- .../arm32-linux/odp/api/abi/{pool.h => version.h} | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/align.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/atomic.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/barrier.h} | 2 +- include/odp/arch/arm64-linux/odp/api/abi/buffer.h | 2 +- .../pool.h => arm64-linux/odp/api/abi/byteorder.h} | 2 +- .../arch/arm64-linux/odp/api/abi/classification.h | 2 +- .../odp/arch/arm64-linux/odp/api/abi/cpu.h | 6 +- .../pool.h => arm64-linux/odp/api/abi/cpumask.h} | 2 +- include/odp/arch/arm64-linux/odp/api/abi/crypto.h | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/debug.h} | 2 +- include/odp/arch/arm64-linux/odp/api/abi/event.h | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/init.h} | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/ipsec.h} | 2 +- include/odp/arch/arm64-linux/odp/api/abi/packet.h | 2 +- .../odp/api/abi/packet_flags.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/packet_io.h} | 2 +- include/odp/arch/arm64-linux/odp/api/abi/pool.h | 2 +- include/odp/arch/arm64-linux/odp/api/abi/queue.h | 2 +- .../pool.h => arm64-linux/odp/api/abi/rwlock.h} | 2 +- .../odp/api/abi/rwlock_recursive.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/schedule.h} | 2 +- .../odp/api/abi/schedule_types.h} | 2 +- .../arch/arm64-linux/odp/api/abi/shared_memory.h | 2 +- .../pool.h => arm64-linux/odp/api/abi/spinlock.h} | 2 +- .../odp/api/abi/spinlock_recursive.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/std_clib.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/std_types.h} | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/sync.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/thread.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/thrmask.h} | 2 +- .../odp/api/abi/ticketlock.h} | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/time.h} | 2 +- .../abi/pool.h => arm64-linux/odp/api/abi/timer.h} | 2 +- .../odp/api/abi/traffic_mngr.h} | 2 +- .../pool.h => arm64-linux/odp/api/abi/version.h} | 2 +- include/odp/arch/default-linux/odp/api/abi/align.h | 7 + .../odp/arch/default-linux/odp/api/abi/atomic.h | 7 + .../odp/arch/default-linux/odp/api/abi/barrier.h | 7 + .../odp/arch/default-linux/odp/api/abi/buffer.h | 7 + .../odp/arch/default-linux/odp/api/abi/byteorder.h | 7 + .../default-linux/odp/api/abi/classification.h | 7 + .../odp/arch/default-linux/odp/api/abi/cpu.h | 8 +- .../odp/arch/default-linux/odp/api/abi/cpumask.h | 7 + .../odp/arch/default-linux/odp/api/abi/crypto.h | 7 + include/odp/arch/default-linux/odp/api/abi/debug.h | 7 + include/odp/arch/default-linux/odp/api/abi/event.h | 7 + include/odp/arch/default-linux/odp/api/abi/init.h | 7 + include/odp/arch/default-linux/odp/api/abi/ipsec.h | 7 + .../odp/arch/default-linux/odp/api/abi/packet.h | 7 + .../arch/default-linux/odp/api/abi/packet_flags.h | 7 + .../odp/arch/default-linux/odp/api/abi/packet_io.h | 7 + include/odp/arch/default-linux/odp/api/abi/pool.h | 7 + include/odp/arch/default-linux/odp/api/abi/queue.h | 7 + .../odp/arch/default-linux/odp/api/abi/rwlock.h | 7 + .../default-linux/odp/api/abi/rwlock_recursive.h | 7 + .../odp/arch/default-linux/odp/api/abi/schedule.h | 7 + .../default-linux/odp/api/abi/schedule_types.h | 7 + .../arch/default-linux/odp/api/abi/shared_memory.h | 7 + .../odp/arch/default-linux/odp/api/abi/spinlock.h | 7 + .../default-linux/odp/api/abi/spinlock_recursive.h | 7 + .../odp/arch/default-linux/odp/api/abi/std_clib.h | 7 + .../odp/arch/default-linux/odp/api/abi/std_types.h | 7 + include/odp/arch/default-linux/odp/api/abi/sync.h | 7 + .../odp/arch/default-linux/odp/api/abi/thread.h | 7 + .../odp/arch/default-linux/odp/api/abi/thrmask.h | 7 + .../arch/default-linux/odp/api/abi/ticketlock.h | 7 + include/odp/arch/default-linux/odp/api/abi/time.h | 7 + include/odp/arch/default-linux/odp/api/abi/timer.h | 7 + .../arch/default-linux/odp/api/abi/traffic_mngr.h | 7 + .../odp/arch/default-linux/odp/api/abi/version.h | 7 + .../pool.h => mips64-linux/odp/api/abi/align.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/atomic.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/barrier.h} | 2 +- include/odp/arch/mips64-linux/odp/api/abi/buffer.h | 2 +- .../odp/api/abi/byteorder.h} | 2 +- .../arch/mips64-linux/odp/api/abi/classification.h | 2 +- .../odp/arch/mips64-linux/odp/api/abi/cpu.h | 8 +- .../pool.h => mips64-linux/odp/api/abi/cpumask.h} | 2 +- include/odp/arch/mips64-linux/odp/api/abi/crypto.h | 2 +- .../pool.h => mips64-linux/odp/api/abi/debug.h} | 2 +- include/odp/arch/mips64-linux/odp/api/abi/event.h | 2 +- .../abi/pool.h => mips64-linux/odp/api/abi/init.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/ipsec.h} | 2 +- include/odp/arch/mips64-linux/odp/api/abi/packet.h | 2 +- .../odp/api/abi/packet_flags.h} | 2 +- .../odp/api/abi/packet_io.h} | 2 +- include/odp/arch/mips64-linux/odp/api/abi/pool.h | 2 +- include/odp/arch/mips64-linux/odp/api/abi/queue.h | 2 +- .../pool.h => mips64-linux/odp/api/abi/rwlock.h} | 2 +- .../odp/api/abi/rwlock_recursive.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/schedule.h} | 2 +- .../odp/api/abi/schedule_types.h} | 2 +- .../arch/mips64-linux/odp/api/abi/shared_memory.h | 2 +- .../pool.h => mips64-linux/odp/api/abi/spinlock.h} | 2 +- .../odp/api/abi/spinlock_recursive.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/std_clib.h} | 2 +- .../odp/api/abi/std_types.h} | 2 +- .../abi/pool.h => mips64-linux/odp/api/abi/sync.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/thread.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/thrmask.h} | 2 +- .../odp/api/abi/ticketlock.h} | 2 +- .../abi/pool.h => mips64-linux/odp/api/abi/time.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/timer.h} | 2 +- .../odp/api/abi/traffic_mngr.h} | 2 +- .../pool.h => mips64-linux/odp/api/abi/version.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/align.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/atomic.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/barrier.h} | 2 +- .../odp/arch/power64-linux/odp/api/abi/buffer.h | 2 +- .../odp/api/abi/byteorder.h} | 2 +- .../power64-linux/odp/api/abi/classification.h | 2 +- .../odp/api/abi/cpu.h} | 3 +- .../pool.h => power64-linux/odp/api/abi/cpumask.h} | 2 +- .../odp/arch/power64-linux/odp/api/abi/crypto.h | 2 +- .../pool.h => power64-linux/odp/api/abi/debug.h} | 2 +- include/odp/arch/power64-linux/odp/api/abi/event.h | 2 +- .../pool.h => power64-linux/odp/api/abi/init.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/ipsec.h} | 2 +- .../odp/arch/power64-linux/odp/api/abi/packet.h | 2 +- .../odp/api/abi/packet_flags.h} | 2 +- .../odp/api/abi/packet_io.h} | 2 +- include/odp/arch/power64-linux/odp/api/abi/pool.h | 2 +- include/odp/arch/power64-linux/odp/api/abi/queue.h | 2 +- .../pool.h => power64-linux/odp/api/abi/rwlock.h} | 2 +- .../odp/api/abi/rwlock_recursive.h} | 2 +- .../odp/api/abi/schedule.h} | 2 +- .../odp/api/abi/schedule_types.h} | 2 +- .../arch/power64-linux/odp/api/abi/shared_memory.h | 2 +- .../odp/api/abi/spinlock.h} | 2 +- .../odp/api/abi/spinlock_recursive.h} | 2 +- .../odp/api/abi/std_clib.h} | 2 +- .../odp/api/abi/std_types.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/sync.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/thread.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/thrmask.h} | 2 +- .../odp/api/abi/ticketlock.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/time.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/timer.h} | 2 +- .../odp/api/abi/traffic_mngr.h} | 2 +- .../pool.h => power64-linux/odp/api/abi/version.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/align.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/atomic.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/barrier.h} | 2 +- include/odp/arch/x86_32-linux/odp/api/abi/buffer.h | 2 +- .../odp/api/abi/byteorder.h} | 2 +- .../arch/x86_32-linux/odp/api/abi/classification.h | 2 +- .../odp/arch/x86_32-linux/odp/api/abi/cpu.h | 6 +- .../pool.h => x86_32-linux/odp/api/abi/cpumask.h} | 2 +- include/odp/arch/x86_32-linux/odp/api/abi/crypto.h | 2 +- .../pool.h => x86_32-linux/odp/api/abi/debug.h} | 2 +- include/odp/arch/x86_32-linux/odp/api/abi/event.h | 2 +- .../abi/pool.h => x86_32-linux/odp/api/abi/init.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/ipsec.h} | 2 +- include/odp/arch/x86_32-linux/odp/api/abi/packet.h | 2 +- .../odp/api/abi/packet_flags.h} | 2 +- .../odp/api/abi/packet_io.h} | 2 +- include/odp/arch/x86_32-linux/odp/api/abi/pool.h | 2 +- include/odp/arch/x86_32-linux/odp/api/abi/queue.h | 2 +- .../pool.h => x86_32-linux/odp/api/abi/rwlock.h} | 2 +- .../odp/api/abi/rwlock_recursive.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/schedule.h} | 2 +- .../odp/api/abi/schedule_types.h} | 2 +- .../arch/x86_32-linux/odp/api/abi/shared_memory.h | 2 +- .../pool.h => x86_32-linux/odp/api/abi/spinlock.h} | 2 +- .../odp/api/abi/spinlock_recursive.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/std_clib.h} | 2 +- .../odp/api/abi/std_types.h} | 2 +- .../abi/pool.h => x86_32-linux/odp/api/abi/sync.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/thread.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/thrmask.h} | 2 +- .../odp/api/abi/ticketlock.h} | 2 +- .../abi/pool.h => x86_32-linux/odp/api/abi/time.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/timer.h} | 2 +- .../odp/api/abi/traffic_mngr.h} | 2 +- .../pool.h => x86_32-linux/odp/api/abi/version.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/align.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/atomic.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/barrier.h} | 2 +- include/odp/arch/x86_64-linux/odp/api/abi/buffer.h | 2 +- .../odp/api/abi/byteorder.h} | 2 +- .../arch/x86_64-linux/odp/api/abi/classification.h | 2 +- .../odp/arch/x86_64-linux/odp/api/abi/cpu.h | 7 +- .../pool.h => x86_64-linux/odp/api/abi/cpumask.h} | 2 +- include/odp/arch/x86_64-linux/odp/api/abi/crypto.h | 2 +- .../pool.h => x86_64-linux/odp/api/abi/debug.h} | 2 +- include/odp/arch/x86_64-linux/odp/api/abi/event.h | 2 +- .../abi/pool.h => x86_64-linux/odp/api/abi/init.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/ipsec.h} | 2 +- include/odp/arch/x86_64-linux/odp/api/abi/packet.h | 2 +- .../odp/api/abi/packet_flags.h} | 2 +- .../odp/api/abi/packet_io.h} | 2 +- include/odp/arch/x86_64-linux/odp/api/abi/pool.h | 2 +- include/odp/arch/x86_64-linux/odp/api/abi/queue.h | 2 +- .../pool.h => x86_64-linux/odp/api/abi/rwlock.h} | 2 +- .../odp/api/abi/rwlock_recursive.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/schedule.h} | 2 +- .../odp/api/abi/schedule_types.h} | 2 +- .../arch/x86_64-linux/odp/api/abi/shared_memory.h | 2 +- .../pool.h => x86_64-linux/odp/api/abi/spinlock.h} | 2 +- .../odp/api/abi/spinlock_recursive.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/std_clib.h} | 2 +- .../odp/api/abi/std_types.h} | 2 +- .../abi/pool.h => x86_64-linux/odp/api/abi/sync.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/thread.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/thrmask.h} | 2 +- .../odp/api/abi/ticketlock.h} | 2 +- .../abi/pool.h => x86_64-linux/odp/api/abi/time.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/timer.h} | 2 +- .../odp/api/abi/traffic_mngr.h} | 2 +- .../pool.h => x86_64-linux/odp/api/abi/version.h} | 2 +- .../include => include}/odp/visibility_begin.h | 0 .../include => include}/odp/visibility_end.h | 0 include/odp_api.h | 1 - m4/odp_check_flag.m4 | 26 + m4/odp_dpdk.m4 | 95 ++- m4/odp_pthread.m4 | 7 + platform/Makefile.inc | 10 +- platform/linux-generic/.gitignore | 1 - platform/linux-generic/Makefile.am | 204 +++--- platform/linux-generic/_ishm.c | 16 +- .../api/cpu_arch.h => aarch64/odp/api/abi/cpu.h} | 6 +- .../arch/arm/odp/api/{cpu_arch.h => abi/cpu.h} | 6 +- .../api/cpu_arch.h => default/odp/api/abi/cpu.h} | 8 +- .../arch/mips64/odp/api/{cpu_arch.h => abi/cpu.h} | 6 +- .../linux-generic/arch/powerpc/odp/api/abi/cpu.h | 3 +- platform/linux-generic/arch/x86/cpu_flags.c | 2 +- .../arch/x86/odp/api/{cpu_arch.h => abi/cpu.h} | 6 +- .../linux-generic/arch/x86/odp_sysinfo_parse.c | 2 +- .../linux-generic/include-abi/odp/api/abi/align.h | 2 +- .../linux-generic/include-abi/odp/api/abi/atomic.h | 76 ++ .../odp/api/abi/barrier.h} | 4 +- .../odp/api/abi/buffer.h} | 13 +- .../odp/api/abi/byteorder.h} | 16 +- .../odp/api/abi/classification.h} | 11 +- .../include-abi/odp/api/abi/cpumask.h | 2 +- .../odp/api/abi/crypto.h} | 11 +- .../odp/api => include-abi/odp/api/abi}/debug.h | 21 +- .../odp/api/abi/event.h} | 14 +- .../linux-generic/include-abi/odp/api/abi/init.h | 2 +- .../odp/api/abi/ipsec.h} | 4 +- .../linux-generic/include-abi/odp/api/abi/packet.h | 71 ++ .../include-abi/odp/api/abi/packet_flags.h | 27 + .../odp/api/abi/packet_io.h} | 14 +- .../odp/api/abi/pool.h} | 26 +- .../odp/api/abi/queue.h} | 11 +- .../linux-generic/include-abi/odp/api/abi/rwlock.h | 2 +- .../include-abi/odp/api/abi/rwlock_recursive.h | 2 +- .../include-abi/odp/api/abi/schedule.h | 2 +- .../include-abi/odp/api/abi/schedule_types.h | 2 +- .../odp/api/abi/shared_memory.h} | 11 +- .../include-abi/odp/api/abi/spinlock.h | 2 +- .../include-abi/odp/api/abi/spinlock_recursive.h | 2 +- .../cpu.h => include-abi/odp/api/abi/std_clib.h} | 11 +- .../include-abi/odp/api/abi/std_types.h | 2 +- .../api/event.h => include-abi/odp/api/abi/sync.h} | 15 +- .../linux-generic/include-abi/odp/api/abi/thread.h | 11 + .../include-abi/odp/api/abi/thrmask.h | 2 +- .../odp/api/abi/ticketlock.h} | 22 +- .../linux-generic/include-abi/odp/api/abi/time.h | 2 +- .../odp/api/abi/timer.h} | 4 +- .../include-abi/odp/api/abi/traffic_mngr.h | 2 +- .../include-abi/odp/api/abi/version.h | 2 +- platform/linux-generic/include/odp/api/atomic.h | 42 -- platform/linux-generic/include/odp/api/byteorder.h | 43 -- .../linux-generic/include/odp/api/classification.h | 46 -- platform/linux-generic/include/odp/api/packet.h | 38 - .../include/odp/api/plat/atomic_inlines.h | 315 ++++---- .../include/odp/api/plat/atomic_types.h | 88 --- .../include/odp/api/plat/byteorder_inlines.h | 46 +- .../include/odp/api/plat/byteorder_inlines_api.h | 88 +++ .../include/odp/api/plat/packet_flag_inlines.h | 24 +- .../plat/{packet_types.h => packet_inline_types.h} | 54 +- .../include/odp/api/plat/packet_inlines.h | 140 ++-- .../include/odp/api/plat/packet_inlines_api.h | 38 + .../include/odp/api/plat/pktio_inlines.h | 27 + .../include/odp/api/plat/pktio_inlines_api.h | 31 + .../include/odp/api/plat/pool_inline_types.h | 37 + .../include/odp/api/plat/static_inline.h.in | 43 -- .../include/odp/api/plat/std_clib_inlines.h | 1 - .../include/odp/api/plat/strong_types.h | 6 +- .../include/odp/api/plat/thread_inlines.h | 46 ++ .../include/odp/api/plat/thread_inlines_api.h | 41 ++ .../include/odp/api/plat/ticketlock_inlines.h | 20 - .../include/odp/api/plat/ticketlock_inlines_api.h | 6 + platform/linux-generic/include/odp/api/queue.h | 44 -- platform/linux-generic/include/odp/api/sync.h | 39 - .../linux-generic/include/odp_atomic_internal.h | 217 ++++-- .../linux-generic/include/odp_bitmap_internal.h | 4 +- .../linux-generic/include/odp_buffer_internal.h | 4 +- .../include/odp_classification_inlines.h | 30 +- .../linux-generic/include/odp_crypto_internal.h | 73 -- platform/linux-generic/include/odp_internal.h | 6 +- .../linux-generic/include/odp_ipsec_internal.h | 6 +- .../linux-generic/include/odp_macros_internal.h | 54 ++ platform/linux-generic/include/odp_packet_dpdk.h | 14 +- .../linux-generic/include/odp_packet_internal.h | 31 +- .../linux-generic/include/odp_packet_io_internal.h | 42 +- .../include/odp_packet_io_ring_internal.h | 10 +- platform/linux-generic/include/odp_packet_netmap.h | 5 +- platform/linux-generic/include/odp_packet_null.h | 16 + platform/linux-generic/include/odp_packet_socket.h | 7 +- platform/linux-generic/include/odp_pool_internal.h | 10 +- .../linux-generic/include/odp_queue_internal.h | 5 +- .../include/odp_queue_scalable_internal.h | 5 +- platform/linux-generic/include/odp_ring_internal.h | 4 +- .../linux-generic/include/odp_schedule_scalable.h | 24 +- .../include/odp_schedule_scalable_ordered.h | 8 +- .../include/odp_traffic_mngr_internal.h | 3 - platform/linux-generic/include/protocols/ip.h | 4 +- platform/linux-generic/include/protocols/thash.h | 8 +- platform/linux-generic/libodp-linux.pc.in | 4 +- platform/linux-generic/m4/configure.m4 | 3 +- platform/linux-generic/m4/odp_dpdk.m4 | 28 +- platform/linux-generic/m4/odp_pthread.m4 | 8 - platform/linux-generic/odp_atomic.c | 3 - platform/linux-generic/odp_atomic_api.c | 13 + platform/linux-generic/odp_byteorder.c | 6 +- platform/linux-generic/odp_classification.c | 79 +- platform/linux-generic/odp_crypto.c | 369 +++++++--- platform/linux-generic/odp_init.c | 15 +- platform/linux-generic/odp_ipsec.c | 82 ++- platform/linux-generic/odp_ipsec_sad.c | 45 +- platform/linux-generic/odp_name_table.c | 23 +- platform/linux-generic/odp_packet.c | 326 ++++----- platform/linux-generic/odp_packet_api.c | 28 + platform/linux-generic/odp_packet_flags.c | 27 +- platform/linux-generic/odp_packet_flags_api.c | 15 + platform/linux-generic/odp_packet_io.c | 93 ++- platform/linux-generic/odp_pkt_queue.c | 17 +- platform/linux-generic/odp_pktio_api.c | 14 + platform/linux-generic/odp_pool.c | 3 +- platform/linux-generic/odp_queue_scalable.c | 1 + platform/linux-generic/odp_rwlock_recursive.c | 11 +- platform/linux-generic/odp_schedule.c | 18 +- platform/linux-generic/odp_schedule_iquery.c | 14 +- platform/linux-generic/odp_schedule_sp.c | 12 +- platform/linux-generic/odp_shared_memory.c | 3 +- platform/linux-generic/odp_spinlock_recursive.c | 7 +- platform/linux-generic/odp_std_clib.c | 5 +- platform/linux-generic/odp_sync.c | 5 +- platform/linux-generic/odp_thread.c | 36 +- platform/linux-generic/odp_thread_api.c | 15 + platform/linux-generic/odp_ticketlock.c | 12 +- platform/linux-generic/odp_timer.c | 12 +- platform/linux-generic/odp_timer_wheel.c | 3 +- platform/linux-generic/odp_traffic_mngr.c | 52 +- platform/linux-generic/pktio/dpdk.c | 64 +- platform/linux-generic/pktio/io_ops.c | 1 + platform/linux-generic/pktio/ipc.c | 38 +- platform/linux-generic/pktio/loop.c | 52 +- platform/linux-generic/pktio/netmap.c | 148 +++- platform/linux-generic/pktio/null.c | 175 +++++ platform/linux-generic/pktio/pcap.c | 15 +- platform/linux-generic/pktio/pktio_common.c | 125 ++++ platform/linux-generic/pktio/socket.c | 115 ++- platform/linux-generic/pktio/socket_mmap.c | 255 +++++-- platform/linux-generic/pktio/tap.c | 19 +- platform/linux-generic/test/.gitignore | 3 +- platform/linux-generic/test/Makefile.am | 3 +- platform/linux-generic/test/Makefile.inc | 22 - platform/linux-generic/test/ring/Makefile.am | 33 +- .../linux-generic/test/validation/Makefile.inc | 1 - .../linux-generic/test/validation/api/Makefile.inc | 2 +- .../test/validation/api/shmem/Makefile.am | 9 +- scripts/Dockerfile | 1 + scripts/checkpatch.pl | 1 + scripts/shippable-post.sh | 9 + test/Makefile.inc | 45 +- test/common/odp_cunit_common.c | 52 +- test/common/odp_cunit_common.h | 12 +- test/common/test_packet_parser.h | 342 ++++++++- test/performance/odp_crypto.c | 73 +- test/performance/odp_l2fwd.c | 54 +- test/performance/odp_pktio_ordered.c | 4 +- test/performance/odp_sched_latency.c | 4 +- test/performance/odp_scheduling.c | 4 +- test/validation/api/Makefile.am | 2 +- test/validation/api/Makefile.inc | 12 +- test/validation/api/atomic/Makefile.am | 1 - test/validation/api/barrier/Makefile.am | 1 - test/validation/api/buffer/Makefile.am | 1 - test/validation/api/chksum/Makefile.am | 1 - test/validation/api/chksum/chksum.c | 6 +- test/validation/api/classification/Makefile.am | 1 - .../validation/api/classification/classification.c | 20 +- .../api/classification/odp_classification_basic.c | 4 + test/validation/api/cpumask/Makefile.am | 2 +- test/validation/api/crypto/Makefile.am | 1 - test/validation/api/crypto/odp_crypto_test_inp.c | 730 +++++++++---------- test/validation/api/crypto/test_vectors.h | 251 ++++++- test/validation/api/crypto/test_vectors_len.h | 6 +- test/validation/api/errno/Makefile.am | 1 - test/validation/api/event/Makefile.am | 1 - test/validation/api/hash/Makefile.am | 1 - test/validation/api/init/Makefile.am | 3 - test/validation/api/ipsec/Makefile.am | 5 +- test/validation/api/ipsec/ipsec.c | 4 +- test/validation/api/lock/Makefile.am | 1 - test/validation/api/packet/Makefile.am | 1 - test/validation/api/packet/packet.c | 801 ++++++++++++++++++--- test/validation/api/packet/packet.h | 1 - test/validation/api/pktio/Makefile.am | 1 - test/validation/api/pktio/pktio.c | 4 +- test/validation/api/pool/Makefile.am | 1 - test/validation/api/pool/pool.c | 4 +- test/validation/api/queue/Makefile.am | 1 - test/validation/api/random/Makefile.am | 1 - test/validation/api/scheduler/Makefile.am | 1 - test/validation/api/scheduler/scheduler.c | 71 ++ test/validation/api/shmem/Makefile.am | 1 - test/validation/api/shmem/shmem.c | 56 +- test/validation/api/std_clib/Makefile.am | 1 - test/validation/api/system/Makefile.am | 1 - test/validation/api/thread/Makefile.am | 2 +- test/validation/api/time/Makefile.am | 11 - test/validation/api/time/time.c | 18 +- test/validation/api/time/time.sh | 42 -- test/validation/api/timer/Makefile.am | 1 - test/validation/api/traffic_mngr/Makefile.am | 2 +- test/validation/api/traffic_mngr/traffic_mngr.sh | 4 +- 631 files changed, 7354 insertions(+), 4057 deletions(-) create mode 100644 Makefile.inc create mode 100755 example/generator/generator_run.sh rename example/ipsec_api/{odp_ipsec_run_ah_in.sh => odp_ipsec_api_run_ah_in.sh} (91%) rename example/ipsec_api/{odp_ipsec_run_ah_out.sh => odp_ipsec_api_run_ah_out.sh} (91%) rename example/ipsec_api/{odp_ipsec_run_ah_tun_in.sh => odp_ipsec_api_run_ah_tun_in.sh} (92%) rename example/ipsec_api/{odp_ipsec_run_ah_tun_out.sh => odp_ipsec_api_run_ah_tun_out.sh} (92%) rename example/ipsec_api/{odp_ipsec_run_esp_in.sh => odp_ipsec_api_run_esp_in.sh} (91%) rename example/ipsec_api/{odp_ipsec_run_esp_out.sh => odp_ipsec_api_run_esp_out.sh} (92%) rename example/ipsec_api/{odp_ipsec_run_esp_tun_in.sh => odp_ipsec_api_run_esp_tun_in.sh} (92%) rename example/ipsec_api/{odp_ipsec_run_esp_tun_out.sh => odp_ipsec_api_run_esp_tun_out.sh} (92%) rename example/ipsec_api/{odp_ipsec_run_live.sh => odp_ipsec_api_run_live.sh} (94%) rename example/ipsec_api/{odp_ipsec_run_router.sh => odp_ipsec_api_run_router.sh} (85%) rename example/ipsec_api/{odp_ipsec_run_simple.sh => odp_ipsec_api_run_simple.sh} (87%) create mode 100644 include/README rename {platform/linux-generic/include/odp/api => include/odp/api/abi-default}/align.h (73%) create mode 100644 include/odp/api/abi-default/atomic.h copy platform/linux-generic/include/odp/api/plat/barrier_types.h => include/odp/api/abi-default/barrier.h (89%) rename include/odp/{arch/default/api/abi => api/abi-default}/buffer.h (90%) copy platform/linux-generic/include/odp/api/plat/byteorder_types.h => include/odp/api/abi-default/byteorder.h (53%) rename include/odp/{arch/default/api/abi => api/abi-default}/classification.h (100%) copy platform/linux-generic/arch/default/odp/api/cpu_arch.h => include/odp/api/abi-default/cpu.h (60%) rename platform/linux-generic/include/odp/api/plat/cpumask_types.h => include/odp/api/abi-default/cpumask.h (85%) rename include/odp/{arch/default/api/abi => api/abi-default}/crypto.h (100%) create mode 100644 include/odp/api/abi-default/debug.h rename include/odp/{arch/default/api/abi => api/abi-default}/event.h (94%) rename platform/linux-generic/include/odp/api/plat/init_types.h => include/odp/api/abi-default/init.h (79%) copy platform/linux-generic/include/odp/api/plat/ipsec_types.h => include/odp/api/abi-default/ipsec.h (55%) rename include/odp/{arch/default/api/abi => api/abi-default}/packet.h (93%) copy platform/linux-generic/include/odp/api/errno.h => include/odp/api/abi-default/packet_flags.h (53%) copy platform/linux-generic/include/odp/api/plat/packet_io_types.h => include/odp/api/abi-default/packet_io.h (71%) rename include/odp/{arch/default/api/abi => api/abi-default}/pool.h (100%) rename include/odp/{arch/default/api/abi => api/abi-default}/queue.h (100%) rename platform/linux-generic/include/odp/api/plat/rwlock_types.h => include/odp/api/abi-default/rwlock.h (75%) rename platform/linux-generic/include/odp/api/plat/rwlock_recursive_types.h => include/odp/api/abi-default/rwlock_recursive.h (77%) copy platform/linux-generic/include/odp/api/plat/spinlock_types.h => include/odp/api/abi-default/schedule.h (51%) rename {platform/linux-generic/include/odp/api/plat => include/odp/api/abi-default}/schedule_types.h (81%) rename include/odp/{arch/default/api/abi => api/abi-default}/shared_memory.h (100%) rename platform/linux-generic/include/odp/api/plat/spinlock_types.h => include/odp/api/abi-default/spinlock.h (64%) rename platform/linux-generic/include/odp/api/plat/spinlock_recursive_types.h => include/odp/api/abi-default/spinlock_recursive.h (71%) copy platform/linux-generic/include/odp/api/cpu.h => include/odp/api/abi-default/std_clib.h (63%) copy {platform/linux-generic/include/odp/api => include/odp/api/abi-default}/std_types.h (82%) copy platform/linux-generic/include/odp/api/cpu.h => include/odp/api/abi-default/sync.h (63%) rename platform/linux-generic/include/odp/api/plat/thread_types.h => include/odp/api/abi-default/thread.h (84%) rename platform/linux-generic/include/odp/api/plat/thrmask_types.h => include/odp/api/abi-default/thrmask.h (91%) copy platform/linux-generic/include/odp/api/plat/ticketlock_types.h => include/odp/api/abi-default/ticketlock.h (72%) rename platform/linux-generic/include/odp/api/plat/time_types.h => include/odp/api/abi-default/time.h (93%) create mode 100644 include/odp/api/abi-default/timer.h rename platform/linux-generic/include/odp/api/plat/traffic_mngr_types.h => include/odp/api/abi-default/traffic_mngr.h (95%) rename platform/linux-generic/include/odp/api/plat/version_types.h => include/odp/api/abi-default/version.h (91%) copy platform/linux-generic/include/odp/api/errno.h => include/odp/api/align.h (50%) copy platform/linux-generic/include/odp/api/thread.h => include/odp/api/atomic.h (59%) rename {platform/linux-generic/include => include}/odp/api/barrier.h (70%) rename {platform/linux-generic/include => include}/odp/api/buffer.h (58%) rename platform/linux-generic/include/odp/api/compiler.h => include/odp/api/byteorder.h (55%) rename {platform/linux-generic/include => include}/odp/api/chksum.h (72%) create mode 100644 include/odp/api/classification.h copy {platform/linux-generic/include => include}/odp/api/cpu.h (62%) rename {platform/linux-generic/include => include}/odp/api/cpumask.h (74%) rename {platform/linux-generic/include => include}/odp/api/crypto.h (64%) copy platform/linux-generic/include/odp/api/thread.h => include/odp/api/debug.h (59%) rename {platform/linux-generic/include => include}/odp/api/deprecated.h (82%) rename {platform/linux-generic/include => include}/odp/api/errno.h (83%) copy {platform/linux-generic/include => include}/odp/api/event.h (65%) rename {platform/linux-generic/include => include}/odp/api/feature.h (71%) rename {platform/linux-generic/include => include}/odp/api/hash.h (72%) rename {platform/linux-generic/include => include}/odp/api/hints.h (70%) rename {platform/linux-generic/include => include}/odp/api/init.h (64%) rename {platform/linux-generic/include => include}/odp/api/ipsec.h (67%) create mode 100644 include/odp/api/packet.h rename {platform/linux-generic/include => include}/odp/api/packet_flags.h (59%) rename {platform/linux-generic/include => include}/odp/api/packet_io.h (57%) rename {platform/linux-generic/include => include}/odp/api/packet_io_stats.h (79%) rename {platform/linux-generic/include => include}/odp/api/pool.h (53%) copy platform/linux-generic/include/odp/api/system_info.h => include/odp/api/queue.h (52%) rename {platform/linux-generic/include => include}/odp/api/random.h (70%) rename {platform/linux-generic/include => include}/odp/api/rwlock.h (75%) rename {platform/linux-generic/include => include}/odp/api/rwlock_recursive.h (70%) rename {platform/linux-generic/include => include}/odp/api/schedule.h (63%) rename {platform/linux-generic/include => include}/odp/api/schedule_types.h (71%) rename {platform/linux-generic/include => include}/odp/api/shared_memory.h (62%) delete mode 100644 include/odp/api/spec/compiler.h create mode 100644 include/odp/api/spec/thread_types.h rename {platform/linux-generic/include => include}/odp/api/spinlock.h (72%) rename {platform/linux-generic/include => include}/odp/api/spinlock_recursive.h (68%) rename {platform/linux-generic/include => include}/odp/api/std_clib.h (50%) rename {platform/linux-generic/include => include}/odp/api/std_types.h (54%) rename {platform/linux-generic/include => include}/odp/api/support.h (73%) copy platform/linux-generic/include/odp/api/thread.h => include/odp/api/sync.h (59%) rename {platform/linux-generic/include => include}/odp/api/system_info.h (82%) rename {platform/linux-generic/include => include}/odp/api/thread.h (68%) rename {platform/linux-generic/include => include}/odp/api/threshold.h (72%) rename {platform/linux-generic/include => include}/odp/api/thrmask.h (64%) rename {platform/linux-generic/include => include}/odp/api/ticketlock.h (59%) rename {platform/linux-generic/include => include}/odp/api/time.h (76%) rename {platform/linux-generic/include => include}/odp/api/timer.h (54%) rename {platform/linux-generic/include => include}/odp/api/traffic_mngr.h (62%) rename {platform/linux-generic/include => include}/odp/api/version.h (73%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => align.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => atomic.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => barrier.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => byteorder.h} (72%) copy platform/linux-generic/arch/arm/odp/api/cpu_arch.h => include/odp/arch/arm32-linux/odp/api/abi/cpu.h (84%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => cpumask.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => debug.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => init.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => ipsec.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{packet.h => packet_flags.h} (71%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => packet_io.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => rwlock.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{packet.h => rwlock_recursive.h} (69%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => schedule.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{packet.h => schedule_types.h} (70%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => spinlock.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{packet.h => spinlock_recursive.h} (68%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => std_clib.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => std_types.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => sync.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => thread.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => thrmask.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => ticketlock.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => time.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => timer.h} (72%) copy include/odp/arch/arm32-linux/odp/api/abi/{packet.h => traffic_mngr.h} (71%) copy include/odp/arch/arm32-linux/odp/api/abi/{pool.h => version.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/align.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/atomic.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/barrier.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/byteorder.h} (72%) rename platform/linux-generic/arch/aarch64/odp/api/cpu_arch.h => include/odp/arch/arm64-linux/odp/api/abi/cpu.h (84%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/cpumask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/debug.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/init.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/ipsec.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => arm64-linux/odp/api/abi/packet_flags.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/packet_io.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/rwlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => arm64-linux/odp/api/abi/rwlock_recursive.h} (69%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/schedule.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => arm64-linux/odp/api/abi/schedule_types.h} (70%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/spinlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => arm64-linux/odp/api/abi/spinlock_recursive.h} (68%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/std_clib.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/std_types.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/sync.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/thread.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/thrmask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/ticketlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/time.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/timer.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => arm64-linux/odp/api/abi/traffic_mngr.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => arm64-linux/odp/api/abi/version.h} (72%) create mode 100644 include/odp/arch/default-linux/odp/api/abi/align.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/atomic.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/barrier.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/buffer.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/byteorder.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/classification.h rename platform/linux-generic/arch/default/odp/api/cpu_arch.h => include/odp/arch/default-linux/odp/api/abi/cpu.h (60%) create mode 100644 include/odp/arch/default-linux/odp/api/abi/cpumask.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/crypto.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/debug.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/event.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/init.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/ipsec.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/packet.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/packet_flags.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/packet_io.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/pool.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/queue.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/rwlock.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/rwlock_recursive.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/schedule.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/schedule_types.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/shared_memory.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/spinlock.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/spinlock_recursive.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/std_clib.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/std_types.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/sync.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/thread.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/thrmask.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/ticketlock.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/time.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/timer.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/traffic_mngr.h create mode 100644 include/odp/arch/default-linux/odp/api/abi/version.h copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/align.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/atomic.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/barrier.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/byteorder.h} (72%) copy platform/linux-generic/arch/mips64/odp/api/cpu_arch.h => include/odp/arch/mips64-linux/odp/api/abi/cpu.h (73%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/cpumask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/debug.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/init.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/ipsec.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => mips64-linux/odp/api/abi/packet_flags.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/packet_io.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/rwlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => mips64-linux/odp/api/abi/rwlock_recursive.h} (69%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/schedule.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => mips64-linux/odp/api/abi/schedule_types.h} (70%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/spinlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => mips64-linux/odp/api/abi/spinlock_recursive.h} (68%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/std_clib.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/std_types.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/sync.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/thread.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/thrmask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/ticketlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/time.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/timer.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => mips64-linux/odp/api/abi/traffic_mngr.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => mips64-linux/odp/api/abi/version.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/align.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/atomic.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/barrier.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/byteorder.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/classification.h => power64-linux/odp/api/abi/cpu.h} (61%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/cpumask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/debug.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/init.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/ipsec.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => power64-linux/odp/api/abi/packet_flags.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/packet_io.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/rwlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => power64-linux/odp/api/abi/rwlock_recursive.h} (69%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/schedule.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => power64-linux/odp/api/abi/schedule_types.h} (70%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/spinlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => power64-linux/odp/api/abi/spinlock_recursive.h} (68%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/std_clib.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/std_types.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/sync.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/thread.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/thrmask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/ticketlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/time.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/timer.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => power64-linux/odp/api/abi/traffic_mngr.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => power64-linux/odp/api/abi/version.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/align.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/atomic.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/barrier.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/byteorder.h} (72%) copy platform/linux-generic/arch/x86/odp/api/cpu_arch.h => include/odp/arch/x86_32-linux/odp/api/abi/cpu.h (78%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/cpumask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/debug.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/init.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/ipsec.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_32-linux/odp/api/abi/packet_flags.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/packet_io.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/rwlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_32-linux/odp/api/abi/rwlock_recursive.h} (69%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/schedule.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_32-linux/odp/api/abi/schedule_types.h} (70%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/spinlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_32-linux/odp/api/abi/spinlock_recursive.h} (68%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/std_clib.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/std_types.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/sync.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/thread.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/thrmask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/ticketlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/time.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/timer.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_32-linux/odp/api/abi/traffic_mngr.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_32-linux/odp/api/abi/version.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/align.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/atomic.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/barrier.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/byteorder.h} (72%) copy platform/linux-generic/arch/powerpc/odp/api/cpu_arch.h => include/odp/arch/x86_64-linux/odp/api/abi/cpu.h (64%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/cpumask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/debug.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/init.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/ipsec.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_64-linux/odp/api/abi/packet_flags.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/packet_io.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/rwlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_64-linux/odp/api/abi/rwlock_recursive.h} (69%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/schedule.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_64-linux/odp/api/abi/schedule_types.h} (70%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/spinlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_64-linux/odp/api/abi/spinlock_recursive.h} (68%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/std_clib.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/std_types.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/sync.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/thread.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/thrmask.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/ticketlock.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/time.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/timer.h} (72%) copy include/odp/arch/{arm32-linux/odp/api/abi/packet.h => x86_64-linux/odp/api/abi/traffic_mngr.h} (71%) copy include/odp/arch/{arm32-linux/odp/api/abi/pool.h => x86_64-linux/odp/api/abi/version.h} (72%) rename {platform/linux-generic/include => include}/odp/visibility_begin.h (100%) rename {platform/linux-generic/include => include}/odp/visibility_end.h (100%) create mode 100644 m4/odp_check_flag.m4 create mode 100644 m4/odp_pthread.m4 copy platform/linux-generic/arch/{arm/odp/api/cpu_arch.h => aarch64/odp/api/abi/cpu.h} (84%) rename platform/linux-generic/arch/arm/odp/api/{cpu_arch.h => abi/cpu.h} (84%) rename platform/linux-generic/arch/{powerpc/odp/api/cpu_arch.h => default/odp/api/abi/cpu.h} (60%) rename platform/linux-generic/arch/mips64/odp/api/{cpu_arch.h => abi/cpu.h} (83%) copy include/odp/arch/arm32-linux/odp/api/abi/classification.h => platform/linux-generic/arch/powerpc/odp/api/abi/cpu.h (61%) rename platform/linux-generic/arch/x86/odp/api/{cpu_arch.h => abi/cpu.h} (78%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/align.h (72%) create mode 100644 platform/linux-generic/include-abi/odp/api/abi/atomic.h rename platform/linux-generic/{include/odp/api/plat/barrier_types.h => include-abi/odp/api/abi/barrier.h} (89%) rename platform/linux-generic/{include/odp/api/plat/buffer_types.h => include-abi/odp/api/abi/buffer.h} (63%) rename platform/linux-generic/{include/odp/api/plat/byteorder_types.h => include-abi/odp/api/abi/byteorder.h} (83%) rename platform/linux-generic/{include/odp/api/plat/classification_types.h => include-abi/odp/api/abi/classification.h} (74%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/cpumask.h (72%) rename platform/linux-generic/{include/odp/api/plat/crypto_types.h => include-abi/odp/api/abi/crypto.h} (71%) rename platform/linux-generic/{include/odp/api => include-abi/odp/api/abi}/debug.h (72%) rename platform/linux-generic/{include/odp/api/plat/event_types.h => include-abi/odp/api/abi/event.h} (73%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/init.h (72%) rename platform/linux-generic/{include/odp/api/plat/ipsec_types.h => include-abi/odp/api/abi/ipsec.h} (88%) create mode 100644 platform/linux-generic/include-abi/odp/api/abi/packet.h create mode 100644 platform/linux-generic/include-abi/odp/api/abi/packet_flags.h rename platform/linux-generic/{include/odp/api/plat/packet_io_types.h => include-abi/odp/api/abi/packet_io.h} (83%) rename platform/linux-generic/{include/odp/api/plat/pool_types.h => include-abi/odp/api/abi/pool.h} (52%) rename platform/linux-generic/{include/odp/api/plat/queue_types.h => include-abi/odp/api/abi/queue.h} (74%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/rwlock.h (72%) copy include/odp/arch/arm32-linux/odp/api/abi/packet.h => platform/linux-generic/include-abi/odp/api/abi/rwlock_recursive.h (69%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/schedule.h (72%) copy include/odp/arch/arm32-linux/odp/api/abi/packet.h => platform/linux-generic/include-abi/odp/api/abi/schedule_types.h (70%) rename platform/linux-generic/{include/odp/api/plat/shared_memory_types.h => include-abi/odp/api/abi/shared_memory.h} (73%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/spinlock.h (72%) copy include/odp/arch/arm32-linux/odp/api/abi/packet.h => platform/linux-generic/include-abi/odp/api/abi/spinlock_recursive.h (68%) rename platform/linux-generic/{include/odp/api/cpu.h => include-abi/odp/api/abi/std_clib.h} (57%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/std_types.h (72%) rename platform/linux-generic/{include/odp/api/event.h => include-abi/odp/api/abi/sync.h} (58%) create mode 100644 platform/linux-generic/include-abi/odp/api/abi/thread.h copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/thrmask.h (72%) rename platform/linux-generic/{include/odp/api/plat/ticketlock_types.h => include-abi/odp/api/abi/ticketlock.h} (52%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/time.h (72%) rename platform/linux-generic/{include/odp/api/plat/timer_types.h => include-abi/odp/api/abi/timer.h} (92%) copy include/odp/arch/arm32-linux/odp/api/abi/packet.h => platform/linux-generic/include-abi/odp/api/abi/traffic_mngr.h (71%) copy include/odp/arch/arm32-linux/odp/api/abi/pool.h => platform/linux-generic/include-abi/odp/api/abi/version.h (72%) delete mode 100644 platform/linux-generic/include/odp/api/atomic.h delete mode 100644 platform/linux-generic/include/odp/api/byteorder.h delete mode 100644 platform/linux-generic/include/odp/api/classification.h delete mode 100644 platform/linux-generic/include/odp/api/packet.h delete mode 100644 platform/linux-generic/include/odp/api/plat/atomic_types.h create mode 100644 platform/linux-generic/include/odp/api/plat/byteorder_inlines_api.h rename platform/linux-generic/include/odp/api/plat/{packet_types.h => packet_inline_types.h} (76%) create mode 100644 platform/linux-generic/include/odp/api/plat/pktio_inlines.h create mode 100644 platform/linux-generic/include/odp/api/plat/pktio_inlines_api.h create mode 100644 platform/linux-generic/include/odp/api/plat/pool_inline_types.h delete mode 100644 platform/linux-generic/include/odp/api/plat/static_inline.h.in create mode 100644 platform/linux-generic/include/odp/api/plat/thread_inlines.h create mode 100644 platform/linux-generic/include/odp/api/plat/thread_inlines_api.h delete mode 100644 platform/linux-generic/include/odp/api/queue.h delete mode 100644 platform/linux-generic/include/odp/api/sync.h delete mode 100644 platform/linux-generic/include/odp_crypto_internal.h create mode 100644 platform/linux-generic/include/odp_macros_internal.h create mode 100644 platform/linux-generic/include/odp_packet_null.h delete mode 100644 platform/linux-generic/m4/odp_pthread.m4 create mode 100644 platform/linux-generic/odp_atomic_api.c create mode 100644 platform/linux-generic/odp_packet_api.c create mode 100644 platform/linux-generic/odp_packet_flags_api.c create mode 100644 platform/linux-generic/odp_pktio_api.c create mode 100644 platform/linux-generic/odp_thread_api.c create mode 100644 platform/linux-generic/pktio/null.c delete mode 100644 platform/linux-generic/test/Makefile.inc delete mode 100644 platform/linux-generic/test/validation/Makefile.inc create mode 100755 scripts/shippable-post.sh delete mode 100755 test/validation/api/time/time.sh
hooks/post-receive