From patchwork Fri Oct 13 07:39:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Storm, Christian" X-Patchwork-Id: 825245 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4010:c07::239; helo=mail-lf0-x239.google.com; envelope-from=swupdate+bncbdd6bwv65qpbbu63qhhqkgqeqhkjpei@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="npLQlejM"; dkim-atps=neutral Received: from mail-lf0-x239.google.com (mail-lf0-x239.google.com [IPv6:2a00:1450:4010:c07::239]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yD0464Vrkz9sP1 for ; Fri, 13 Oct 2017 18:40:05 +1100 (AEDT) Received: by mail-lf0-x239.google.com with SMTP id 90sf1915110lfs.12 for ; Fri, 13 Oct 2017 00:40:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1507880403; cv=pass; d=google.com; s=arc-20160816; b=avFZMToghoSfSeEsOfmWbjF07nwOvvCfoZ//rDk7XR4I5RyfgHluSt2RLOL8PseuzX Or3T50RyHc5YtC/7ppOw/EBNcSTp4bFGLXlwzhzt4J2Tf2wmFnV+SfZmqqkj+5Si75W6 dfMtL3o21t75bMG2QE4uM9fCuot9tFS93D3mgOdITsNVcBUXS6LvXH5zRFjW7i41N//O Wtozefo/ZpBH3rc4KpMsl4hCdtnUhglQTgB5j9TwZvP/RHXH5raFp0ygU73lLfBFwpqQ GWENrXtT+ezsc8ZZqOXlR/Gy4vSUKK2t5WHAdr+YmxVdvp0zFWCXBfSo8ZwX7KNK0gzJ FGog== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:message-id:date:subject:cc:to:from :arc-authentication-results:arc-message-signature:mime-version :sender:dkim-signature:arc-authentication-results; bh=kv1CzMhhFdC9gozWRoSvkaUQIqMtEuM1YVoKkDXN6i0=; b=dv31snUFMiFfzIyroAHSNC7EqRKJJaw41BLmssaAYex59SZ/oK8Qp6QjEproFdANLi 9cYAE2S+zDr8UUbwUNgE8ZnkxFcwXVsjn9LZHjalDbd5Z02n/5gxqoJPfilVOrn6HjvX Fj6LQ/DFgak5XHa8gYr3M1kgAbQxoMxx9eXq7SwIF/ZrYeXmlS+T+rQlrc+TuUDOcsrz ul0/G2JLQtjkwxhs/aZrVvswLumi3LpQX0CCkMvFkJ7C9KabqDvYIYyEiFd0kZLpWfRA oRTx+aFCZkahptXMWzrQTBmwi8HxKGCU6uRdo3VbPOjhk3kqhD8GuKMEj3SUYnsMOsAK SmLw== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 192.35.17.2 is neither permitted nor denied by domain of christian.storm@siemens.com) smtp.mailfrom=christian.storm@siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:mime-version:from:to:cc:subject:date:message-id :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=kv1CzMhhFdC9gozWRoSvkaUQIqMtEuM1YVoKkDXN6i0=; b=npLQlejM9swu0oH2ltl8s9uY9Czu51ibU+6NLhGNxa7zmXq0KY2RHIVAZwqQcBEkKp 47BOHeSV4TvG4vaMSVywy+L1WkLzfoz31MmLq99J4fcXilIiO1dZuMUhRUKvbCPhqH2Z 0nJWl46lG7YrwY6mLGOkLOOvkjyK2+Lkl1+cFh6pa5WM5oo0FjWj09/qEIecfKbXFVnA AK4cbSSccCYkYGEcJ0cCbPxyTPRs3Rpnb8tGsrgWgWVLYYfPRnRKmdRD4owNYZA0Dj3E 3gp1ul6GpfdEyrc/DKaN9MwpCH4W+9yPCO/nZKwkiF5BBJDwaJyhOwX6anPk6GEKcilE 4kuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=kv1CzMhhFdC9gozWRoSvkaUQIqMtEuM1YVoKkDXN6i0=; b=MWuDUpVpeeJBKvfl+YSMF8FYFlOvONnLfkJK9nfhBrvYzkKSag4G9nUEpPj3xaeBmx O9o8pVWkExHCgwUi1DGLPCNJBf95++b94Mp9QaNTpahJrU3FiKxJ0sv7TBR1MKJIJL76 1iUIC8vWJ3Ck08D9BIEMNTLBZ2EoRRuuox+MCh7DOBZ7rPqmtBg8gmPLY8l7n5pjz9OK sHvNa640W+GQyoMjZOHCwC8KTxKxK5iIJ1SkiE8U0GILi90aUE5BG3iJojsotPLfxqt3 f99rtmQF6sUOJurL05Fo5ZrZPADfIUBd4dscCbE2V843kDubaCE+raJ3tK6gaBfFfZL+ GcbQ== Sender: swupdate@googlegroups.com X-Gm-Message-State: AMCzsaXBhMcZ5dVrkLgGSjRa90vU2hDAUl4yO5+OiTOumgoKLhGN1TE5 TauBPG+k5+WO1eXWMskSpeE= X-Google-Smtp-Source: ABhQp+QP7sH5aZ1A2qAC8mRkZF/2m6nFxJwIvDp4FGnc++TKOWr+J5T1sFChoTXCz6piBahIu0kZCQ== X-Received: by 10.25.141.206 with SMTP id p197mr1218lfd.1.1507880403251; Fri, 13 Oct 2017 00:40:03 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 10.46.80.11 with SMTP id e11ls928614ljb.4.gmail; Fri, 13 Oct 2017 00:40:03 -0700 (PDT) X-Received: by 10.25.79.23 with SMTP id d23mr15404lfb.34.1507880403107; Fri, 13 Oct 2017 00:40:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507880403; cv=none; d=google.com; s=arc-20160816; b=ZYZEjm9qHqz/RTu/qAu06Osr9EG49R+lbO9rSfzlWkgLkkZX40fvDoqobTxK3iTuVY CMIOHJ3k9gpmbAg2+FbH+un8iUD2/Hu3L4cTqulBIxH80vJGPgCfildJCjhsKbOUBW6W 7wt+QCt/kAXJuegNwdj1c4hfB0dzd7yfQ9h8dOvTQxvjrYeNuGep3thT4f1aF88d/HLw 52yWmWrsyfK2UwfMS4HEMOZDEbHdH5Qb8danLV0n/Qc7Xx8Y7nl/ZKZh1sjHyh3G2Wsh IY5WLZEpomI59ZRg6pFCDUB2dism7zVE2KfpLataVRWRx3aEZcRLg3Ph21iFQ+4IkzQn ILdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=uoxAdpPy/3rzeEVmSYhn+9IExN0fFtzOGFyl5hqtf2c=; b=NPoqQ2ejvAJOpLHfL/5mrMh6aT2QIb9pdEGsfKE0Sj5aj5buq213vNvYf38QFJpC2+ jc8RE33b5xAhVUhSy5nl1kzLw/HU6C2aBenUSCNR8ajSvC/A87jBcelkdX41qzx9jYFk bE9CM7dLuM9OggC8TJzD6wOpNNDT0aeHXt4JZMoYBi97m+7AYsT3lWNc+wpsYbmcgOc9 5p/ulh0dQO5RWfheRAPMmo9n9WxVqa+/WA+Gh18AOrTGPsmdvBTtgHdOu+LfCLdf/sy/ GpPuMdKBU+/nKeI8828IaKEZcURjRy1oiJMV2gzdNPnLqKVJBuLhkwtfK15yntsBaY0P j21A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 192.35.17.2 is neither permitted nor denied by domain of christian.storm@siemens.com) smtp.mailfrom=christian.storm@siemens.com Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id j65si20501lje.3.2017.10.13.00.40.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Oct 2017 00:40:03 -0700 (PDT) Received-SPF: neutral (google.com: 192.35.17.2 is neither permitted nor denied by domain of christian.storm@siemens.com) client-ip=192.35.17.2; Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id v9D7e2nk018500 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 13 Oct 2017 09:40:02 +0200 Received: from MD1KR9XC.ww002.siemens.net ([139.25.69.251]) by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id v9D7e2SO011554; Fri, 13 Oct 2017 09:40:02 +0200 From: Christian Storm To: swupdate@googlegroups.com Cc: Christian Storm Subject: [swupdate] [PATCH] Lua: make handler mask enum available to Lua Date: Fri, 13 Oct 2017 09:39:45 +0200 Message-Id: <20171013073945.30454-1-christian.storm@siemens.com> X-Mailer: git-send-email 2.14.2 X-Original-Sender: christian.storm@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 192.35.17.2 is neither permitted nor denied by domain of christian.storm@siemens.com) smtp.mailfrom=christian.storm@siemens.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Commit ff12cd6 "handlers: associate each handler with a mask" introduced handler masks to designate handlers to particular types. Make this enum available for Lua handler registration. Per default, a Lua handler will be registered as ANY_HANDLER. The optional 3rd argument to l_register_handler() allows to specify otherwise. Signed-off-by: Christian Storm Acked-by: Stefano Babic --- corelib/lua_interface.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/corelib/lua_interface.c b/corelib/lua_interface.c index df9efaa..e66f9c8 100644 --- a/corelib/lua_interface.c +++ b/corelib/lua_interface.c @@ -400,6 +400,19 @@ static int luaopen_swupdate(lua_State *L) { lua_push_enum(L, "SUBPROCESS", SUBPROCESS); lua_settable(L, -3); +#ifdef CONFIG_HANDLER_IN_LUA + /* export the handler mask enum */ + lua_pushstring(L, "HANDLER_MASK"); + lua_newtable (L); + lua_push_enum(L, "IMAGE_HANDLER", IMAGE_HANDLER); + lua_push_enum(L, "FILE_HANDLER", FILE_HANDLER); + lua_push_enum(L, "SCRIPT_HANDLER", SCRIPT_HANDLER); + lua_push_enum(L, "BOOTLOADER_HANDLER", BOOTLOADER_HANDLER); + lua_push_enum(L, "PARTITION_HANDLER", PARTITION_HANDLER); + lua_push_enum(L, "ANY_HANDLER", ANY_HANDLER); + lua_settable(L, -3); +#endif + return 1; } @@ -483,13 +496,19 @@ static int l_register_handler( lua_State *L ) { lua_pop(L, 2); return 0; } else { + unsigned int mask = ANY_HANDLER; + if (lua_isnumber(L, 3)) { + mask = luaL_checknumber(L, 3); + lua_pop(L, 1); + } const char *handler_desc = luaL_checkstring(L, 1); /* store the callback function in registry */ *l_func_ref = luaL_ref (L, LUA_REGISTRYINDEX); /* cleanup stack */ lua_pop (L, 1); + register_handler(handler_desc, l_handler_wrapper, - ANY_HANDLER, l_func_ref); + mask, l_func_ref); return 0; } }