From owner-freebsd-mips@FreeBSD.ORG Sun Mar 11 02:26:05 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E722E106566B for ; Sun, 11 Mar 2012 02:26:05 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9D1B78FC0A for ; Sun, 11 Mar 2012 02:26:05 +0000 (UTC) Received: by vcmm1 with SMTP id m1so3569130vcm.13 for ; Sat, 10 Mar 2012 18:26:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=uJnzQy65cRerA92NyoXq+XiZ4Aif/8nlldhgEjGj37w=; b=vbO0+4FjzN9KgN7j2zFk+VzKX74sJUAi+zlzIgZIkw3JJgKLGaPfobuF9ItlOrCHXV 2Bq+Q2GzKpc+JtuIQylte844K7pg28p5QagZQj7Vo05UxQeIYKqAyckJiMtna7iTFwCu 0gEnLQqIyI+n+lbSqcxLk6WkpnsM3eOogHZoOVAMCOBI9qnfBGacfANZMvNi3i/ApGxM VdEllbAS9C2dXA9o7mX4KvsKAdB2nwzDL6UCtRcg5aXyFPa+9z4x1WlhURQL5GprcHQf awwvXCktR/KnPIPdgFUAWE2D+FfT8rXal0YlAeFr3cxWpLTiPB/bAet1LQlsLC4IVBFf C3vQ== MIME-Version: 1.0 Received: by 10.52.93.74 with SMTP id cs10mr11078675vdb.42.1331432764940; Sat, 10 Mar 2012 18:26:04 -0800 (PST) Sender: pkelsey@gmail.com Received: by 10.220.230.2 with HTTP; Sat, 10 Mar 2012 18:26:04 -0800 (PST) Date: Sat, 10 Mar 2012 21:26:04 -0500 X-Google-Sender-Auth: 0V4tg2qqVAygN3jyMEaI5hL28B0 Message-ID: From: Patrick Kelsey To: freebsd-mips@freebsd.org Content-Type: multipart/mixed; boundary=bcaec5016739ff212904baee5863 Subject: [PATCH] MikroTik RB450G support X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2012 02:26:06 -0000 --bcaec5016739ff212904baee5863 Content-Type: text/plain; charset=ISO-8859-1 Since I seem to be spending a lot of quality time with a MikroTik RB450G lately, I thought it would be nice if someone could add support for it to the tree :) Should any able and sympathetic souls be reading this list, a ready .diff file covering what I have been using is attached. This diff is mainly the work of Luiz Otavio O Souza, massaged a bit for the current state of -HEAD. Note that the RB450.hints file assumes the presence of the mmcspi driver in the tree. -Patrick --bcaec5016739ff212904baee5863 Content-Type: application/octet-stream; name="rb450_support.diff" Content-Disposition: attachment; filename="rb450_support.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzngkzaw0 SW5kZXg6IHN5cy9taXBzL2NvbmYvUkI0WFgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvY29uZi9S QjRYWAkocmV2aXNpb24gMCkKKysrIHN5cy9taXBzL2NvbmYvUkI0WFgJKHJldmlzaW9uIDApCkBA IC0wLDAgKzEsMTMyIEBACisjCisjICRGcmVlQlNEJAorIworCitpZGVudAkJUkI0WFgKK21ha2Vv cHRpb25zCVRBUkdFVF9CSUdfRU5ESUFOCittYWtlb3B0aW9ucwlLRVJOTE9BREFERFI9MHg4MDA1 MDAwMAorb3B0aW9ucwkJSFo9MTAwMAorb3B0aW9ucwkJSFdQTUNfSE9PS1MKKworaGludHMJCSJS QjQ1MC5oaW50cyIKKworaW5jbHVkZQkJIi4uL2F0aGVyb3Mvc3RkLmFyNzF4eCIKKworI21ha2Vv cHRpb25zCURFQlVHPS1nCQkjQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRlYnVnIHN5bWJvbHMK K21ha2VvcHRpb25zCU1PRFVMRVNfT1ZFUlJJREU9IiIKKworI29wdGlvbnMJCUREQgorI29wdGlv bnMJCUtEQgorCitvcHRpb25zCQlTQ0hFRF80QlNECQkjNEJTRCBzY2hlZHVsZXIKK29wdGlvbnMJ CUlORVQJCQkjSW50ZXJORVR3b3JraW5nCitvcHRpb25zCQlORlNDTAkJCSNOZXR3b3JrIEZpbGVz eXN0ZW0gQ2xpZW50CitvcHRpb25zCQlORlNDTElFTlQJCSNOZXR3b3JrIEZpbGVzeXN0ZW0gQ2xp ZW50CitvcHRpb25zCQlORlNfUk9PVAkJI05GUyB1c2FibGUgYXMgLywgcmVxdWlyZXMgTkZTQ0xJ RU5UCitvcHRpb25zCQlQU0VVRE9GUwkJI1BzZXVkby1maWxlc3lzdGVtIGZyYW1ld29yaworb3B0 aW9ucwkJX0tQT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HICNQb3NpeCBQMTAwM18xQiByZWFsLXRp bWUgZXh0ZW5zaW9ucworCisjIG9wdGlvbnMJCU5GU19MRUdBQ1lSUEMKKyMgRGVidWdnaW5nIGZv ciB1c2UgaW4gLWN1cnJlbnQKKyMgb3B0aW9ucwkJSU5WQVJJQU5UUworIyBvcHRpb25zCQlJTlZB UklBTlRfU1VQUE9SVAorIyBvcHRpb25zCQlXSVRORVNTCisjIG9wdGlvbnMJCVdJVE5FU1NfU0tJ UFNQSU4KKyMgb3B0aW9ucwkJREVCVUdfUkVEWk9ORQorIyBvcHRpb25zCQlERUJVR19NRU1HVUFS RAorb3B0aW9ucyAgICAgICAgIEZGUyAgICAgICAgICAgICAgICAgICAgICNCZXJrZWxleSBGYXN0 IEZpbGVzeXN0ZW0KK29wdGlvbnMgICAgICAgICBTT0ZUVVBEQVRFUyAgICAgICAgICAgICAjRW5h YmxlIEZGUyBzb2Z0IHVwZGF0ZXMgc3VwcG9ydAorb3B0aW9ucyAgICAgICAgIFVGU19BQ0wgICAg ICAgICAgICAgICAgICNTdXBwb3J0IGZvciBhY2Nlc3MgY29udHJvbCBsaXN0cworb3B0aW9ucyAg ICAgICAgIFVGU19ESVJIQVNIICAgICAgICAgICAgICNJbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGJp ZyBkaXJlY3RvcmllcworCitvcHRpb25zCQlNU0RPU0ZTCisKK29wdGlvbnMJCUJPT1RQCitvcHRp b25zCQlCT09UUF9ORlNST09UCitvcHRpb25zCQlCT09UUF9ORlNWMworb3B0aW9ucwkJQk9PVFBf V0lSRURfVE89YXJnZTEKK29wdGlvbnMJCUJPT1RQX0NPTVBBVAorb3B0aW9ucwkJUk9PVERFVk5B TUU9XCJuZnM6ZnJlZWJzZDgyZGV2NjQ6L25mc3Jvb3QvcmI0eHhcIgorCitkZXZpY2UJCXBjaQor ZGV2aWNlCQlhcjcxeHhfcGNpCisKKyMgODAyLjExIGZyYW1ld29yaworIyBvcHRpb25zCQlJRUVF ODAyMTFfREVCVUcKKyMgb3B0aW9ucwkJSUVFRTgwMjExX0FMUQorIyBvcHRpb25zCQlJRUVFODAy MTFfU1VQUE9SVF9NRVNICisjIFRoaXMgb3B0aW9uIGlzIGN1cnJlbnRseSBicm9rZW4gZm9yIGlm X2F0aF90eC4KKyMgb3B0aW9ucwkJSUVFRTgwMjExX1NVUFBPUlRfVERNQQorIyBvcHRpb25zCQlJ RUVFODAyMTFfQU1QRFVfQUdFCisjIGRldmljZQkJd2xhbiAgICAgICAgICAgICMgODAyLjExIHN1 cHBvcnQKKyMgZGV2aWNlCQl3bGFuX3dlcCAgICAgICAgIyA4MDIuMTEgV0VQIHN1cHBvcnQKKyMg ZGV2aWNlCQl3bGFuX2NjbXAgICAgICAgIyA4MDIuMTEgQ0NNUCBzdXBwb3J0CisjIGRldmljZQkJ d2xhbl90a2lwICAgICAgICMgODAyLjExIFRLSVAgc3VwcG9ydAorIyBkZXZpY2UJCXdsYW5feGF1 dGgJIyA4MDIuMTEgaG9zdGFwIHN1cHBvcnQKKworIyBBdGhlcm9zIHdpcmVsZXNzIE5JQ3MKKyMg ZGV2aWNlCQlhdGggICAgICAgICAgICAgIyBBdGhlcm9zIGludGVyZmFjZSBzdXBwb3J0CisjIGRl dmljZQkJYXRoX3BjaQkJIyBBdGhlcm9zIFBDSS9DYXJkYnVzIGJ1cworIyBvcHRpb25zIAlBVEhf REVCVUcKKyMgb3B0aW9ucwkJQVRIX0RJQUdBUEkKKyMgb3B0aW9ucwkJQVRIX0VOQUJMRV8xMU4K KyMgb3B0aW9ucwkJQUhfREVCVUcKKyMgb3B0aW9ucwkJQUhfREVCVUdfQUxRCisjIG9wdGlvbnMJ CUFMUQorIyBkZXZpY2UJCWF0aF9oYWwKKyMgb3B0aW9uCQlBSF9TVVBQT1JUX0FSNTQxNgorIyBk ZXZpY2UJCWF0aF9yYXRlX3NhbXBsZQorIyBvcHRpb24JCUFIX1JYQ0ZHX1NETUFNV180QllURVMK KyMgb3B0aW9uCQlBSF9BUjU0MTZfSU5URVJSVVBUX01JVElHQVRJT04KKyMgVGhlcmUncyBubyBE RlMgcmFkYXIgZGV0ZWN0aW9uIHN1cHBvcnQgeWV0IHNvIHRoaXMgd29uJ3QgYWN0dWFsbHkKKyMg ZGV0ZWN0IHJhZGFycy4gIEl0IGhvd2V2ZXIgZG9lcyBlbmFibGUgdGhlIHJlc3Qgb2YgdGhlIGNo YW5uZWwgY2hhbmdlCisjIG1hY2hpbmVyeSBzbyBERlMgY2FuIGJlIGRlYnVnZ2VkLgorIyBvcHRp b24JCUFUSF9FTkFCTEVfREZTCisKK2RldmljZQkJbWlpCitkZXZpY2UJCWFyZ2UKKworIyBkZXZp Y2UJCXVzYgorIyBvcHRpb25zCQlVU0JfRUhDSV9CSUdfRU5ESUFOX0RFU0MgICAgICAgICMgaGFu ZGxlIGJpZy1lbmRpYW4gYnl0ZSBvcmRlcgorIyBvcHRpb25zCQlVU0JfREVCVUcKKyMgZGV2aWNl CQllaGNpCisKKyMgZGV2aWNlCQlzY2J1cworIyBkZXZpY2UJCXVtYXNzCisjIGRldmljZQkJZGEK KworZGV2aWNlCQlzcGlidXMKK2RldmljZQkJYXI3MXh4X3NwaQorZGV2aWNlICAgICAgICAgIG1t YworZGV2aWNlICAgICAgICAgIG1tY3NkCitkZXZpY2UgICAgICAgICAgbW1jc3BpCitkZXZpY2UJ CWFyNzF4eF93ZG9nCisKK2RldmljZQkJdWFydAorCitkZXZpY2UJCWxvb3AKK2RldmljZQkJZXRo ZXIKK2RldmljZQkJbWQKK2RldmljZQkJYnBmCitkZXZpY2UJCXJhbmRvbQorZGV2aWNlCQlpZl9i cmlkZ2UKKyMgZGV2aWNlCQlnaWYJCSMgaXBbNDZdIGluIGlwWzQ2XSB0dW5uZWxpbmcgcHJvdG9j b2wKKyMgZGV2aWNlCQlncmUJCSMgZ2VuZXJpYyBlbmNhcHN1bGF0aW9uIC0gb25seSBmb3IgSVB2 NCBpbiBJUHY0IHRob3VnaCBhdG0KKworIyBvcHRpb25zCQlBUkdFX0RFQlVHCSMgRW5hYmxlIGlm X2FyZ2UgZGVidWdnaW5nIGZvciBub3cKKworZGV2aWNlCQlncGlvCitkZXZpY2UJCWdwaW9sZWQK KworI29wdGlvbnMJCVJCX0dQSU9fUElOUworI29wdGlvbnMJCUZJWF9SQl9NQUNfQUREUkVTUwor CitvcHRpb25zCQlEVU1NWU5FVAorb3B0aW9ucwkJTElCQUxJQVMKK29wdGlvbnMJCUlQRElWRVJU CitvcHRpb25zCQlJUFNURUFMVEgKK29wdGlvbnMJCUlQRklSRVdBTEwKK29wdGlvbnMJCUlQRklS RVdBTExfTkFUCitvcHRpb25zCQlJUEZJUkVXQUxMX0ZPUldBUkQKK29wdGlvbnMJCUlQRklSRVdB TExfVkVSQk9TRQorb3B0aW9ucwkJSVBGSVJFV0FMTF9ERUZBVUxUX1RPX0FDQ0VQVApJbmRleDog c3lzL21pcHMvY29uZi9SQjQ1MC5oaW50cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9jb25mL1JC NDUwLmhpbnRzCShyZXZpc2lvbiAwKQorKysgc3lzL21pcHMvY29uZi9SQjQ1MC5oaW50cwkocmV2 aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorIworIyAkRnJlZUJTRCQKKyMKK2hpbnQuYXBiLjAu YXQ9Im5leHVzMCIKK2hpbnQuYXBiLjAuaXJxPTQKKworIyB1YXJ0MAoraGludC51YXJ0LjAuYXQ9 ImFwYjAiCisjIHNlZSBhdGhlcm9zL3VhcnRfY3B1X2FyNzF4eC5jIHdoeSArMworaGludC51YXJ0 LjAubWFkZHI9MHgxODAyMDAwMworaGludC51YXJ0LjAubXNpemU9MHgxOAoraGludC51YXJ0LjAu aXJxPTMKKworI29oY2kKKyNoaW50Lm9oY2kuMC5hdD0iYXBiMCIKKyNoaW50Lm9oY2kuMC5tYWRk cj0weDFjMDAwMDAwCisjaGludC5vaGNpLjAubXNpemU9MHgwMTAwMDAwMAorI2hpbnQub2hjaS4w LmlycT02CisKKyNlaGNpCisjaGludC5laGNpLjAuYXQ9Im5leHVzMCIKKyNoaW50LmVoY2kuMC5t YWRkcj0weDFiMDAwMDAwCisjaGludC5laGNpLjAubXNpemU9MHgwMTAwMDAwMAorI2hpbnQuZWhj aS4wLmlycT0xCisKKyMgcGNpCisjaGludC5wY2liLjAuYXQ9Im5leHVzMCIKKyNoaW50LnBjaWIu MC5pcnE9MAorCitoaW50LmFyZ2UuMC5hdD0ibmV4dXMwIgoraGludC5hcmdlLjAubWFkZHI9MHgx OTAwMDAwMAoraGludC5hcmdlLjAubXNpemU9MHgxMDAwCitoaW50LmFyZ2UuMC5pcnE9MgorIyBQ SFkwLCBQSFkxLCBQSFkyLCBQSFkzCitoaW50LmFyZ2UuMC5waHltYXNrPTB4MGYKKworaGludC5h cmdlLjEuYXQ9Im5leHVzMCIKK2hpbnQuYXJnZS4xLm1hZGRyPTB4MUEwMDAwMDAKK2hpbnQuYXJn ZS4xLm1zaXplPTB4MTAwMAoraGludC5hcmdlLjEuaXJxPTMKKyMgUEhZNAoraGludC5hcmdlLjEu cGh5bWFzaz0weDEwCisKKyMgU1BJIGNvbnRyb2xsZXIKK2hpbnQuc3BpLjAuYXQ9Im5leHVzMCIK K2hpbnQuc3BpLjAubWFkZHI9MHgxZjAwMDAwMAoraGludC5zcGkuMC5tc2l6ZT0weDEwCisKKyMg U1BJIG1pY3JvU0Qgc2xvdAoraGludC5tbWNzcGkuMC5hdD0ic3BpYnVzMCIKK2hpbnQubW1jc3Bp LjAuY3M9MgorCisjIFdhdGNoZG9nCitoaW50LmFyNzF4eF93ZG9nLjAuYXQ9Im5leHVzMCIKKwor IyBHUElPCitoaW50LmdwaW8uMC5hdD0iYXBiMCIKK2hpbnQuZ3Bpby4wLm1hZGRyPTB4MTgwNDAw MDAKK2hpbnQuZ3Bpby4wLm1zaXplPTB4MTAwMAoraGludC5ncGlvLjAuaXJxPTIKKworIyBVc2Vy IGxlZAoraGludC5ncGlvbGVkLjAuYXQ9ImdwaW9idXMwIgoraGludC5ncGlvbGVkLjAubmFtZT0i dXNlciIKKyMgcGluIDQKK2hpbnQuZ3Bpb2xlZC4wLnBpbnM9MHgwMDEwCisKKyMgaHdwbWMgZGV2 aWNlCitoaW50LmFyNzF4eF9wbWMuMC5hdD0iYXBiMCIKK2hpbnQuYXI3MXh4X3BtYy4wLmlycT01 CkluZGV4OiBzeXMvbWlwcy9hdGhlcm9zL2FyNzF4eF9tYWNoZGVwLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g c3lzL21pcHMvYXRoZXJvcy9hcjcxeHhfbWFjaGRlcC5jCShyZXZpc2lvbiAyMzE4OTQpCisrKyBz eXMvbWlwcy9hdGhlcm9zL2FyNzF4eF9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYg KzY0LDcgQEAKIC8qIDRLQiBzdGF0aWMgZGF0YSBhcmVhZCB0byBrZWVwIGEgY29weSBvZiB0aGUg Ym9vdGxvYWQgZW52IHVudGlsCiAgICB0aGUgZHluYW1pYyBrZW52IGlzIHNldHVwICovCiBjaGFy IGJvb3QxX2Vudls0MDk2XTsKK2NoYXIgYm9hcmRfbW9kZWxbNjRdOwogCiAvKgogICogV2UgZ2V0 IGEgc3RyaW5nIGluIGZyb20gUmVkYm9vdCB3aXRoIHRoZSBhbGwgdGhlIGFyZ3VtZW50cyB0b2dl dGhlciwKQEAgLTE2OCw3ICsxNjksNyBAQAogICAgIF9fcmVnaXN0ZXJfdCBhMiBfX3VudXNlZCwg X19yZWdpc3Rlcl90IGEzIF9fdW51c2VkKQogewogCXVpbnQ2NF90IHBsYXRmb3JtX2NvdW50ZXJf ZnJlcTsKLQlpbnQgYXJnYyA9IDAsIGk7CisJaW50IGFyZ2MgPSAwLCBpLCBib2FyZF9tZW0sIGNv dW50ID0gMDsKIAljaGFyICoqYXJndiA9IE5VTEwsICoqZW52cCA9IE5VTEw7CiAJdm1fb2Zmc2V0 X3Qga2VybmVuZDsKIApAQCAtMTk3LDYgKzE5OCwyNyBAQAogCQl9CiAJfQogCisJLyogUGFyc2Ug Y21kIGFyZ3VtZW50cyAqLworCWlmIChNSVBTX0lTX1ZBTElEX1BUUihhcmd2KSkgeworCQlmb3Ig KGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CisJCQlpZiAoc3RybmNtcChhcmd2W2ldLCAia21hYz0i LCA1KSA9PSAwKSB7CisJCQkJY291bnQgPSBzc2NhbmYoYXJndltpXSArIDUsICIleDoleDoleDol eDoleDoleCIsCisJCQkJICAgICZhcjcxMV9iYXNlX21hY1swXSwgJmFyNzExX2Jhc2VfbWFjWzFd LAorCQkJCSAgICAmYXI3MTFfYmFzZV9tYWNbMl0sICZhcjcxMV9iYXNlX21hY1szXSwKKwkJCQkg ICAgJmFyNzExX2Jhc2VfbWFjWzRdLCAmYXI3MTFfYmFzZV9tYWNbNV0pOworCQkJCWlmIChjb3Vu dCA8IDYpCisJCQkJCW1lbXNldChhcjcxMV9iYXNlX21hYywgMCwKKwkJCQkJICAgIHNpemVvZihh cjcxMV9iYXNlX21hYykpOworCQkJfSBlbHNlIGlmIChzdHJuY21wKGFyZ3ZbaV0sICJtZW09Iiwg NCkgPT0gMCkgeworCQkJCWlmIChzc2NhbmYoYXJndltpXSArIDQsICIlZE0iLCAmYm9hcmRfbWVt KSA9PSAxKQorCQkJCQlyZWFsbWVtID0gYnRvYyhib2FyZF9tZW0gKiAxMDI0ICogMTAyNCk7CisJ CQl9IGVsc2UgaWYgKHN0cm5jbXAoYXJndltpXSwgImJvYXJkPSIsIDYpID09IDApIHsKKwkJCQlz dHJsY3B5KGJvYXJkX21vZGVsLCBhcmd2W2ldICsgNiwKKwkJCQkgICAgIHNpemVvZihib2FyZF9t b2RlbCkpOworCQkJfQorCQl9CisJfQorCiAJLyoKIAkgKiBKdXN0IHdpbGQgZ3Vlc3MuIFJlZEJv b3QgbGV0IHVzIGRvd24gYW5kIGRpZG4ndCByZXBvcnRlZCAKIAkgKiBtZW1vcnkgc2l6ZQpJbmRl eDogc3lzL21pcHMvYXRoZXJvcy9pZl9hcmdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvYXRo ZXJvcy9pZl9hcmdlLmMJKHJldmlzaW9uIDIzMTg5NCkKKysrIHN5cy9taXBzL2F0aGVyb3MvaWZf YXJnZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDggQEAKICAqLwogZXh0ZXJuIHVp bnQzMl90IGFyNzExX2Jhc2VfbWFjW0VUSEVSX0FERFJfTEVOXTsKIAorZXh0ZXJuIGNoYXIgYm9h cmRfbW9kZWxbNjRdOworCiBzdGF0aWMgc3RydWN0IG10eCBtaWlidXNfbXR4OwogCiBNVFhfU1lT SU5JVChtaWlidXNfbXR4LCAmbWlpYnVzX210eCwgImFyZ2UgbWlpIGxvY2siLCBNVFhfREVGKTsK QEAgLTM5NSw4ICszOTcsMTUgQEAKIAkJZWFkZHJbNV0gPSAocm5kID4+IDgpICYgMHhmZjsKIAl9 CiAKLQlpZiAoc2MtPmFyZ2VfbWFjX3VuaXQgIT0gMCkKLQkJZWFkZHJbNV0gKz0gIHNjLT5hcmdl X21hY191bml0OworCWlmIChzdHJuY21wKGJvYXJkX21vZGVsLCAiNDUwIiwgMykgPT0gMCB8fAor CSAgICBzdHJuY21wKGJvYXJkX21vZGVsLCAiNDMzIiwgMykgPT0gMCB8fAorCSAgICBzdHJuY21w KGJvYXJkX21vZGVsLCAiNDkzIiwgMykgPT0gMCkgeworCQlpZiAoc2MtPmFyZ2VfbWFjX3VuaXQg PT0gMCkKKwkJCWVhZGRyWzVdICs9IDE7CisJfSBlbHNlIHsKKwkJaWYgKHNjLT5hcmdlX21hY191 bml0ICE9IDApCisJCQllYWRkcls1XSArPSBzYy0+YXJnZV9tYWNfdW5pdDsKKwl9CiAKIAlpZiAo YXJnZV9kbWFfYWxsb2Moc2MpICE9IDApIHsKIAkJZXJyb3IgPSBFTlhJTzsKSW5kZXg6IHN5cy9t aXBzL2F0aGVyb3MvYXI3MXh4X2NoaXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9hdGhlcm9z L2FyNzF4eF9jaGlwLmMgIChyZXZpc2lvbiAyMzI3MjUpCisrKyBzeXMvbWlwcy9hdGhlcm9zL2Fy NzF4eF9jaGlwLmMgICh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMjEgKzEzNiwzNSBAQAogICAgICAg IHJldHVybiAoKHJlZyAmIG1hc2spID09IG1hc2spOwogfQogCitzdGF0aWMgX19pbmxpbmUgdm9p ZAorYXI3MXh4X2NoaXBfc2V0X21paV9zcGVlZCh1aW50MzJfdCByZWcsIHVpbnQzMl90IGN0cmwp Cit7CisgICAgICAgdWludDMyX3QgdmFsOworCisgICAgICAgdmFsID0gQVRIX1JFQURfUkVHKHJl Zyk7CisgICAgICAgdmFsICY9IH4oTUlJX0NUUkxfU1BFRURfTUFTSyA8PCBNSUlfQ1RSTF9TUEVF RF9TSElGVCk7CisgICAgICAgdmFsIHw9IChjdHJsICYgTUlJX0NUUkxfU1BFRURfTUFTSykgPDwg TUlJX0NUUkxfU1BFRURfU0hJRlQ7CisgICAgICAgQVRIX1dSSVRFX1JFRyhyZWcsIHZhbCk7Cit9 CisKIC8qIFNwZWVkIGlzIGVpdGhlciAxMCwgMTAwIG9yIDEwMDAgKi8KIHN0YXRpYyB2b2lkCiBh cjcxeHhfY2hpcF9zZXRfcGxsX2dlKGludCB1bml0LCBpbnQgc3BlZWQpCiB7Ci0gICAgICAgdWlu dDMyX3QgcGxsOworICAgICAgIHVpbnQzMl90IGN0cmwsIHBsbDsKIAogICAgICAgIHN3aXRjaCAo c3BlZWQpIHsKICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgcGxsID0gUExMX0VUSF9J TlRfQ0xLXzEwOworICAgICAgICAgICAgICAgY3RybCA9IE1JSV9DVFJMX1NQRUVEXzEwOwogICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMDA6CiAgICAgICAgICAgICAgICBwbGwg PSBQTExfRVRIX0lOVF9DTEtfMTAwOworICAgICAgICAgICAgICAgY3RybCA9IE1JSV9DVFJMX1NQ RUVEXzEwMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTAwMDoKICAgICAg ICAgICAgICAgIHBsbCA9IFBMTF9FVEhfSU5UX0NMS18xMDAwOworICAgICAgICAgICAgICAgY3Ry bCA9IE1JSV9DVFJMX1NQRUVEXzEwMDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBk ZWZhdWx0OgogICAgICAgICAgICAgICAgcHJpbnRmKCIlcyVkOiBpbnZhbGlkIHNwZWVkICVkXG4i LApAQCAtMTYyLDExICsxNzYsMTMgQEAKICAgICAgICAgICAgICAgIGFyNzF4eF93cml0ZV9wbGwo QVI3MVhYX1BMTF9TRUNfQ09ORklHLAogICAgICAgICAgICAgICAgICAgIEFSNzFYWF9QTExfRVRI X0lOVDBfQ0xLLCBwbGwsCiAgICAgICAgICAgICAgICAgICAgQVI3MVhYX1BMTF9FVEgwX1NISUZU KTsKKyAgICAgICAgICAgICAgIGFyNzF4eF9jaGlwX3NldF9taWlfc3BlZWQoQVI3MVhYX01JSTBf Q1RSTCwgY3RybCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE6CiAgICAg ICAgICAgICAgICBhcjcxeHhfd3JpdGVfcGxsKEFSNzFYWF9QTExfU0VDX0NPTkZJRywKICAgICAg ICAgICAgICAgICAgICBBUjcxWFhfUExMX0VUSF9JTlQxX0NMSywgcGxsLAogICAgICAgICAgICAg ICAgICAgIEFSNzFYWF9QTExfRVRIMV9TSElGVCk7CisgICAgICAgICAgICAgICBhcjcxeHhfY2hp cF9zZXRfbWlpX3NwZWVkKEFSNzFYWF9NSUkxX0NUUkwsIGN0cmwpOwogICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHByaW50ZigiJXM6IGludmFs aWQgUExMIHNldCBmb3IgYXJnZSB1bml0OiAlZFxuIiwKSW5kZXg6IHN5cy9taXBzL2F0aGVyb3Mv YXI3MXh4cmVnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaAko cmV2aXNpb24gMjMxODk0KQorKysgc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaAkod29ya2lu ZyBjb3B5KQpAQCAtMjcwLDYgKzI3MCwxMyBAQAogLyoKICAqIEdpZ0UgYWRhcHRlcnMgcmVnaW9u CiAgKi8KKyNkZWZpbmUgQVI3MVhYX01JSTBfQ1RSTAkweDE4MDcwMDAwCisjZGVmaW5lIEFSNzFY WF9NSUkxX0NUUkwJMHgxODA3MDAwNAorI2RlZmluZQkJTUlJX0NUUkxfU1BFRURfU0hJRlQJNAor I2RlZmluZQkJTUlJX0NUUkxfU1BFRURfTUFTSwkzCisjZGVmaW5lCQlNSUlfQ1RSTF9TUEVFRF8x MAkwCisjZGVmaW5lCQlNSUlfQ1RSTF9TUEVFRF8xMDAJMQorI2RlZmluZQkJTUlJX0NUUkxfU1BF RURfMTAwMAkyCiAjZGVmaW5lIEFSNzFYWF9NQUMwX0JBU0UJMHgxOTAwMDAwMAogI2RlZmluZSBB UjcxWFhfTUFDMV9CQVNFCTB4MUEwMDAwMDAKIC8qCg== --bcaec5016739ff212904baee5863--