From patchwork Tue Nov 29 16:05:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9452531 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C622A60710 for ; Tue, 29 Nov 2016 16:04:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B6D2F201BD for ; Tue, 29 Nov 2016 16:04:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AB865283F8; Tue, 29 Nov 2016 16:04:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.nsa.gov [8.44.101.8]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3C65B283F6 for ; Tue, 29 Nov 2016 16:04:29 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,717,1473120000"; d="scan'208";a="1386924" IronPort-PHdr: =?us-ascii?q?9a23=3AbJ0bQxxXlDorLh3XCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1ekeKvad9pjvdHbS+e9qxAeQG96KsLQf1KGM6/CocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDSwbal8IRi0ogndqNUajIh/Iast1xXFpWdFdf?= =?us-ascii?q?5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALM?= =?us-ascii?q?TRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTnhj?= =?us-ascii?q?0HNzok+2/JjMJ+gr9QrBa4qxF+xoLZZpyeOvhjcaPHZd4URXRPUNtfWSJCBY28?= =?us-ascii?q?d4kCA/cPMOlXs4bzqEUBrQClCAmwBu7i0CNEi2Xq0aEk1ekqDAHI3BYnH9ILqH?= =?us-ascii?q?nascn1O7kKUeC10qbIyyjIYe5T2Tjn7IjIdg4uoPGRVr93asre1FIvGhjZjlSQ?= =?us-ascii?q?tYPlPzSV2v4Ls2iA9eVsT+2vi2k5qwxopDWk28kiio7Mho0Py1DE8z10wIMoJd?= =?us-ascii?q?2jTE53eNqkEJpLuC6GLYd2RdkiQ25wtCY1y70GpZ67fDURx5g92xHfbPmHfo6V?= =?us-ascii?q?6RzgTOacOSp0iX1qdb6lhxu+7FKsxvPzW8WqylpGsyxImcTWuH8XzRzc8M2HR+?= =?us-ascii?q?N4/kemxDmAyRje6vpBIUAojarbLIMhwqIompoTr0vDGij2lV3qjKCMbEUk+/Wo?= =?us-ascii?q?6//9brX6pp6TK490igbkPqQohsO/Gvg3PhILX2ia/eSwzLzj/UvnT7VWlvA6j6?= =?us-ascii?q?bUvZ/AKckbu6K1GRFZ34k95xqlEjuqyNEYkmMGLFJBdhKHlY/pO1TWLfDjE/i/?= =?us-ascii?q?h1WskDF2x/HJJ7HuGZLNLmXFkLj9Y7l98FVRyBYzzN9D55JUDasNIPToWkDrrt?= =?us-ascii?q?DYARg5MxKsz+b9FNp9zp8eWX6IAqKBPqPSq0WH5uQzLOmNf48YozP9K+Ak5/L3?= =?us-ascii?q?ln84l0QdcbOu3ZsNZ3CyBu5mLFmBYXrwntcBFn8HvgkkQ+zpj12CTCVeZ3WoUK?= =?us-ascii?q?I/4TE7FZiqDYDZRoCimLaBxju0HoVKZmBaDVCBCW3neJieW/cNdi2SONRsnSYY?= =?us-ascii?q?WrikUYMh0guutADiwbp9MuXU4jEYtY7k1NVt5+3cixUy9ThzD8mG12GNUn10nm?= =?us-ascii?q?QNRzAsxqx/plZ9ylib26hin/NYDcBT5+9OUgoiLp7cwfZ6C9fpWgLdZdqJU1Cm?= =?us-ascii?q?QtKoADE0VN0xxcUCY0BjFNW+lhrDxTalA6cJl7yXA5w56qzd0GL1J8Zh1XnGzr?= =?us-ascii?q?IhgkI4QsRRL22pnbN/9w3JC47OiUWZmL6gdb4A0y7V6GeD0W2OsVlEUAFtTKrF?= =?us-ascii?q?XGoQZk/NoNvl4UPCSqOhBq48Mgtd08KCLLVFasHxh1VcWPjjIMjeY362m2qoAx?= =?us-ascii?q?aIx7eMbI70dGUGxyjSElYLkxoU/XqcMgg+HCihqXrEDDNyDVLvf1/s8e5mpXym?= =?us-ascii?q?VEA00xuFYFNv17u64RMamfycROkJ3rIYpighsS94HFCj0NLKE9CAvRZufL1AYd?= =?us-ascii?q?Mh51dKzXzZtw1hMZy8KKBinEQSfBh3v0Pp0RV3BZ5NkcwrrHMs1gVyM6WY3ElG?= =?us-ascii?q?dzOC0pD6IqfXJXXq/BCzd67W3UnT0NKX+qcU9PQ0sk7jsx+tFkoj9XVnztZU3m?= =?us-ascii?q?CH5pXSDQoSV5PxXVos9xRgobHVfDU97ZvO1XJwKam0riPC29UxCes/zRage9Nf?= =?us-ascii?q?P72eFADuFM0bCdOjKPc3m1e1dRIIJudS9LQ7P8m+bfuJxLarPPp8nDKhlWlH+J?= =?us-ascii?q?py0l+I9yZmUOHExY0Kw/ac3gubUDf8ikysssXrlYBCYjEdAnCzyS76C45Nfqdy?= =?us-ascii?q?Z5oECX+yI82rwdVzn5vtW3pB+FG9AVMLw9GpdgSWb1z5wwJQz14boXq5liuk1z?= =?us-ascii?q?Z0iS0mrrKD3CzSxOTvbBkHNXBNRGl5llrsIpa7j9YBXEiucQcpiAGp5UHgx6hU?= =?us-ascii?q?vK5/NXXcQV9UfyjqKGFvSrWwtryfbMNU9pMotzhYUOSmbVCcVLH9vwMQ0zn/EG?= =?us-ascii?q?tG2DA7azaqt43hnxNglWKdKG1+o2bYecFsxRbT/dLcSuRX3jYcQyl4kzbXDECm?= =?us-ascii?q?P9a15dWUi4vDsuemWmK5TJJTbC3rwp2YtCSh421qHQOwn+qol936Cgg1zzX718?= =?us-ascii?q?JwWSXTqxb8f5Pr2LikPuJpeUloHlD85NRgFoF4jIQwmIka2WIGiZWN4XoHjWDz?= =?us-ascii?q?PM1V2a3kanoNWTkLw9vO7QjrxkJsM3WJx5jjWXWF2MthYNu6bX0K1SIh9cxKD7?= =?us-ascii?q?2U7LNclytvvlW4tR7RYeR6njoFxvsu6GIVg/sJuQo10iWdBasfHU9GMizwjBSH?= =?us-ascii?q?88qxrL1Ja2q1d7i/ylZ+l8i7DL6eugFcRGr5epA6EC919Mp/NFbM32Pv6oH4Yt?= =?us-ascii?q?bfd8kethuKnBfclOhaNIg+luIUiiZ9P2Lyo2ElwfYhjRNyxZG6oJSHK2J18aKj?= =?us-ascii?q?GBJZOCf5Z8YJ9THpiqZfnt2b0JqzEZVkADkLW4HoTf2wGjIIqfvnLxqOECE7qn?= =?us-ascii?q?qDH7rfBxWQ6F9+r3/UHZCrNmuXJGIFzdVsRRmdIlZQgAYIUzU7hJE5EhqmxMv7?= =?us-ascii?q?cEd2/joR/EL3qgNQyuJ0MBnySn/fqxmzZTgqTpifLQZW7gZZ6kfUL8OR8Px8Ez?= =?us-ascii?q?tf/p27owyHMnabaBhQDWEVRkyEAEjuMaS15dbe6eeYCfC+IOHQYbiVsuxRTfSI?= =?us-ascii?q?xY+10oR85TqMMtiPPn94AP0hw0ZDQXd5G8fZmjUIUSAXkTzCb9KDrhem5iJ3tt?= =?us-ascii?q?y/8OjsWA/3/ouAEaVSPs9g+x+omqeOLPWQizxnKTlC2ZMD22TIxKIZ3FEMlyFk?= =?us-ascii?q?byOtHqgYtS7RUKLQnbdaAAUaayN8M8tI6bkx0RRTNsHAi9P6zLh4guQyC1dfWl?= =?us-ascii?q?zrgtupatASI2GhKFPHA16GO66JJTLR3cH4f7ixSbpIjOpKsR2wvCyUE07nPjuY?= =?us-ascii?q?kDnoWAqjMeZWjCGUJBZeop2ycg5xCWj/S9LrcgG7MNhyjTEs2700gXLLOnAaMT?= =?us-ascii?q?dnaUNNqaOf7SBDj/pjHGxB62ZqIvOfmyaF9eXYLIgZsedzCCRui+1a+Gg6y6dS?= =?us-ascii?q?7CxcR/x0mC/SocB1rlGjlemPxDRnXwRSqjZXhIKLukBiNrvD+plGR3nE4AoH7X?= =?us-ascii?q?+MBBQSu9tlFtrvtrhRytjJiKL8NjNC/MzR/cQCG8jUMsKGPWEmMRrxBjHUCg4F?= =?us-ascii?q?QiSqNWHbnENdl/6T+meSrpggpZjmgIAORaNDVFwpCvMaDVxoHNocL5htWjMpir?= =?us-ascii?q?2bjMkT5XqithbRQt5avpPGVv6IB/XgNiqZh6FeZxQU2bP4MZgTNorj1kx4dFZ6?= =?us-ascii?q?h5rFFFDKXd9Roi1sdRQ7oERX8HdjSW0z1Vrlahmz734TD/K0mAA5ihdma+Q36D?= =?us-ascii?q?js+0s3JkbNpCYojUYxntPlgTaMfzHvKKewXJpbBDDquEgrNZP3WQF1bRe9nUZ8?= =?us-ascii?q?LjfLW6pRj6d8dWBskALTpIFAGeBdTaJZex8d3uuYZ+8y0VRbpCSn3lFI6vfYCZ?= =?us-ascii?q?t4lQsqbZ6to2hG2w19cN4/PbbQK7ZRzlhMmqKOuTel1u4rwAAAOkkN63mdeCgU?= =?us-ascii?q?uEwPLbkrPDCn8fBp6QCYnDtDYmcMXeIwov127kM9J/iAzyX43r5HLUCxLfKQL6?= =?us-ascii?q?WYumjHjsOITVUw1l4Sm0lC57h23t8pc1CIWEA30LuRCxMJONLZKQ5La8pS9X7T?= =?us-ascii?q?fTuBsOjW3Z11OIC9GfzyQu+VqKYYmESkExg1H44U9MQOAoGs0F3ELcfgNLMFyg?= =?us-ascii?q?8t5QTxK1WDEPRJeAmGkDgAo8Gn0JB7x49dKS8BAW9lKyW4+q7XphM2gPqERNo2?= =?us-ascii?q?fnYaXo4DNnIqWM27mzVUsGlBDDi3yO0W0xKO7zniqSTMFDP8dcZsZO+IZRNwD9?= =?us-ascii?q?G74TU/86+ohl7Z7JrePXr3NdV8tdDR9+wWvZGHC+lbTbNlqUfTh5FYR2C2U27I?= =?us-ascii?q?CdO6PZzwa4gwYtPqEnm6V1y+izQyT8f3JtmgNbOHgQDySoZSqYWb0i0jOdW7Fj?= =?us-ascii?q?4ABxd6v/sD675kZQ0ff5o7ZgbluB8gOKy5OwqXyMihQ3izJjtMVPlQ1/+6ZrxN?= =?us-ascii?q?wyordO+6x2MqTosmwOmv7U4NWJYKgwnRxfa+ZoleVSzzFWJYewjUuCU2iXNuNu?= =?us-ascii?q?cozec52h/ItkMcMz+TfuxzdGNEp808BU+VIXhuEGo4QV6cgpbD4g6r27AS5DNT?= =?us-ascii?q?kc9J3+NfrHXwuYTSby6rWKyutZraqTEgbcQ8r613L4PjPtOMtInCkTzHUJnQrg?= =?us-ascii?q?qFXTagF/VHh9ddOy1YQPxHmG0/P8wJp5ZB41IrVsgiP7xPFLUspreyZDV4Dy4d?= =?us-ascii?q?1zMWWpic0zwFhue837ramQmKcJQ+LhMLrJVCjsEaUy5sbSMUvLWjWJnOl2+YVm?= =?us-ascii?q?gLJx8e7R5W6wIakY9/Zfvo4JbSTJBW1T5ZvfZ0UirNFpln81v7S26WgVjkSPWv?= =?us-ascii?q?ieOpxwdSwOjq0tYFRB51EVJdyPpOlks0NLF3LLEdv47QvT+Tb0z6uWPtyO29KV?= =?us-ascii?q?lQ1c3bbUb4A5bfumbmVC0T52EUT5dVyH7DDZQSjxZ5aKEzqVRCOoypZkb+5z0h?= =?us-ascii?q?x4RoBba4Vtumx1c7onkYWSimCd1BC/tpsFjPQj1qf4irqIn5O5VVWmJf4oedq0?= =?us-ascii?q?pfkEl3MC600ptcK8BM4j4QRzdDuzOds8WuSMdbw895E4cMIstju3f6AK5EN4KR?= =?us-ascii?q?rGcwurzz0XLZ+jc8sVm8xDWvG6+3UeNZ/2sCGgo3PWSSsE8vAPUw8m3K6FDCrk?= =?us-ascii?q?h0//tHBriIlUhxvDF9HpVVCzZVyXylKk98QGNAs+pENKTfa9ZcTOUqZR+zJxw+?= =?us-ascii?q?EuYr30yT8kFuh3j5ZzF9uxBH9C/DRwk0TTcagrPzlj0EsM2nPiUaS51QZzU7cy?= =?us-ascii?q?jFMx6bmTxQvBtHaUFqXI4WD81Y9L4Fxotb4NDCSVqyJi4YRhBiMBw30eZHn05Z?= =?us-ascii?q?rEqYYTzdDRavdfvXqRJ3c9ueoNKrIfjk8gpKkZ/osOc996ofXXKmghGtTcrYr4?= =?us-ascii?q?Diqt2ArlGOe7vgM+2gfX/BSyDBjQquirg5D5nF5TTTPRFfK5l913orf4btBnLM?= =?us-ascii?q?PRtbOa0XPUxbWr5mad9euOBVe9dkeLoV+a9qHh+HXgjvGJC1o/ZbMlbeXi/eLy?= =?us-ascii?q?Kc8uylvY3c87rdSfT6ZsOWw3bLWaV3Po116TPjAbflzZde+lbq2vdq7k56VULG?= =?us-ascii?q?PD6fo9v8PQ4L+c2idlf4vpIzAzPWAZBwkH7zyUFcbcYXRDeq8JsAwpND9HnwUf?= =?us-ascii?q?540lT0sOBK6rZk75M47qt0xseyP6jeM/NasVVoAhKMHAVl6o0tAHRjR2BWeuIR?= =?us-ascii?q?Ku3efb4ejcD1r+D4DbIX5QaQ++xEbdvHO0DBldW+Cj6GTxxEhx0NqTkALguTz/?= =?us-ascii?q?SFgbN7Sd65pejl3UIg+1q+IQQAzLBj/4eE/beHq/HMYhvN17cEXLPqRsTporQq?= =?us-ascii?q?pUyS+eUulKQSdWxtfw2nDO8dW9Ybxmfk1q0qzCQsE8bZE7Lh/v5DWWg5kSj7m5?= =?us-ascii?q?BhBVUWB+8bHaaW/YREgGg0gevZNscZcqpagGaACQakEqMeyX6s8yaXJmhljQ3J?= =?us-ascii?q?0xH0W2yz90X6rS5/QSvL1NfjiVFYVry4CEZdRSapPlV4sDyXNgryqNX3obg17F?= =?us-ascii?q?0xMmH8qN2Cjm+hN61MH83jJN2cJjI5pEkLg50wWNOv35wbGdunL9sL9nFxcOfe?= =?us-ascii?q?4XuxkyBdu6dHm5be4saN9/XTBnmgiq2Xpq6DxD9G13c4uks/5cq4NvHU4N2KQe?= =?us-ascii?q?qn2HoNTytlvAvBRRG1oKTBr18IIUyLzFvLmIsSM9Fc2Xk3yETm5O89T9I37whe?= =?us-ascii?q?GZjPZ/QZpTDrIjT03VefbMgzVimf1TtXAkz6EV18GKg912L/osTJmmvO9FEyQI?= =?us-ascii?q?l/aVDnjwRtD4okMUIt9EQXwi0bHAgPaBCbCaqlBUH7IooES0cDcxWH3L61eqst?= =?us-ascii?q?20183K+v7vfJbeNgH6oNKupdjgmWkVhaG5MZq7cRT65ndl9G6qHXuhbtBJT9U/?= =?us-ascii?q?jhj3owOuW/QtpG/sABq3si/gG/SgK75pdC9LYahoqHdqxFYZjQpMBz9Vpn5ToU?= =?us-ascii?q?eyNRhxhwkg22XvoBpOD55djbqoCn5vypVKY3SOUd7wI0CHhmj5vsnFAjpsna1/?= =?us-ascii?q?9GRY3JlYv/8A5MI3mQuIbZyhV8MvQBK4aqfLZm6nUGKDMTJ2oUMtqKd/Y84yFs?= =?us-ascii?q?MDLJ51xBGM8MZs0XPNDLmQ9Kjk3lQrZT9tDUGlWAEYd8a9go73bryDAy6ZY8Tv?= =?us-ascii?q?zg5yGyJZ/F6VFCIehOgzhtlNLNpegV3eDdCDMN7nmDdhh52CWCxIeRC/zo5+WD?= =?us-ascii?q?1MnUV08aHi4xS4pdKyCN+Ra5SeqplJXkSQeU6s7vgJ0gdEKfXGGxnL8fvqZKD+?= =?us-ascii?q?FAlj3x3iJCGYDtm/KVr92s5XNYtlJZFoZz8RrFGKJYMpVgJxv4ksirRk5hBirw?= =?us-ascii?q?Y8zUcgQhuPCWx+gW+el+MVXxZZMDKBIe17368WZVThdpSLPuu1aZWuQRZMdpSP?= =?us-ascii?q?zatX1V7INgJLUJPFeDuJzroDBIqEo1AA8ycrMwqCJVdlXWlg1PR6n0oKIAihcb?= =?us-ascii?q?UdNhtk9DBXmwOHkn6zTaWqpbiqiRCPoI8jScVaEOXEBoPTl4QxyrwplufKGpnf?= =?us-ascii?q?9fuGNcgix9uOQq0yBhRBakuy3soKIN2TQ69L6ktDUBvWFFQfifkifJD1VD1/cK?= =?us-ascii?q?jaYHBnb86Fy8fmMMbI/v77lmP8jg85cu42gnaxU5YyIGRfigCz33j66QA4yPrs?= =?us-ascii?q?hThBiWtcXKcL+8MCkSNrMmyR75QHh9yAfelg5y8GQXWjWg8MMkJIKlNMYn2CWo?= =?us-ascii?q?F2bbdFIX76JHqsTxs0AETPcsZVNn3mpjztCNRjcRS8zXB2Y1kg8kZH1LcJJH7h?= =?us-ascii?q?8bGbcngjKMvqRd5QEUZzHUEoW59YXKm8fHx2U9R89wxm3Kvq2Fmo8q0Hp9ltN2?= =?us-ascii?q?7i6PuGwSd+vcU89tHnj8yJxSyen/Z/WxqOAIVpFqyLO7UP8NKsOj43e52I12Wk?= =?us-ascii?q?+5wbQTB0a5MO4GxrrATyelSHGXWeeVfGiIhTo5NFD95QWwJF0tdMhKt1M9MvfF?= =?us-ascii?q?hpNEkg3hULB0RiaXpVLAzmwsK+AadwUwuIi5fQwGVugRaPaAJeI22v0xFEMMb2?= =?us-ascii?q?PVHStxE+K5qkCinI5nO3h7+kX6ZePt8hz6MNuMBBYLDJTWrplr+fy1XmiBI2Nv?= =?us-ascii?q?zAVuPElo8OfSD0wxtuhYc5mLh9jRidN70eoLd/p2NC09vdkTmpl95oaIyseKdg?= =?us-ascii?q?rRzo3zJdHTrfiUGfrfz14lemtCSLoWfRv155kmPt4+Q7DTE6VWvRAdBagiXpMs?= =?us-ascii?q?LGbw9KBxLAN2bAHRfrC0jdfwquKMfJtUqGfc7kgsIyfEpx0D1vu0QBR7b5C2h3?= =?us-ascii?q?XyJ5UwSShar9B2DxtmHZdPG9keoAa9BJ6Ugq67gcer+0xmo+8KrbbwCvfS2dW3?= =?us-ascii?q?x4VxRZla6lCVMzvKAalrg1hljv6sjfva1ZnxE8zic8seVOdnWm7FdqPGHoKnJz?= =?us-ascii?q?KJPsLzZVVL86aY0L1jSRWReCH5ULaatC2+Kvpr/183yopmc+rP1DYt9a3U2MPu?= =?us-ascii?q?Z2FHoSeutXqJNJpZ7FzXCu3SRhZUSfue8GZ5Bq0ador0+/0IMdwl2tSc5BNz7D?= =?us-ascii?q?ta2sufP6ehtlPM2l58dZ/DN0vmxSI5WYgMIBSiPkoghmDXqmjdAXtCNMirN9Ft?= =?us-ascii?q?j8yOAxzu+UZxg2ctaXBFGmXzWNeRNnIX28WkZA2F7AhLFcoMn/areU4ksa2/Ue?= =?us-ascii?q?1oOpRemeW2r7gGkM9pKyfVS8RAOSHfMqN2NCJLDurTvFgofgIEs78tV4cwf5eB?= =?us-ascii?q?PEMHMEaGySP11gbCz0z0d9qy26aNISYW9GhHzr3f3ThLvQm5tu6Tgtf/X7DBcJ?= =?us-ascii?q?H2QPnSPTInVj6ARjQyFl2m9Ey5u/oCoPqYIWAfok0bYiKSFA4fvKZvosbMDmXL?= =?us-ascii?q?g+1sYIUKhOyGWyD3UCB3j7E9CiFPtUCNWPoDCRLWY2X6gGVCpAOuPORM8mzhb7?= =?us-ascii?q?2ZwKpVRuMXD5BQffyZWdvYZOteKy0mlzoDJOa8ZNrcr7Aj3lLPV2sZHLHC9EeC?= =?us-ascii?q?Q06OXvyc2zXrUJ0av4cuoSUo4NPQkTFzE6nTIbafoySh8pW5jCaFo+HeUHciY1?= =?us-ascii?q?AtiuIYHGaB2AVAKH0DC9wNukHtR6mAZ1xW1HIokuJjwBkMdx52UnJw031ahvG9?= =?us-ascii?q?GtdWSVQMlmOhXOUGbExrDDM35UKF/A/yYdsAucDVXG9e8b0MRJESLPky9YnXJr?= =?us-ascii?q?UfwOwz0DJgviM6rz2XD0lBgQKd76rQAKV8y6VZ5Wk2+vF5QkCCTjDEf2jZ1IWm?= =?us-ascii?q?EcNPxCZpoXDizcbUuP5iNKdCrYFjHFgKGT52Jsza/T1ZU2H03w2yvxKgETSbPj?= =?us-ascii?q?0W/TgLJSsfdulp0eB3qhDIecjd6RDYi6V0s0avCACWGpKoyZdLDYfvzgz+Zi5V?= =?us-ascii?q?IhuxEJUjkepAjNYfZ+scYIG6B13QZlzlAhmwpzEH9B+spK+iS8VN3DNNwe0XNN?= =?us-ascii?q?j1UtxSXpHi1zZiziMNmpc=3D?= X-IPAS-Result: =?us-ascii?q?A2FgCgDopT1Y/wHyM5BdGwEBAQMBAQEJAQEBFQEBAQECAQE?= =?us-ascii?q?BAQgBAQEBgw0BAQEBARUKWHMQAbE5iWQ/IQ+FK4I3UwEBAQEBAQEBAgECXyiCM?= =?us-ascii?q?xoJBD0NLgEBAQEBAQEBAQEBAQEBAQEaAg1lAhcNExQgCwMDCQIXKQgIAwEtFR8?= =?us-ascii?q?LBRgEiEwOrjY9KgKLKQEkjzQRAYJoC4MKBYhahhh8imeGSIo+AoI/h12GEgKRf?= =?us-ascii?q?VVhFwIRDCKDNxyBe1QBAQGFXIIuAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 29 Nov 2016 16:03:48 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id uATG2ZRh016520; Tue, 29 Nov 2016 11:02:50 -0500 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id uATG2WeP097459 for ; Tue, 29 Nov 2016 11:02:32 -0500 Received: from moss-pluto.infosec.tycho.ncsc.mil (moss-pluto [192.168.25.131]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id uATG2WLn016498; Tue, 29 Nov 2016 11:02:32 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov Subject: [PATCH] libsepol: do not #include Date: Tue, 29 Nov 2016 11:05:32 -0500 Message-Id: <1480435532-24959-1-git-send-email-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Cc: Stephen Smalley MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP ratbert90 submitted this patch via https://github.com/SELinuxProject/selinux/issues/19. Apparently musl does not provide sys/cdefs.h, see http://wiki.musl-libc.org/wiki/FAQ#Q:_I.27m_trying_to_compile_something_against_musl_and_I_get_error_messages_about_sys.2Fcdefs.h. Signed-off-by: Stephen Smalley --- libsepol/include/sepol/boolean_record.h | 10 +++++++--- libsepol/include/sepol/booleans.h | 10 +++++++--- libsepol/include/sepol/context.h | 10 +++++++--- libsepol/include/sepol/context_record.h | 10 +++++++--- libsepol/include/sepol/debug.h | 10 +++++++--- libsepol/include/sepol/errcodes.h | 10 +++++++--- libsepol/include/sepol/handle.h | 11 +++++++---- libsepol/include/sepol/iface_record.h | 10 +++++++--- libsepol/include/sepol/interfaces.h | 10 +++++++--- libsepol/include/sepol/module.h | 10 +++++++--- libsepol/include/sepol/node_record.h | 10 +++++++--- libsepol/include/sepol/nodes.h | 10 +++++++--- libsepol/include/sepol/policydb.h | 10 +++++++--- libsepol/include/sepol/policydb/avrule_block.h | 10 +++++++--- libsepol/include/sepol/policydb/avtab.h | 10 +++++++--- libsepol/include/sepol/policydb/conditional.h | 10 +++++++--- libsepol/include/sepol/policydb/constraint.h | 9 +++++++-- libsepol/include/sepol/policydb/context.h | 9 +++++++-- libsepol/include/sepol/policydb/ebitmap.h | 10 +++++++--- libsepol/include/sepol/policydb/expand.h | 10 +++++++--- libsepol/include/sepol/policydb/flask_types.h | 10 +++++++--- libsepol/include/sepol/policydb/hashtab.h | 10 +++++++--- libsepol/include/sepol/policydb/hierarchy.h | 10 +++++++--- libsepol/include/sepol/policydb/link.h | 10 +++++++--- libsepol/include/sepol/policydb/mls_types.h | 10 +++++++--- libsepol/include/sepol/policydb/module.h | 10 +++++++--- libsepol/include/sepol/policydb/polcaps.h | 11 +++++++---- libsepol/include/sepol/policydb/policydb.h | 10 +++++++--- libsepol/include/sepol/policydb/services.h | 10 +++++++--- libsepol/include/sepol/policydb/sidtab.h | 10 +++++++--- libsepol/include/sepol/policydb/symtab.h | 10 +++++++--- libsepol/include/sepol/policydb/util.h | 11 +++++++---- libsepol/include/sepol/port_record.h | 10 +++++++--- libsepol/include/sepol/ports.h | 10 +++++++--- libsepol/include/sepol/roles.h | 11 +++++++---- libsepol/include/sepol/sepol.h | 10 +++++++--- libsepol/include/sepol/user_record.h | 10 +++++++--- libsepol/include/sepol/users.h | 10 +++++++--- 38 files changed, 266 insertions(+), 116 deletions(-) diff --git a/libsepol/include/sepol/boolean_record.h b/libsepol/include/sepol/boolean_record.h index 9af16be..09cd01f 100644 --- a/libsepol/include/sepol/boolean_record.h +++ b/libsepol/include/sepol/boolean_record.h @@ -3,9 +3,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_bool; struct sepol_bool_key; @@ -51,5 +52,8 @@ extern int sepol_bool_clone(sepol_handle_t * handle, extern void sepol_bool_free(sepol_bool_t * boolean); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/booleans.h b/libsepol/include/sepol/booleans.h index 7374dde..02356d1 100644 --- a/libsepol/include/sepol/booleans.h +++ b/libsepol/include/sepol/booleans.h @@ -5,9 +5,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /*--------------compatibility--------------*/ @@ -59,5 +60,8 @@ extern int sepol_bool_iterate(sepol_handle_t * handle, int (*fn) (const sepol_bool_t * boolean, void *fn_arg), void *arg); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/context.h b/libsepol/include/sepol/context.h index a69e8c9..b3e5497 100644 --- a/libsepol/include/sepol/context.h +++ b/libsepol/include/sepol/context.h @@ -4,9 +4,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* -- Deprecated -- */ @@ -26,5 +27,8 @@ extern int sepol_mls_contains(sepol_handle_t * handle, extern int sepol_mls_check(sepol_handle_t * handle, const sepol_policydb_t * policydb, const char *mls); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/context_record.h b/libsepol/include/sepol/context_record.h index c07da8f..1dcbebb 100644 --- a/libsepol/include/sepol/context_record.h +++ b/libsepol/include/sepol/context_record.h @@ -2,9 +2,10 @@ #define _SEPOL_CONTEXT_RECORD_H_ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_context; typedef struct sepol_context sepol_context_t; @@ -53,5 +54,8 @@ extern int sepol_context_from_string(sepol_handle_t * handle, extern int sepol_context_to_string(sepol_handle_t * handle, const sepol_context_t * con, char **str_ptr); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/debug.h b/libsepol/include/sepol/debug.h index b852c8d..972a4de 100644 --- a/libsepol/include/sepol/debug.h +++ b/libsepol/include/sepol/debug.h @@ -2,9 +2,10 @@ #define _SEPOL_DEBUG_H_ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* Deprecated */ extern void sepol_debug(int on); @@ -35,5 +36,8 @@ extern void sepol_msg_set_callback(sepol_handle_t * handle, const char *fmt, ...), void *msg_callback_arg); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/errcodes.h b/libsepol/include/sepol/errcodes.h index eba7088..0136564 100644 --- a/libsepol/include/sepol/errcodes.h +++ b/libsepol/include/sepol/errcodes.h @@ -4,9 +4,10 @@ #define __sepol_errno_h__ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif #define SEPOL_OK 0 @@ -25,5 +26,8 @@ __BEGIN_DECLS #define SEPOL_EEXIST -EEXIST #define SEPOL_ENOENT -ENOENT -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/handle.h b/libsepol/include/sepol/handle.h index 00ed0ed..27cbd6c 100644 --- a/libsepol/include/sepol/handle.h +++ b/libsepol/include/sepol/handle.h @@ -1,9 +1,9 @@ #ifndef _SEPOL_HANDLE_H_ #define _SEPOL_HANDLE_H_ -#include - -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_handle; typedef struct sepol_handle sepol_handle_t; @@ -35,5 +35,8 @@ int sepol_get_preserve_tunables(sepol_handle_t * sh); * 0 is default and discard such branch, 1 preserves them */ void sepol_set_preserve_tunables(sepol_handle_t * sh, int preserve_tunables); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/iface_record.h b/libsepol/include/sepol/iface_record.h index 81d7027..098bc77 100644 --- a/libsepol/include/sepol/iface_record.h +++ b/libsepol/include/sepol/iface_record.h @@ -3,9 +3,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_iface; struct sepol_iface_key; @@ -59,5 +60,8 @@ extern int sepol_iface_clone(sepol_handle_t * handle, extern void sepol_iface_free(sepol_iface_t * iface); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/interfaces.h b/libsepol/include/sepol/interfaces.h index 3cb5043..7ef23ce 100644 --- a/libsepol/include/sepol/interfaces.h +++ b/libsepol/include/sepol/interfaces.h @@ -4,9 +4,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* Return the number of interfaces */ extern int sepol_iface_count(sepol_handle_t * handle, @@ -43,5 +44,8 @@ extern int sepol_iface_iterate(sepol_handle_t * handle, int (*fn) (const sepol_iface_t * iface, void *fn_arg), void *arg); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/module.h b/libsepol/include/sepol/module.h index ff27f96..0d34dab 100644 --- a/libsepol/include/sepol/module.h +++ b/libsepol/include/sepol/module.h @@ -7,9 +7,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_module_package; typedef struct sepol_module_package sepol_module_package_t; @@ -82,5 +83,8 @@ extern int sepol_expand_module(sepol_handle_t * handle, sepol_policydb_t * base, sepol_policydb_t * out, int verbose, int check); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/node_record.h b/libsepol/include/sepol/node_record.h index e2d3e6d..3873223 100644 --- a/libsepol/include/sepol/node_record.h +++ b/libsepol/include/sepol/node_record.h @@ -4,9 +4,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_node; struct sepol_node_key; @@ -92,5 +93,8 @@ extern int sepol_node_clone(sepol_handle_t * handle, extern void sepol_node_free(sepol_node_t * node); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/nodes.h b/libsepol/include/sepol/nodes.h index 6fa534e..3cf99d2 100644 --- a/libsepol/include/sepol/nodes.h +++ b/libsepol/include/sepol/nodes.h @@ -4,9 +4,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* Return the number of nodes */ extern int sepol_node_count(sepol_handle_t * handle, @@ -40,5 +41,8 @@ extern int sepol_node_iterate(sepol_handle_t * handle, int (*fn) (const sepol_node_t * node, void *fn_arg), void *arg); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb.h b/libsepol/include/sepol/policydb.h index c3943e9..6769b91 100644 --- a/libsepol/include/sepol/policydb.h +++ b/libsepol/include/sepol/policydb.h @@ -5,9 +5,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_policy_file; typedef struct sepol_policy_file sepol_policy_file_t; @@ -144,5 +145,8 @@ extern int sepol_policydb_mls_enabled(const sepol_policydb_t * p); */ extern int sepol_policydb_compat_net(const sepol_policydb_t * p); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/avrule_block.h b/libsepol/include/sepol/policydb/avrule_block.h index ecd347b..27047d4 100644 --- a/libsepol/include/sepol/policydb/avrule_block.h +++ b/libsepol/include/sepol/policydb/avrule_block.h @@ -21,9 +21,10 @@ #define _SEPOL_AVRULE_BLOCK_H_ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif extern avrule_block_t *avrule_block_create(void); extern void avrule_block_destroy(avrule_block_t * x); @@ -37,5 +38,8 @@ extern cond_list_t *get_decl_cond_list(policydb_t * p, extern int is_id_enabled(char *id, policydb_t * p, int symbol_table); extern int is_perm_enabled(char *class_id, char *perm_id, policydb_t * p); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/avtab.h b/libsepol/include/sepol/policydb/avtab.h index d3ea84e..958848e 100644 --- a/libsepol/include/sepol/policydb/avtab.h +++ b/libsepol/include/sepol/policydb/avtab.h @@ -40,11 +40,12 @@ #ifndef _SEPOL_POLICYDB_AVTAB_H_ #define _SEPOL_POLICYDB_AVTAB_H_ -#include #include #include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif typedef struct avtab_key { uint16_t source_type; @@ -142,7 +143,10 @@ extern avtab_ptr_t avtab_search_node_next(avtab_ptr_t node, int specified); /* avtab_alloc uses one bucket per 2-4 elements, so adjust to get maximum buckets */ #define MAX_AVTAB_SIZE (MAX_AVTAB_HASH_BUCKETS << 1) -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _AVTAB_H_ */ /* FLASK */ diff --git a/libsepol/include/sepol/policydb/conditional.h b/libsepol/include/sepol/policydb/conditional.h index cd2a9a9..9c3df3e 100644 --- a/libsepol/include/sepol/policydb/conditional.h +++ b/libsepol/include/sepol/policydb/conditional.h @@ -25,9 +25,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif #define COND_EXPR_MAXDEPTH 10 @@ -136,5 +137,8 @@ extern int cond_read_list(policydb_t * p, cond_list_t ** list, void *fp); extern void cond_compute_av(avtab_t * ctab, avtab_key_t * key, struct sepol_av_decision *avd); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _CONDITIONAL_H_ */ diff --git a/libsepol/include/sepol/policydb/constraint.h b/libsepol/include/sepol/policydb/constraint.h index ae7034d..927bdc0 100644 --- a/libsepol/include/sepol/policydb/constraint.h +++ b/libsepol/include/sepol/policydb/constraint.h @@ -22,7 +22,9 @@ #include #include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif #define CEXPR_MAXDEPTH 5 @@ -73,7 +75,10 @@ struct policydb; extern int constraint_expr_init(constraint_expr_t * expr); extern void constraint_expr_destroy(constraint_expr_t * expr); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _CONSTRAINT_H_ */ /* FLASK */ diff --git a/libsepol/include/sepol/policydb/context.h b/libsepol/include/sepol/policydb/context.h index c844c37..2eaa686 100644 --- a/libsepol/include/sepol/policydb/context.h +++ b/libsepol/include/sepol/policydb/context.h @@ -22,7 +22,9 @@ #include #include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* * A security context consists of an authenticated user @@ -135,5 +137,8 @@ static inline int context_cmp(context_struct_t * c1, context_struct_t * c2) (c1->type == c2->type) && mls_context_cmp(c1, c2)); } -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/ebitmap.h b/libsepol/include/sepol/policydb/ebitmap.h index 7b3508d..e90371e 100644 --- a/libsepol/include/sepol/policydb/ebitmap.h +++ b/libsepol/include/sepol/policydb/ebitmap.h @@ -19,9 +19,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif #define MAPTYPE uint64_t /* portion of bitmap in each node */ #define MAPSIZE (sizeof(MAPTYPE) * 8) /* number of bits in node bitmap */ @@ -92,7 +93,10 @@ extern int ebitmap_set_bit(ebitmap_t * e, unsigned int bit, int value); extern void ebitmap_destroy(ebitmap_t * e); extern int ebitmap_read(ebitmap_t * e, void *fp); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _EBITMAP_H_ */ /* FLASK */ diff --git a/libsepol/include/sepol/policydb/expand.h b/libsepol/include/sepol/policydb/expand.h index a8de41e..0410d14 100644 --- a/libsepol/include/sepol/policydb/expand.h +++ b/libsepol/include/sepol/policydb/expand.h @@ -28,9 +28,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* * Expand only the avrules for a module. It is valid for this function @@ -79,5 +80,8 @@ extern int expand_avtab(policydb_t * p, avtab_t * a, avtab_t * expa); extern int expand_cond_av_list(policydb_t * p, cond_av_list_t * l, cond_av_list_t ** newl, avtab_t * expa); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/flask_types.h b/libsepol/include/sepol/policydb/flask_types.h index 2a59565..e01669c 100644 --- a/libsepol/include/sepol/policydb/flask_types.h +++ b/libsepol/include/sepol/policydb/flask_types.h @@ -13,9 +13,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* * A security context is a set of security attributes @@ -61,5 +62,8 @@ struct sepol_av_decision { uint32_t seqno; }; -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/hashtab.h b/libsepol/include/sepol/policydb/hashtab.h index 0afc59c..df49258 100644 --- a/libsepol/include/sepol/policydb/hashtab.h +++ b/libsepol/include/sepol/policydb/hashtab.h @@ -17,9 +17,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif typedef char *hashtab_key_t; /* generic key type */ typedef void *hashtab_datum_t; /* generic datum type */ @@ -136,5 +137,8 @@ extern void hashtab_map_remove_on_error(hashtab_t h, extern void hashtab_hash_eval(hashtab_t h, char *tag); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/hierarchy.h b/libsepol/include/sepol/policydb/hierarchy.h index 88bc02e..eff101f 100644 --- a/libsepol/include/sepol/policydb/hierarchy.h +++ b/libsepol/include/sepol/policydb/hierarchy.h @@ -27,9 +27,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif extern int hierarchy_add_bounds(sepol_handle_t *handle, policydb_t *p); @@ -43,5 +44,8 @@ extern int bounds_check_types(sepol_handle_t *handle, policydb_t *p); extern int hierarchy_check_constraints(sepol_handle_t * handle, policydb_t * p); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/link.h b/libsepol/include/sepol/policydb/link.h index 7c7c9be..3ef8f1d 100644 --- a/libsepol/include/sepol/policydb/link.h +++ b/libsepol/include/sepol/policydb/link.h @@ -12,13 +12,17 @@ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif extern int link_modules(sepol_handle_t * handle, policydb_t * b, policydb_t ** mods, int len, int verbose); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/mls_types.h b/libsepol/include/sepol/policydb/mls_types.h index 4bf7367..568386c 100644 --- a/libsepol/include/sepol/policydb/mls_types.h +++ b/libsepol/include/sepol/policydb/mls_types.h @@ -34,9 +34,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif typedef struct mls_level { uint32_t sens; /* sensitivity */ @@ -152,5 +153,8 @@ extern void mls_semantic_range_init(mls_semantic_range_t *r); extern void mls_semantic_range_destroy(mls_semantic_range_t *r); extern int mls_semantic_range_cpy(mls_semantic_range_t *dst, mls_semantic_range_t *src); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/module.h b/libsepol/include/sepol/policydb/module.h index 3fe560c..d0d2c7a 100644 --- a/libsepol/include/sepol/policydb/module.h +++ b/libsepol/include/sepol/policydb/module.h @@ -27,11 +27,12 @@ #include #include -#include #define SEPOL_MODULE_PACKAGE_MAGIC 0xf97cff8f -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_module_package { sepol_policydb_t *policy; @@ -48,5 +49,8 @@ struct sepol_module_package { extern int sepol_module_package_init(sepol_module_package_t * p); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/polcaps.h b/libsepol/include/sepol/policydb/polcaps.h index 74b7c9e..53d7994 100644 --- a/libsepol/include/sepol/policydb/polcaps.h +++ b/libsepol/include/sepol/policydb/polcaps.h @@ -1,9 +1,9 @@ #ifndef _SEPOL_POLICYDB_POLCAPS_H_ #define _SEPOL_POLICYDB_POLCAPS_H_ -#include - -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* Policy capabilities */ enum { @@ -21,5 +21,8 @@ extern int sepol_polcap_getnum(const char *name); /* Convert a capability number to name. */ extern const char *sepol_polcap_getname(int capnum); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _SEPOL_POLICYDB_POLCAPS_H_ */ diff --git a/libsepol/include/sepol/policydb/policydb.h b/libsepol/include/sepol/policydb/policydb.h index 31cdd76..4336a3f 100644 --- a/libsepol/include/sepol/policydb/policydb.h +++ b/libsepol/include/sepol/policydb/policydb.h @@ -61,7 +61,6 @@ #include #include #include -#include #define ERRMSG_LEN 1024 @@ -69,7 +68,9 @@ #define POLICYDB_ERROR -1 #define POLICYDB_UNSUPPORTED -2 -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* * A datum type is defined for each kind of symbol @@ -776,7 +777,10 @@ extern int policydb_set_target_platform(policydb_t *p, int platform); #define POLICYDB_MOD_MAGIC SELINUX_MOD_MAGIC #define POLICYDB_MOD_STRING "SE Linux Module" -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _POLICYDB_H_ */ /* FLASK */ diff --git a/libsepol/include/sepol/policydb/services.h b/libsepol/include/sepol/policydb/services.h index 8a5dc9a..29f57cf 100644 --- a/libsepol/include/sepol/policydb/services.h +++ b/libsepol/include/sepol/policydb/services.h @@ -15,9 +15,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* Set the policydb and sidtab structures to be used by the service functions. If not set, then these default @@ -230,5 +231,8 @@ extern int sepol_genfs_sid(const char *fstype, /* IN */ sepol_security_class_t sclass, /* IN */ sepol_security_id_t * sid); /* OUT */ -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/policydb/sidtab.h b/libsepol/include/sepol/policydb/sidtab.h index 4b93567..2df1a50 100644 --- a/libsepol/include/sepol/policydb/sidtab.h +++ b/libsepol/include/sepol/policydb/sidtab.h @@ -11,9 +11,10 @@ #define _SEPOL_POLICYDB_SIDTAB_H_ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif typedef struct sidtab_node { sepol_security_id_t sid; /* security identifier */ @@ -69,7 +70,10 @@ extern void sepol_sidtab_set(sidtab_t * dst, sidtab_t * src); extern void sepol_sidtab_shutdown(sidtab_t * s); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _SIDTAB_H_ */ /* FLASK */ diff --git a/libsepol/include/sepol/policydb/symtab.h b/libsepol/include/sepol/policydb/symtab.h index e0da337..68b5ad4 100644 --- a/libsepol/include/sepol/policydb/symtab.h +++ b/libsepol/include/sepol/policydb/symtab.h @@ -14,9 +14,10 @@ #define _SEPOL_POLICYDB_SYMTAB_H_ #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* The symtab_datum struct stores the common information for * all symtab datums. It should the first element in every @@ -37,7 +38,10 @@ typedef struct { extern int symtab_init(symtab_t *, unsigned int size); extern void symtab_destroy(symtab_t *); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif /* _SYMTAB_H_ */ /* FLASK */ diff --git a/libsepol/include/sepol/policydb/util.h b/libsepol/include/sepol/policydb/util.h index fa12661..ee236a2 100644 --- a/libsepol/include/sepol/policydb/util.h +++ b/libsepol/include/sepol/policydb/util.h @@ -23,9 +23,9 @@ #ifndef __SEPOL_UTIL_H__ #define __SEPOL_UTIL_H__ -#include - -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif extern int add_i_to_a(uint32_t i, uint32_t * cnt, uint32_t ** a); @@ -40,5 +40,8 @@ char *sepol_extended_perms_to_string(avtab_extended_perms_t *xperms); */ extern int tokenize(char *line_buf, char delim, int num_args, ...); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/port_record.h b/libsepol/include/sepol/port_record.h index c07d1fa..df04ea0 100644 --- a/libsepol/include/sepol/port_record.h +++ b/libsepol/include/sepol/port_record.h @@ -3,9 +3,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_port; struct sepol_port_key; @@ -67,5 +68,8 @@ extern int sepol_port_clone(sepol_handle_t * handle, extern void sepol_port_free(sepol_port_t * port); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/ports.h b/libsepol/include/sepol/ports.h index b4622ba..cda246c 100644 --- a/libsepol/include/sepol/ports.h +++ b/libsepol/include/sepol/ports.h @@ -4,9 +4,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /* Return the number of ports */ extern int sepol_port_count(sepol_handle_t * handle, @@ -40,5 +41,8 @@ extern int sepol_port_iterate(sepol_handle_t * handle, int (*fn) (const sepol_port_t * port, void *fn_arg), void *arg); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/roles.h b/libsepol/include/sepol/roles.h index 89b3af2..e750078 100644 --- a/libsepol/include/sepol/roles.h +++ b/libsepol/include/sepol/roles.h @@ -1,9 +1,9 @@ #ifndef _SEPOL_ROLES_H_ #define _SEPOL_ROLES_H_ -#include - -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif extern int sepol_role_exists(const sepol_policydb_t * policydb, const char *role, int *response); @@ -11,5 +11,8 @@ extern int sepol_role_exists(const sepol_policydb_t * policydb, extern int sepol_role_list(const sepol_policydb_t * policydb, char ***roles, unsigned int *nroles); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/sepol.h b/libsepol/include/sepol/sepol.h index 00a2129..513f77d 100644 --- a/libsepol/include/sepol/sepol.h +++ b/libsepol/include/sepol/sepol.h @@ -3,9 +3,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif #include #include @@ -28,5 +29,8 @@ __BEGIN_DECLS /* Set internal policydb from a file for subsequent service calls. */ extern int sepol_set_policydb_from_file(FILE * fp); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/user_record.h b/libsepol/include/sepol/user_record.h index 9a39526..d17a3db 100644 --- a/libsepol/include/sepol/user_record.h +++ b/libsepol/include/sepol/user_record.h @@ -3,9 +3,10 @@ #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif struct sepol_user; struct sepol_user_key; @@ -76,5 +77,8 @@ extern int sepol_user_clone(sepol_handle_t * handle, extern void sepol_user_free(sepol_user_t * user); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif diff --git a/libsepol/include/sepol/users.h b/libsepol/include/sepol/users.h index 0e0f76e..ad23f89 100644 --- a/libsepol/include/sepol/users.h +++ b/libsepol/include/sepol/users.h @@ -5,9 +5,10 @@ #include #include #include -#include -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /*---------compatibility------------*/ @@ -57,5 +58,8 @@ extern int sepol_user_iterate(sepol_handle_t * handle, int (*fn) (const sepol_user_t * user, void *fn_arg), void *arg); -__END_DECLS +#ifdef __cplusplus +} +#endif + #endif