From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=13.75.44.102 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794572998; b=rWpLdPVXDmf7mt2PdYt3FpVAw5qMnUgnvg90vQRffjhuHJqO+3XesOdCAjoi/9v6Eb6r HIBtei5a7ghDCOT7+86IJ6hDtLwzcYl8FIgCPmxBg8BmJKokvGrurQznTi+SBw85aAeRk f8hTA3znSSg/hY5fLSiNoMn4G8Dssci5YIGuRIfJ39+fQZe6WYyVmwb0ReTLXvcQSZqB/ vSd3eoT4r4s8uf5Of5VfP4myHl3BYZXXW32UfJwcXThT38Wwmx4LY+8exKAp2HMmEK8za U3gWFLNXN1R2BCGP/XWi2RkboHcQeHZjtmX/aoYaECjThBxIp8ccCpxtHVcs5SPZcsw== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794572998; h=DMARC-Filter:Received:X-Originating-IP:Date:X-CM-HeaderCharset:From: To:Cc:Subject:X-Priority:X-Mailer:In-Reply-To:References: X-CM-CTRLMSGS:Content-Type:MIME-Version:Message-ID:X-Coremail-Locale: X-CM-TRANSID:X-CM-SenderInfo:X-Coremail-Antispam; bh=duNIM9HGfvspvuiWba9Yeb5kmhBiKGBPCRhvoS0YCQA=; b=nJI5lqleCfx5nYtSrXzWNsNbFINa/XdIv5o2x9vVJKaItUaPdwzvGZ2itZ1htHDja6k3 sTAHTrPxTRCNf14gysE6+bVj/HHOY2lRF8scFkfQPB8ifSTTtaUAFrvHPRLf/xmy9kTy3 ti43HFxl4zua5S36KoFj3PMZkgMMZ/OESoltA0wYb/g55HkDqBBzKmL/hnIgMM1imfXNe JhJczOzbdpRaF37z2M4KZD+62lfHs+SEz8Lbt+V8UAwoClwzemdlV0uyWhpwfp5GIrUDJ ngOKho3Mkv/TKHKz4gmPAMFIoGCeEo5cK9s6z3KQUC3ySrnlR53QN+ENqHTU6QlT5Zw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none header.from=hust.edu.cn; spf=pass smtp.mailfrom=hust.edu.cn; arc=none smtp.remote-ip=13.75.44.102 Received: from azure-sdnproxy.icoremail.net (azure-sdnproxy.icoremail.net [13.75.44.102]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 56A5B606A31C; Fri, 13 Nov 2026 12:29:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 56A5B606A31C Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=hust.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hust.edu.cn Received: from xuhx$hust.edu.cn ( [10.12.190.107] ) by ajax-webmail-app1 (Coremail) ; Fri, 13 Nov 2026 20:29:53 +0800 (GMT+08:00) Date: Fri, 13 Nov 2026 20:29:53 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: =?UTF-8?B?5b6Q5pmX57+U?= To: perex@perex.cz, tiwai@suse.com Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: ALSA: usb-audio: us144mkii: queued stop_pcm_work calls snd_pcm_stop() after PCM close and dereferences NULL runtime X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2025.3-cmXT6 build 20260810(6c94e3b5) Copyright (c) 2002-2026 www.mailtech.cn hust In-Reply-To: <2026102727-data-sequel-ce41@gregkh> References: <4c7f9772.192e1.1a17d5c2ed5.Coremail.xuhx@hust.edu.cn> <2026102727-data-sequel-ce41@gregkh> X-CM-CTRLMSGS: =?B?0RI5RjiH6nJ5xwDR7hwMki1N8jM= Content-Type: multipart/mixed; boundary="----=_Part_522742_1033163319.1794572993764" X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Message-ID: <6891aa7d.26365.1a1d4e2c4e4.Coremail.xuhx@hust.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:IAEQrMAm72rBAvdqTRdHAA--.13417W X-CM-SenderInfo: bgsqjkayqyjmo6kx23oohg3hdfq/1tbiAQQKB2r15u2BsQACsu X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWkKw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= ------=_Part_522742_1033163319.1794572993764 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 dGFzY2FtX3N0b3BfcGNtX3dvcmtfaGFuZGxlcigpIGlzIHF1ZXVlZCBieSBmZWVkYmFja191cmJf Y29tcGxldGUoKQphZnRlciBhIGZlZWRiYWNrIHN5bmMgbG9zcywgdGhlbiByZWFkcyB0YXNjYW0t PnBsYXliYWNrX3N1YnN0cmVhbSBhbmQKdGFzY2FtLT5jYXB0dXJlX3N1YnN0cmVhbSB3aXRob3V0 IGFueSBsb2NrIGFuZCBjYWxscyBzbmRfcGNtX3N0b3AoKSBvbgp0aGVtLiAgUENNIGNsb3NlIGRv ZXMgbm90IGNhbmNlbCB0aGlzIHdvcmsuICBJZiBjbG9zZSBjb21wbGV0ZXMgZmlyc3QsCnNuZF9w Y21fZGV0YWNoX3N1YnN0cmVhbSgpIHNldHMgc3Vic3RyZWFtLT5ydW50aW1lIHRvIE5VTEwgYW5k IGZyZWVzIHRoZQpzbmRfcGNtX3J1bnRpbWU7IHdoZW4gdGhlIGhhbmRsZXIgcmVhY2hlcyBzbmRf cGNtX3N0b3AoKSwKc25kX3BjbV9wcmVfc3RvcCgpIHJlLXJlYWRzIHN1YnN0cmVhbS0+cnVudGlt ZSBhbmQgZGVyZWZlcmVuY2VzIHRoZSBOVUxMCnBvaW50ZXIuICBUaGlzIGlzIGEgY29uZGl0aW9u YWwgTlVMTC1wb2ludGVyIGRlcmVmZXJlbmNlIC8gb29wcyBvbiBhbgpvcmRpbmFyeSBQQ00gY2xv c2U7IGEgbmFycm93ZXIgcnVudGltZS1VQUYgd2luZG93IGlzIHRoZW9yZXRpY2FsbHkKcG9zc2li bGUgYnV0IHdhcyBub3QgcmVwcm9kdWNlZCwgc28gdGhpcyByZXBvcnQgZG9lcyBub3QgY2xhaW0g VUFGLgpUaGUgaGFuZGxlciBhbHNvIHZpb2xhdGVzIHRoZSBBTFNBIGNvbnZlbnRpb24gdGhhdCBz bmRfcGNtX2FjdGlvbigpCm11c3QgYmUgY2FsbGVkIHdpdGggdGhlIFBDTSBzdHJlYW0gbG9jayBo ZWxkLgoKVGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uOgoKKiBUZXN0IGVudmlyb25tZW50IC8gYWZm ZWN0ZWQgdmVyc2lvbgoKICBMaW51eCA3LjMuMCBzb3VyY2UgdHJlZSAoVkVSU0lPTj03LCBQQVRD SExFVkVMPTMsIFNVQkxFVkVMPTApLAogIHNvdW5kL3VzYi91c3gyeS91czE0NG1raWlfcGxheWJh Y2suYywgdXMxNDRta2lpX3BjbS5jIGFuZAogIHVzMTQ0bWtpaS5oLiAgVGhlIGRyaXZlciBiaW5k cyB0aGUgVEFTQ0FNIFVTLTE0NE1LSUkgKDA2NDQ6ODAyMCkgYW5kCiAgVVMtMTQ0ICgwNjQ0Ojgw MGYpLiAgVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXMKICBDT05GSUdfU05EX1VTQl9VUzE0 NE1LSUk9bS4KCiAgVGhpcyByZXBvcnQgaXMgYmFzZWQgb24gc291cmNlIGluc3BlY3Rpb24sIHBs dXMgYSBzeW50aGV0aWMgQUxTQSBQQ00KICBtb2RlbCB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjbG9z ZS9kZXRhY2ggb3JkZXJpbmcuICBJIGhhdmUgbm90IHJ1biB0aGUKICByZWFsIGRyaXZlciBvbiBU QVNDQU0gaGFyZHdhcmU7IG5vIHJlYWwtaGFyZHdhcmUgcmVzdWx0IGlzIGNsYWltZWQuCiAgVGhl IGF0dGFjaGVkIFBPQyBpcyB0aGF0IHN5bnRoZXRpYy1vcmRlcmluZyBtb2RlbCwgbm90IGEgVEFT Q0FNCiAgaGFyZHdhcmUgcmVwcm9kdWNlci4KCiogTWVjaGFuaXNtCgogIDEuIFRoZSB3b3JrIGlz IHF1ZXVlZCBvbiBmZWVkYmFjayBzeW5jIGxvc3M6CgogICAgICAgICAgICAgaWYgKHRhc2NhbS0+ ZmVlZGJhY2tfc3luY2VkKSB7CiAgICAgICAgICAgICAgICAgICAgIHRhc2NhbS0+ZmVlZGJhY2tf Y29uc2VjdXRpdmVfZXJyb3JzKys7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0YXNjYW0tPmZl ZWRiYWNrX2NvbnNlY3V0aXZlX2Vycm9ycyA+CiAgICAgICAgICAgICAgICAgICAgICAgICBGRUVE QkFDS19TWU5DX0xPU1NfVEhSRVNIT0xEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2X2Vycih0YXNjYW0tPmNhcmQtPmRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJGYXRhbDogRmVlZGJhY2sgc3luYyBsb3N0LiBTdG9wcGluZyBzdHJlYW0uXG4iKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZV93b3JrKCZ0YXNjYW0tPnN0b3Bf cGNtX3dvcmspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhc2NhbS0+ZmVlZGJhY2tf c3luY2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KCiAgICAgKHVzMTQ0bWtpaV9wbGF5YmFj ay5jOjM0Ny0zNTYpLiAgRkVFREJBQ0tfU1lOQ19MT1NTX1RIUkVTSE9MRCBpcwogICAgIDQxICh1 czE0NG1raWkuaDo4OCksIHNvIHRoZSBjb25kaXRpb24gaXMgcmVhY2hlZCBhZnRlciA0MgogICAg IGNvbnNlY3V0aXZlIGZlZWRiYWNrIGVycm9ycy4KCiAgMi4gVGhlIGhhbmRsZXIgcmVhZHMgdGhl IHBvaW50ZXJzIHdpdGhvdXQgYSBsb2NrOgoKICAgICAgICAgICAgIHZvaWQgdGFzY2FtX3N0b3Bf cGNtX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0YXNjYW1fY2FyZCAqdGFzY2FtID0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHRhc2NhbV9j YXJkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wX3BjbV93 b3JrKTsKCiAgICAgICAgICAgICAgICAgICAgIGlmICh0YXNjYW0tPnBsYXliYWNrX3N1YnN0cmVh bSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbmRfcGNtX3N0b3AodGFzY2FtLT5wbGF5 YmFja19zdWJzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNORFJWX1BDTV9TVEFURV9YUlVOKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRhc2NhbS0+ Y2FwdHVyZV9zdWJzdHJlYW0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25kX3BjbV9z dG9wKHRhc2NhbS0+Y2FwdHVyZV9zdWJzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNORFJWX1BDTV9TVEFURV9YUlVOKTsKICAgICAgICAgICAgIH0KCiAg ICAgKHVzMTQ0bWtpaV9wbGF5YmFjay5jOjQ0Ny00NTYpLgoKICAzLiBQQ00gY2xvc2Ugb25seSBO VUxMcyB0aGUgcG9pbnRlcnMgYW5kIGRvZXMgbm90IGNhbmNlbCB0aGUgd29yazoKCiAgICAgICAg ICAgICB0YXNjYW0tPnBsYXliYWNrX3N1YnN0cmVhbSA9IE5VTEw7ICAgLyogb3IgY2FwdHVyZSAq LwogICAgICAgICAgICAgcmV0dXJuIDA7CgogICAgICh1czE0NG1raWlfcGxheWJhY2suYzozNS00 MiwgdXMxNDRta2lpX2NhcHR1cmUuYzozNS00MikuICBUaGVyZQogICAgIGlzIG5vIGNhbmNlbF93 b3JrX3N5bmMoJnRhc2NhbS0+c3RvcF9wY21fd29yaykgaW4gZWl0aGVyIGNsb3NlCiAgICAgY2Fs bGJhY2suCgogIDQuIEFMU0EgdGhlbiBkZXRhY2hlcyBhbmQgZnJlZXMgdGhlIHJ1bnRpbWU6Cgog ICAgICAgICAgICAgc25kX3BjbV9kcm9wKHN1YnN0cmVhbSk7CiAgICAgICAgICAgICAuLi4KICAg ICAgICAgICAgIHN1YnN0cmVhbS0+b3BzLT5jbG9zZShzdWJzdHJlYW0pOwogICAgICAgICAgICAg Li4uCiAgICAgICAgICAgICBzbmRfcGNtX2RldGFjaF9zdWJzdHJlYW0oc3Vic3RyZWFtKTsKCiAg ICAgKHNvdW5kL2NvcmUvcGNtX25hdGl2ZS5jOjI3ODUtMjgwNTsgc291bmQvY29yZS9wY20uYzo5 NzgtMTAwNToKICAgICBzdWJzdHJlYW0tPnJ1bnRpbWUgPSBOVUxMIGF0IDk5Nywga2ZyZWUocnVu dGltZSkgYXQgMTAwMSkuCgogIDUuIHNuZF9wY21fc3RvcCgpIGlzIG5vdCBzYWZlIHdpdGhvdXQg dGhlIHN0cmVhbSBsb2NrLgogICAgIHNuZF9wY21fYWN0aW9uKCkgaXMgZG9jdW1lbnRlZCAiTm90 ZTogY2FsbCB3aXRoIHN0cmVhbSBsb2NrIgogICAgIChzb3VuZC9jb3JlL3BjbV9uYXRpdmUuYzox NDExLTE0MTIpOyBzbmRfcGNtX3ByZV9zdG9wKCkgZG9lczoKCiAgICAgICAgICAgICBzdHJ1Y3Qg c25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogICAgICAgICAg ICAgaWYgKHJ1bnRpbWUtPnN0YXRlID09IFNORFJWX1BDTV9TVEFURV9PUEVOKQogICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVCQURGRDsKICAgICAgICAgICAgIHJ1bnRpbWUtPnRyaWdnZXJf bWFzdGVyID0gc3Vic3RyZWFtOwoKICAgICAoc291bmQvY29yZS9wY21fbmF0aXZlLmM6MTU0OS0x NTU4KS4gIEFmdGVyIGRldGFjaCBydW50aW1lIGlzCiAgICAgTlVMTCwgc28gdGhlIGZpcnN0IGRl cmVmZXJlbmNlIGlzIGEgTlVMTC1wb2ludGVyIG9vcHMuCiAgICAgc25kX3BjbV9kb19zdG9wKCkv c25kX3BjbV9wb3N0X3N0b3AoKSB3b3VsZCBhbHNvIHRvdWNoCiAgICAgcnVudGltZS0+dHJpZ2dl cl9tYXN0ZXIgYW5kIHJ1bnRpbWUtPnNsZWVwL3RzbGVlcCAoMTU3MC0xNTc3KS4KCiAgNi4gSW50 ZXJsZWF2aW5nOiB0aGUgaGFuZGxlciBsb2FkcyB0YXNjYW0tPnBsYXliYWNrX3N1YnN0cmVhbSAo b3IKICAgICBjYXB0dXJlX3N1YnN0cmVhbSkgYmVmb3JlIGNsb3NlIGNsZWFycyBpdCwgaXMgcHJl ZW1wdGVkLCBjbG9zZSB0aGVuCiAgICAgZGV0YWNoZXMgYW5kIGZyZWVzIHRoZSBydW50aW1lLCBh bmQgdGhlIGhhbmRsZXIgcHJvY2VlZHMgaW50bwogICAgIHNuZF9wY21fc3RvcCgpIGFuZCB0b3Vj aGVzIHRoZSBOVUxML2ZyZWVkIHJ1bnRpbWUuICBUaGUgd29ya3F1ZXVlCiAgICAgaXRlbSBkb2Vz IG5vdCBuZWVkIHRvIG92ZXJsYXAgd2l0aCBhbiBVUkIgY29tcGxldGlvbiBhdCBjbG9zZSB0aW1l OwogICAgIGl0IG9ubHkgbmVlZHMgdG8gYmUgcXVldWVkIGJlZm9yZSBjbG9zZSBhbmQgZXhlY3V0 ZWQgYWZ0ZXIgZGV0YWNoLgogICAgIElmIHRoZSBoYW5kbGVyIGFscmVhZHkgcGFzc2VkIGEgcnVu dGltZSBub24tTlVMTCBjaGVjayBiZWZvcmUKICAgICBkZXRhY2gsIGEgbmFycm93ZXIgVUFGIGlz IHBvc3NpYmxlLCBidXQgdGhhdCBmb3JtIHdhcyBub3QKICAgICByZXByb2R1Y2VkIGFuZCBpcyBu b3QgdGhlIHByaW1hcnkgY2xhaW0uCgoqIFRyaWdnZXIgbW9kZWwKCiAgRmVlZGJhY2sgc3luYyBs b3NzIGlzIG5lZWRlZDogNDIgY29uc2VjdXRpdmUgZmVlZGJhY2sgZXJyb3JzIHdoaWxlCiAgcGxh eWJhY2sgb3IgY2FwdHVyZSBpcyBydW5uaW5nLiAgVGhpcyBjYW4gYmUgcHJvZHVjZWQgd2l0aCBh IFVTQgogIHRyYWZmaWMgZmF1bHQgaW5qZWN0b3IsIGEgc2hvcnQtcGFja2V0L2xvc3MgaW5qZWN0 aW9uIG9uIHRoZSBmZWVkYmFjawogIGVuZHBvaW50LCBvciBhIHByb2dyYW1tYWJsZSBVU0IgZ2Fk Z2V0IGVtdWxhdGluZyB0aGUgZGV2aWNlLiAgQWZ0ZXIKICB0aGUgZHJpdmVyIGxvZ3MgdGhlIGZl ZWRiYWNrIHN5bmMgbG9zcyBhbmQgcXVldWVzIHRoZSB3b3JrLCBjbG9zZSB0aGUKICBQQ00gc3Ry ZWFtIGJlZm9yZSB0aGUgd29yayBydW5zLiAgTm8gc3BlY2lhbCBwcml2aWxlZ2UgYmV5b25kIGFj Y2VzcwogIHRvIHRoZSBQQ00gZGV2aWNlIGlzIHJlcXVpcmVkOyBUQVNDQU0gVVMtMTQ0TUtJSS9V Uy0xNDQgaGFyZHdhcmUgKG9yCiAgYW4gZW11bGF0ZWQgZXF1aXZhbGVudCkgaXMgcmVxdWlyZWQu CgogIENvbnNlcXVlbmNlOiBOVUxMLXBvaW50ZXIgZGVyZWZlcmVuY2UgLyBvb3BzIGluCiAgdGFz Y2FtX3N0b3BfcGNtX3dvcmtfaGFuZGxlcigpIC0+IHNuZF9wY21fc3RvcCgpIC0+CiAgc25kX3Bj bV9wcmVfc3RvcCgpOyBiZWNhdXNlIHRoZSB3b3JrIGlzIGFscmVhZHkgcXVldWVkLCB0aGlzIGlz CiAgaW5kZXBlbmRlbnQgb2YgdGhlIFVSQiBjb21wbGV0aW9uIHRpbWluZyBpbiBDYXNlIDEuCgoq IFJlcHJvZHVjZXIgKGF0dGFjaGVkIFBPQykKCiAgQXR0YWNoZWQgZmlsZXM6CiAgICB0YXNjYW1f cG9jLmMgIC0gc3ludGhldGljIEFMU0EgUENNIGtlcm5lbCBtb2R1bGUgKEMyIG1vZGUgcGNtMikK ICAgIHBjbXRlc3QuYyAgICAgLSB1c2VybGFuZCBleGVyY2lzZXIKICAgIE1ha2VmaWxlICAgICAg LSBidWlsZHMgdGFzY2FtX3BvYy5rbyBhZ2FpbnN0IHRoZSBydW5uaW5nIGtlcm5lbAoKICBUaGlz IFBPQyBkb2VzIG5vdCBkcml2ZSB0aGUgVEFTQ0FNIGRldmljZSBvciBpbmplY3QgZmVlZGJhY2sg ZXJyb3JzLgogIEl0IGNyZWF0ZXMgYSBzeW50aGV0aWMgQUxTQSBQQ00gY2FyZCB3aG9zZSAuY2xv c2UoKSBvbmx5IGRyb3BzIHRoZQogIHN1YnN0cmVhbSBwb2ludGVyLCBxdWV1ZXMgd29yayB0aGF0 IGNhY2hlcyB0aGUgc3Vic3RyZWFtLCBzdGFydHMgdGhlCiAgc3RyZWFtLCBhbmQgbGV0cyBBTFNB IGRldGFjaCB0aGUgcnVudGltZSBiZWZvcmUgdGhlIHdvcmsgY2FsbHMKICBzbmRfcGNtX3N0b3Ao KS4gIEl0IHRoZXJlZm9yZSByZXByb2R1Y2VzIHRoZSBjbG9zZS9kZXRhY2ggb3JkZXJpbmcgaW4K ICBwb2ludCA0IGFib3ZlLCBub3QgdGhlIHJlYWwgZmVlZGJhY2stZXJyb3IgcGF0aC4KCiAgQnVp bGQgYW5kIHJ1bjoKICAgIG1ha2UKICAgIGdjYyAtc3RhdGljIC1PMiAtbyBwY210ZXN0IHBjbXRl c3QuYwogICAgc3VkbyBtb2Rwcm9iZSBzbmQtcGNtCiAgICBzdWRvIGluc21vZCAuL3Rhc2NhbV9w b2Mua28gbW9kZT1wY20yCiAgICBzdWRvIC4vcGNtdGVzdCAxCiAgICBkbWVzZyB8IHRhaWwgLTUw CiAgICBzdWRvIHJtbW9kIHRhc2NhbV9wb2MKCiAgRXhwZWN0ZWQgcmVzdWx0OgogICAgc25kdXNi X3JhY2U6IGMyIGNhbGwgc25kX3BjbV9zdG9wIHNzPS4uLiBydW50aW1lPTAwMDAwMDAwMDAwMDAw MDAKICAgIEJVRzogS0FTQU46IG51bGwtcHRyLWRlcmVmIGluIHNuZF9wY21fcHJlX3N0b3ArMHgy NC8weDUwCiAgICBCVUc6IGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UsIGFkZHJlc3M6 IDAwMDAwMDAwMDAwMDAwMDAKICAgIE9vcHM6IDAwMDAgWyMxXSBTTVAgS0FTQU4gTk9QVEkKICAg IFJJUDogc25kX3BjbV9wcmVfc3RvcCsweDI0LzB4NTAKCiAgTmVnYXRpdmUgY29udHJvbCAoY2xv c2UgY2FuY2VscyB0aGUgd29yayk6CiAgICBzdWRvIGluc21vZCAuL3Rhc2NhbV9wb2Mua28gbW9k ZT1wY20yIHNhZmU9MQogICAgc3VkbyAuL3BjbXRlc3QgMQogIEV4cGVjdGVkOiBubyBvb3BzL0tB U0FOIHJlcG9ydC4KCiAgVGhlIG1vZHVsZSBjcmVhdGVzIGEgY2FwdHVyZSBQQ00gYXQgY2FyZCBp bmRleCAwOyBpZiB0aGF0IGluZGV4IGlzCiAgb2NjdXBpZWQsIGNoZWNrIC9wcm9jL2Fzb3VuZC9j YXJkcyBhbmQgYWRqdXN0IERFViBpbiBwY210ZXN0LmMuCgogIEEgbWluaW1hbCByZWFsLWhhcmR3 YXJlIEtBU0FOIHRlc3Qgd291bGQ6CiAgICAtIHN0YXJ0IHBsYXliYWNrIGFuZC9vciBjYXB0dXJl OwogICAgLSBpbmplY3QgNDIgY29uc2VjdXRpdmUgZmVlZGJhY2sgZXJyb3JzIChvciB1c2UgYSBn YWRnZXQgdGhhdAogICAgICByZXR1cm5zIHNob3J0L2Vycm9yIHBhY2tldHMgb24gdGhlIGZlZWRi YWNrIGVuZHBvaW50KSB1bnRpbCB0aGUKICAgICAgZHJpdmVyIGxvZ3MgIkZhdGFsOiBGZWVkYmFj ayBzeW5jIGxvc3QuIFN0b3BwaW5nIHN0cmVhbS4iOwogICAgLSBpbW1lZGlhdGVseSBjbG9zZSB0 aGUgUENNIHN0cmVhbSBpbiBhIGxvb3A7CiAgICAtIHdhdGNoIGRtZXNnIGZvciBhIEtBU0FOIHJl cG9ydCB3aXRoCiAgICAgIHRhc2NhbV9zdG9wX3BjbV93b3JrX2hhbmRsZXIgaW4gdGhlIHN0YWNr LgoKCiogU3VnZ2VzdGVkIGRpcmVjdGlvbgoKICBNYWtlIC5jbG9zZSgpIGNhbmNlbCB0aGUgd29y ayBiZWZvcmUgcmV0dXJuaW5nIHRvIEFMU0E6IGNsZWFyIHRoZQogIGFjdGl2ZSBmbGFnIGFuZCBw b2ludGVyIHVuZGVyIHRhc2NhbS0+bG9jaywga2lsbCB0aGUgcmVsZXZhbnQgVVJCcwogIHBlci1V UkIsIHRoZW4gY2FuY2VsX3dvcmtfc3luYygmdGFzY2FtLT5zdG9wX3BjbV93b3JrKSAoYW5kCiAg c3RvcF93b3JrL2NhcHR1cmVfd29yayBhcyBhcHByb3ByaWF0ZSkuICBjYW5jZWxfd29ya19zeW5j KCkgaXMgdGhlCiAgbGlmZWN5Y2xlIGd1YXJhbnRlZTsgaXQgd2FpdHMgZm9yIGEgcnVubmluZyBo YW5kbGVyLgoKICBJbiB0aGUgaGFuZGxlciwgdXNlIHNuZF9wY21fc3RvcF94cnVuKCkKICAoc291 bmQvY29yZS9wY21fbmF0aXZlLmM6MTYyOC0xNjM1KSwgd2hpY2ggdGFrZXMgdGhlIFBDTSBzdHJl YW0gbG9jawogIGFuZCByZWNoZWNrcyBzdWJzdHJlYW0tPnJ1bnRpbWUuICBUaGF0IGZpeGVzIHRo ZSBBUEktY29udmVudGlvbgogIHZpb2xhdGlvbiwgYnV0IGl0IGlzIG5vdCBhIHN1YnN0aXR1dGUg Zm9yIGNhbmNlbGxpbmcgdGhlIHdvcmsgaW4KICBjbG9zZTogc25kX3BjbV9kZXRhY2hfc3Vic3Ry ZWFtKCkgZG9lcyBub3QgdGFrZSB0aGUgc3RyZWFtIGxvY2ssIHNvCiAgYSBoYW5kbGVyIHRoYXQg YWxyZWFkeSBwYXNzZWQgdGhlIHJ1bnRpbWUgY2hlY2sgY2FuIHN0aWxsIHJhY2Ugd2l0aAogIGRl dGFjaC4KCiAgSSBhbSBoYXBweSB0byB0ZXN0IGEgcHJvcG9zZWQgZml4LgoKUGxlYXNlIGtlZXAg bWUgaW4gQ2M7IEkgYW0gbm90IHN1YnNjcmliZWQgdG8gdGhlIGxpc3RzLgoKClJlZ2FyZHMsCkhh bnhpYW5nIFh1Cnh1aHhAaHVzdC5lZHUuY24K ------=_Part_522742_1033163319.1794572993764 Content-Type: text/plain; name=tascam_poc.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tascam_poc.c" Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLyoKICogdGFzY2FtX3BvYy5jIC0g c3ludGhldGljIEFMU0EgUENNIGxpZmV0aW1lIHJlcHJvZHVjZXIgZm9yIHRoZSBUQVNDQU0KICog VVMtMTQ0TUtJSSBtYW51YWwtcmV2aWV3IGNhc2VzIEMxIGFuZCBDMi4KICoKICogVGhpcyBtb2R1 bGUgZGVsaWJlcmF0ZWx5IHJlcHJvZHVjZXMgdGhlICpsaWZldGltZSBwYXR0ZXJucyogb2YgdGhl IGRyaXZlciwKICogbm90IHRoZSBVU0IgZGV2aWNlIGl0c2VsZjoKICogICBwY20xIDogQUxTQSBQ Q00gLmNsb3NlKCkgZHJvcHMgdGhlIHJ1bnRpbWUgd2hpbGUgYW4gYXN5bmNocm9ub3VzCiAqICAg ICAgICAgICJjb21wbGV0aW9uIiBzdGlsbCBob2xkcyBhIHJ1bnRpbWUgcG9pbnRlciAoQzEpLgog KiAgIHBjbTIgOiBhIHF1ZXVlZCB3b3JrIGl0ZW0gY2FsbHMgc25kX3BjbV9zdG9wKCkgYWZ0ZXIg LmNsb3NlKCkvZGV0YWNoCiAqICAgICAgICAgIChDMikuCiAqCiAqIFRoZSBBTFNBIGNhcmQgaXMg YSBzeW50aGV0aWMgcGxhdGZvcm0gZGV2aWNlOyBubyBUQVNDQU0gaGFyZHdhcmUgb3IgVVNCCiAq IHRyYWZmaWMgaXMgaW52b2x2ZWQuICBCdWlsZCBhbmQgcnVuIGluc3RydWN0aW9ucyBhcmUgaW4g UkVBRE1FLnR4dC4KICovCiNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KI2luY2x1ZGUgPGxpbnV4 L2tlcm5lbC5oPgojaW5jbHVkZSA8bGludXgvaW5pdC5oPgojaW5jbHVkZSA8bGludXgvc2xhYi5o PgojaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KI2lu Y2x1ZGUgPGxpbnV4L3dhaXQuaD4KI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KI2luY2x1 ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgojaW5jbHVkZSA8c291bmQvY29yZS5oPgojaW5j bHVkZSA8c291bmQvcGNtLmg+CiNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CgojZGVmaW5l IERSViAic25kdXNiX3JhY2UiCiNkZWZpbmUgQ09PS0lFIDB4NWE1YTEyMzRkZWFkYmVlZlVMTAoK c3RhdGljIGNoYXIgKm1vZGUgPSAicGNtMSI7Cm1vZHVsZV9wYXJhbShtb2RlLCBjaGFycCwgMDQ0 NCk7CnN0YXRpYyBib29sIHNhZmU7Cm1vZHVsZV9wYXJhbShzYWZlLCBib29sLCAwNDQ0KTsKTU9E VUxFX1BBUk1fREVTQyhtb2RlLCAicGNtMSBvciBwY20yIik7Ck1PRFVMRV9QQVJNX0RFU0Moc2Fm ZSwgInRha2UgdGhlIHNhZmUgY2xlYW51cCBwYXRoIChuZWdhdGl2ZSBjb250cm9sKSIpOwoKLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCi8qIFYxL1YyIHN5bnRoZXRpYyBBTFNBIFBDTSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCnN0cnVjdCByYWNl X3BjbSB7CglzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKCXN0cnVjdCBzbmRf cGNtX3J1bnRpbWUgKnJ1bnRpbWU7CglzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKCWF0b21pY190 IGFjdGl2ZTsKCWJvb2wgYzI7Cgl1NjQgY29va2llOwp9OwoKc3RhdGljIHN0cnVjdCBzbmRfY2Fy ZCAqcmFjZV9jYXJkOwpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcmFjZV9wZGV2Owpz dGF0aWMgc3RydWN0IHNuZF9wY20gKnJhY2VfcGNtX2RldjsKCnN0YXRpYyB2b2lkIHJhY2VfcGNt X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQp7CglzdHJ1Y3QgcmFjZV9wY20gKm0gPSBj b250YWluZXJfb2Yod29yaywgc3RydWN0IHJhY2VfcGNtLCB3b3JrKTsKCXN0cnVjdCBzbmRfcGNt X3J1bnRpbWUgKnJ0ID0gbS0+cnVudGltZTsKCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Mg PSBtLT5zdWJzdHJlYW07CgoJcHJfaW5mbyhEUlYgIjogd29yayBzdGFydCBtb2RlPSVzIHJ0PSVw eCBzcz0lcHggY29va2llPSUjbGx4XG4iLAoJCW0tPmMyID8gImMyIiA6ICJjMSIsIHJ0LCBzcywg bS0+Y29va2llKTsKCWlmICghbS0+YzIgJiYgIXJ0KQoJCXJldHVybjsKCWlmIChtLT5jMiAmJiAh c3MpCgkJcmV0dXJuOwoKCS8qIEdpdmUgdGhlIGNsb3NpbmcgdGhyZWFkIHRpbWUgdG8gcnVuIC5j bG9zZSgpIGFuZCBkZXRhY2gvZnJlZS4gKi8KCW1zbGVlcCgxMjApOwoKCWlmICghbS0+YzIpIHsK CQkvKgoJCSAqIEMxOiB0aGUgY29tcGxldGlvbiBjYWNoZWQgcnVudGltZSBiZWZvcmUgY2xvc2U7 IGFmdGVyCgkJICogc25kX3BjbV9kZXRhY2hfc3Vic3RyZWFtKCkgdGhpcyBpcyBmcmVlZCBtZW1v cnkuCgkJICovCgkJcHJfaW5mbyhEUlYgIjogYzEgdXNlIHJ0PSVweCBkbWFfYXJlYT0lcHhcbiIs IHJ0LAoJCQlSRUFEX09OQ0UocnQtPmRtYV9hcmVhKSk7CgkJYmFycmllcigpOwoJCSh2b2lkKVJF QURfT05DRShydC0+ZG1hX2FyZWEpOwoJfSBlbHNlIHsKCQkvKgoJCSAqIEMyOiB0aGUgd29yayBj YWNoZWQgdGhlIHN1YnN0cmVhbSwgYnV0IGRldGFjaCBtYWRlCgkJICogc3MtPnJ1bnRpbWUgTlVM TDsgc25kX3BjbV9zdG9wKCkgZGVyZWZlcmVuY2VzIGl0LgoJCSAqLwoJCXByX2luZm8oRFJWICI6 IGMyIGNhbGwgc25kX3BjbV9zdG9wIHNzPSVweCBydW50aW1lPSVweFxuIiwKCQkJc3MsIFJFQURf T05DRShzcy0+cnVudGltZSkpOwoJCXNuZF9wY21fc3RvcChzcywgU05EUlZfUENNX1NUQVRFX1hS VU4pOwoJfQoJcHJfaW5mbyhEUlYgIjogd29yayBlbmRcbiIpOwp9CgpzdGF0aWMgaW50IHJhY2Vf cGNtX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCnsKCXN0cnVjdCBz bmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CglzdHJ1Y3QgcmFj ZV9wY20gKm07CgoJbSA9IGt6YWxsb2Moc2l6ZW9mKCptKSwgR0ZQX0tFUk5FTCk7CglpZiAoIW0p CgkJcmV0dXJuIC1FTk9NRU07CgltLT5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CgltLT5ydW50aW1l ID0gcnVudGltZTsKCW0tPmNvb2tpZSA9IENPT0tJRTsKCW0tPmMyID0gIXN0cmNtcChtb2RlLCAi cGNtMiIpOwoJSU5JVF9XT1JLKCZtLT53b3JrLCByYWNlX3BjbV93b3JrKTsKCWF0b21pY19zZXQo Jm0tPmFjdGl2ZSwgMCk7CglydW50aW1lLT5wcml2YXRlX2RhdGEgPSBtOwoJcnVudGltZS0+aHcu aW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfAoJCQkgICBTTkRSVl9QQ01fSU5GT19JTlRFUkxF QVZFRCB8CgkJCSAgIFNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQ7CglydW50aW1lLT5ody5mb3Jt YXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEU7CglydW50aW1lLT5ody5yYXRlcyA9IFNORFJW X1BDTV9SQVRFXzQ0MTAwOwoJcnVudGltZS0+aHcucmF0ZV9taW4gPSA0NDEwMDsKCXJ1bnRpbWUt Pmh3LnJhdGVfbWF4ID0gNDQxMDA7CglydW50aW1lLT5ody5jaGFubmVsc19taW4gPSAyOwoJcnVu dGltZS0+aHcuY2hhbm5lbHNfbWF4ID0gMjsKCXJ1bnRpbWUtPmh3LmJ1ZmZlcl9ieXRlc19tYXgg PSA2NCAqIDEwMjQ7CglydW50aW1lLT5ody5wZXJpb2RfYnl0ZXNfbWluID0gMTAyNDsKCXJ1bnRp bWUtPmh3LnBlcmlvZF9ieXRlc19tYXggPSA0MDk2OwoJcnVudGltZS0+aHcucGVyaW9kc19taW4g PSAyOwoJcnVudGltZS0+aHcucGVyaW9kc19tYXggPSA4OwoJcHJfaW5mbyhEUlYgIjogb3BlbiBz dWI9JXB4IHJ0PSVweCBtb2RlPSVzXG4iLCBzdWJzdHJlYW0sIHJ1bnRpbWUsIG1vZGUpOwoJcmV0 dXJuIDA7Cn0KCnN0YXRpYyBpbnQgcmFjZV9wY21fY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3Ry ZWFtICpzdWJzdHJlYW0pCnsKCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJz dHJlYW0tPnJ1bnRpbWU7CglzdHJ1Y3QgcmFjZV9wY20gKm0gPSBydW50aW1lID8gcnVudGltZS0+ cHJpdmF0ZV9kYXRhIDogTlVMTDsKCglwcl9pbmZvKERSViAiOiBjbG9zZSBzdWI9JXB4IHJ0PSVw eCBtPSVweCBzYWZlPSVkXG4iLAoJCXN1YnN0cmVhbSwgcnVudGltZSwgbSwgc2FmZSk7CglpZiAo bSAmJiBzYWZlKQoJCWNhbmNlbF93b3JrX3N5bmMoJm0tPndvcmspOwoJaWYgKG0pIHsKCQltLT5z dWJzdHJlYW0gPSBOVUxMOwoJCW0tPnJ1bnRpbWUgPSBOVUxMOwoJfQoJcmV0dXJuIDA7Cn0KCnN0 YXRpYyBpbnQgcmFjZV9wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vi c3RyZWFtLAoJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKewoJcmV0 dXJuIDA7Cn0KCnN0YXRpYyBpbnQgcmFjZV9wY21fcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJz dHJlYW0gKnN1YnN0cmVhbSkKewoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgcmFjZV9wY21fdHJp Z2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKewoJc3Ry dWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKCXN0cnVj dCByYWNlX3BjbSAqbSA9IHJ1bnRpbWUgPyBydW50aW1lLT5wcml2YXRlX2RhdGEgOiBOVUxMOwoK CWlmICghbSkKCQlyZXR1cm4gMDsKCXN3aXRjaCAoY21kKSB7CgljYXNlIFNORFJWX1BDTV9UUklH R0VSX1NUQVJUOgoJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CgkJYXRvbWljX3NldCgm bS0+YWN0aXZlLCAxKTsKCQlwcl9pbmZvKERSViAiOiB0cmlnZ2VyIHN0YXJ0LCBxdWV1ZSB3b3Jr XG4iKTsKCQlzY2hlZHVsZV93b3JrKCZtLT53b3JrKTsKCQlicmVhazsKCWNhc2UgU05EUlZfUENN X1RSSUdHRVJfU1RPUDoKCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKCQlhdG9taWNf c2V0KCZtLT5hY3RpdmUsIDApOwoJCWJyZWFrOwoJfQoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBzbmRf cGNtX3VmcmFtZXNfdCByYWNlX3BjbV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAq c3Vic3RyZWFtKQp7CglyZXR1cm4gMDsKfQoKc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNtX29w cyByYWNlX3BjbV9vcHMgPSB7Cgkub3BlbiA9IHJhY2VfcGNtX29wZW4sCgkuY2xvc2UgPSByYWNl X3BjbV9jbG9zZSwKCS5od19wYXJhbXMgPSByYWNlX3BjbV9od19wYXJhbXMsCgkucHJlcGFyZSA9 IHJhY2VfcGNtX3ByZXBhcmUsCgkudHJpZ2dlciA9IHJhY2VfcGNtX3RyaWdnZXIsCgkucG9pbnRl ciA9IHJhY2VfcGNtX3BvaW50ZXIsCn07CgpzdGF0aWMgaW50IHNuZHVzYl9wY21faW5pdCh2b2lk KQp7CglpbnQgcmV0OwoKCXJhY2VfcGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9zaW1w bGUoInNuZHVzYl9yYWNlIiwgLTEsIE5VTEwsIDApOwoJaWYgKElTX0VSUihyYWNlX3BkZXYpKQoJ CXJldHVybiBQVFJfRVJSKHJhY2VfcGRldik7CglyZXQgPSBzbmRfY2FyZF9uZXcoJnJhY2VfcGRl di0+ZGV2LCAwLCAiU25kVXNiUmFjZSIsIFRISVNfTU9EVUxFLCAwLAoJCQkgICAmcmFjZV9jYXJk KTsKCWlmIChyZXQgPCAwKSB7CgkJcHJfZXJyKERSViAiOiBzbmRfY2FyZF9uZXcgZmFpbGVkOiAl ZFxuIiwgcmV0KTsKCQlyZXR1cm4gcmV0OwoJfQoJcmV0ID0gc25kX3BjbV9uZXcocmFjZV9jYXJk LCAiU25kVXNiUmFjZSIsIDAsIDAsIDEsICZyYWNlX3BjbV9kZXYpOwoJaWYgKHJldCA8IDApIHsK CQlwcl9lcnIoRFJWICI6IHNuZF9wY21fbmV3IGZhaWxlZDogJWRcbiIsIHJldCk7CgkJc25kX2Nh cmRfZnJlZShyYWNlX2NhcmQpOwoJCXJldHVybiByZXQ7Cgl9CglzbmRfcGNtX3NldF9vcHMocmFj ZV9wY21fZGV2LCBTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkUsICZyYWNlX3BjbV9vcHMpOwoJc25k X3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChyYWNlX3BjbV9kZXYsCgkJCQkJICAg ICAgU05EUlZfRE1BX1RZUEVfQ09OVElOVU9VUywgTlVMTCwKCQkJCQkgICAgICA2NCAqIDEwMjQs IDY0ICogMTAyNCk7CglyZXQgPSBzbmRfY2FyZF9yZWdpc3RlcihyYWNlX2NhcmQpOwoJaWYgKHJl dCA8IDApIHsKCQlwcl9lcnIoRFJWICI6IHNuZF9jYXJkX3JlZ2lzdGVyIGZhaWxlZDogJWRcbiIs IHJldCk7CgkJc25kX2NhcmRfZnJlZShyYWNlX2NhcmQpOwoJCXJldHVybiByZXQ7Cgl9Cglwcl9p bmZvKERSViAiOiBjYXJkIHJlZ2lzdGVyZWQgbW9kZT0lcyBzYWZlPSVkXG4iLCBtb2RlLCBzYWZl KTsKCXJldHVybiAwOwp9CgpzdGF0aWMgaW50IF9faW5pdCBzbmR1c2JfaW5pdCh2b2lkKQp7Cglw cl9pbmZvKERSViAiOiBpbml0IG1vZGU9JXMgc2FmZT0lZFxuIiwgbW9kZSwgc2FmZSk7CglyZXR1 cm4gc25kdXNiX3BjbV9pbml0KCk7Cn0KCnN0YXRpYyB2b2lkIF9fZXhpdCBzbmR1c2JfZXhpdCh2 b2lkKQp7Cglwcl9pbmZvKERSViAiOiBleGl0XG4iKTsKCWlmIChyYWNlX2NhcmQpCgkJc25kX2Nh cmRfZnJlZShyYWNlX2NhcmQpOwoJaWYgKHJhY2VfcGRldikKCQlwbGF0Zm9ybV9kZXZpY2VfdW5y ZWdpc3RlcihyYWNlX3BkZXYpOwp9Cgptb2R1bGVfaW5pdChzbmR1c2JfaW5pdCk7Cm1vZHVsZV9l eGl0KHNuZHVzYl9leGl0KTsKTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpNT0RVTEVfREVTQ1JJUFRJ T04oIlRBU0NBTSBVUy0xNDRNS0lJIEMxL0MyIHN5bnRoZXRpYyBsaWZldGltZSByZXByb2R1Y2Vy Iik7Cg== ------=_Part_522742_1033163319.1794572993764 Content-Type: text/plain; name=pcmtest.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pcmtest.c" I2RlZmluZSBfR05VX1NPVVJDRQovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAov KgogKiBwY210ZXN0LmMgLSBndWVzdC1zaWRlIGV4ZXJjaXNlciBmb3Igc25kcGNpX3JhY2Uua28u CiAqCiAqIFVzYWdlOgogKiAgIHBjbXRlc3QgY2xvc2UgW2l0ZXJzXSAgLSBvcGVuL3N0YXJ0L2Ns b3NlIG9uZSBwbGF5YmFjayBzdWJzdHJlYW0gKFY0KQogKiAgIHBjbXRlc3QgbGluayAgW2l0ZXJz XSAgLSBsaW5rIHR3byBwbGF5YmFjayBzdWJzdHJlYW1zLCBjbG9zZSBCIHdoaWxlCiAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoZSBBIHRpbWVyIGNhbGxiYWNrIHdhbGtzIHRoZSBncm91 cCAoVjUpCiAqLwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVk ZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxlcnJuby5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1 ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4K I2luY2x1ZGUgPHNjaGVkLmg+CiNpbmNsdWRlIDxzb3VuZC9hc291bmQuaD4KCiNkZWZpbmUgREVW ICIvZGV2L3NuZC9wY21DMEQwYyIKCnN0YXRpYyBpbnQgc2V0X2h3X3BhcmFtcyhpbnQgZmQpCnsK CXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyBwOwoJaW50IGksIHJldDsKCgltZW1zZXQoJnAsIDAs IHNpemVvZihwKSk7Cglmb3IgKGkgPSAwOyBpIDw9IFNORFJWX1BDTV9IV19QQVJBTV9MQVNUX01B U0sgLQoJCQlTTkRSVl9QQ01fSFdfUEFSQU1fRklSU1RfTUFTSzsgaSsrKQoJCW1lbXNldCgmcC5t YXNrc1tpXSwgMHhmZiwgc2l6ZW9mKHAubWFza3NbaV0pKTsKCWZvciAoaSA9IDA7IGkgPD0gU05E UlZfUENNX0hXX1BBUkFNX0xBU1RfSU5URVJWQUwgLQoJCQlTTkRSVl9QQ01fSFdfUEFSQU1fRklS U1RfSU5URVJWQUw7IGkrKykgewoJCXAuaW50ZXJ2YWxzW2ldLm1pbiA9IDA7CgkJcC5pbnRlcnZh bHNbaV0ubWF4ID0gVUlOVF9NQVg7CgkJcC5pbnRlcnZhbHNbaV0uaW50ZWdlciA9IDA7Cgl9Cglw LnJtYXNrID0gfjBVOwoJcmV0ID0gaW9jdGwoZmQsIFNORFJWX1BDTV9JT0NUTF9IV19SRUZJTkUs ICZwKTsKCXByaW50ZigiSFdfUkVGSU5FIHJldD0lZCBlcnJubz0lZFxuIiwgcmV0LCBlcnJubyk7 CglpZiAocmV0IDwgMCkKCQlyZXR1cm4gLTE7CglwcmludGYoInJlZmluZWQ6IHJhdGU9JXUgY2g9 JXUgZm10PSV1IHBzPSV1IHBlcmlvZHM9JXUgYnM9JXVcbiIsCgkgICAgICAgcC5pbnRlcnZhbHNb U05EUlZfUENNX0hXX1BBUkFNX1JBVEUgLSBTTkRSVl9QQ01fSFdfUEFSQU1fRklSU1RfSU5URVJW QUxdLm1pbiwKCSAgICAgICBwLmludGVydmFsc1tTTkRSVl9QQ01fSFdfUEFSQU1fQ0hBTk5FTFMg LSBTTkRSVl9QQ01fSFdfUEFSQU1fRklSU1RfSU5URVJWQUxdLm1pbiwKCSAgICAgICBfX2J1aWx0 aW5fY3R6KHAubWFza3NbU05EUlZfUENNX0hXX1BBUkFNX0ZPUk1BVF0uYml0c1swXSksCgkgICAg ICAgcC5pbnRlcnZhbHNbU05EUlZfUENNX0hXX1BBUkFNX1BFUklPRF9TSVpFIC0gU05EUlZfUENN X0hXX1BBUkFNX0ZJUlNUX0lOVEVSVkFMXS5taW4sCgkgICAgICAgcC5pbnRlcnZhbHNbU05EUlZf UENNX0hXX1BBUkFNX1BFUklPRFMgLSBTTkRSVl9QQ01fSFdfUEFSQU1fRklSU1RfSU5URVJWQUxd Lm1pbiwKCSAgICAgICBwLmludGVydmFsc1tTTkRSVl9QQ01fSFdfUEFSQU1fQlVGRkVSX1NJWkUg LSBTTkRSVl9QQ01fSFdfUEFSQU1fRklSU1RfSU5URVJWQUxdLm1pbik7CglyZXQgPSBpb2N0bChm ZCwgU05EUlZfUENNX0lPQ1RMX0hXX1BBUkFNUywgJnApOwoJaWYgKHJldCA8IDApIHsKCQlmcHJp bnRmKHN0ZGVyciwgIkhXX1BBUkFNUzogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CgkJcmV0dXJu IC0xOwoJfQoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgb3Blbl9zdHJlYW0odm9pZCkKewoJaW50 IGZkID0gb3BlbihERVYsIE9fUkRXUiB8IE9fTk9OQkxPQ0spOwoKCWlmIChmZCA8IDApCgkJZnBy aW50ZihzdGRlcnIsICJvcGVuICVzOiAlc1xuIiwgREVWLCBzdHJlcnJvcihlcnJubykpOwoJcmV0 dXJuIGZkOwp9CgpzdGF0aWMgaW50IHByZXBhcmVfc3RyZWFtKGludCBmZCkKewoJaWYgKHNldF9o d19wYXJhbXMoZmQpIDwgMCkKCQlyZXR1cm4gLTE7CglpZiAoaW9jdGwoZmQsIFNORFJWX1BDTV9J T0NUTF9QUkVQQVJFLCAwKSA8IDApIHsKCQlmcHJpbnRmKHN0ZGVyciwgIlBSRVBBUkU6ICVzXG4i LCBzdHJlcnJvcihlcnJubykpOwoJCXJldHVybiAtMTsKCX0KCXJldHVybiAwOwp9CgpzdGF0aWMg aW50IHN0YXJ0X3N0cmVhbShpbnQgZmQpCnsKCWlmIChpb2N0bChmZCwgU05EUlZfUENNX0lPQ1RM X1NUQVJULCAwKSA8IDApIHsKCQlmcHJpbnRmKHN0ZGVyciwgIlNUQVJUOiAlc1xuIiwgc3RyZXJy b3IoZXJybm8pKTsKCQlyZXR1cm4gLTE7Cgl9CglyZXR1cm4gMDsKfQoKc3RhdGljIGludCBvbmVf Y2xvc2Uodm9pZCkKewoJaW50IGZkID0gb3Blbl9zdHJlYW0oKTsKCglpZiAoZmQgPCAwKQoJCXJl dHVybiAtMTsKCWlmIChwcmVwYXJlX3N0cmVhbShmZCkgPCAwIHx8IHN0YXJ0X3N0cmVhbShmZCkg PCAwKSB7CgkJY2xvc2UoZmQpOwoJCXJldHVybiAtMTsKCX0KCXVzbGVlcCgxMDAwMCk7CgljbG9z ZShmZCk7CglyZXR1cm4gMDsKfQoKc3RhdGljIGludCBvbmVfbGluayh2b2lkKQp7CglpbnQgYSA9 IG9wZW5fc3RyZWFtKCk7CglpbnQgYiA9IG9wZW5fc3RyZWFtKCk7CgoJaWYgKGEgPCAwIHx8IGIg PCAwKQoJCXJldHVybiAtMTsKCWlmIChwcmVwYXJlX3N0cmVhbShhKSA8IDAgfHwgcHJlcGFyZV9z dHJlYW0oYikgPCAwKQoJCWdvdG8gb3V0OwoJaWYgKGlvY3RsKGEsIFNORFJWX1BDTV9JT0NUTF9M SU5LLCBiKSA8IDApIHsKCQlmcHJpbnRmKHN0ZGVyciwgIkxJTks6ICVzXG4iLCBzdHJlcnJvcihl cnJubykpOwoJCWdvdG8gb3V0OwoJfQoJaWYgKHN0YXJ0X3N0cmVhbShhKSA8IDApCgkJZ290byBv dXQ7CgkvKiBMZXQgdGhlIEEgdGltZXIgY2FsbGJhY2sgc3RhcnQgd2Fsa2luZyB0aGUgbGlua2Vk IGdyb3VwLiAqLwoJdXNsZWVwKDE1MDApOwoJLyogQ2xvc2UgQiB3aGlsZSBBJ3MgY2FsbGJhY2sg bWF5IGJlIGluIHRoZSBncm91cCBsb29wLiAqLwoJY2xvc2UoYik7CgliID0gLTE7Cgl1c2xlZXAo MTUwMCk7Cm91dDoKCWlmIChiID49IDApCgkJY2xvc2UoYik7CglpZiAoYSA+PSAwKQoJCWNsb3Nl KGEpOwoJcmV0dXJuIDA7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKewoJY3B1 X3NldF90IHNldDsKCglDUFVfWkVSTygmc2V0KTsKCUNQVV9TRVQoMSwgJnNldCk7CglzY2hlZF9z ZXRhZmZpbml0eSgwLCBzaXplb2Yoc2V0KSwgJnNldCk7CglpbnQgaSwgbiA9IDIwMDsKCglpZiAo YXJnYyA8IDIpIHsKCQlmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyBjbG9zZXxsaW5rIFtpdGVy c11cbiIsIGFyZ3ZbMF0pOwoJCXJldHVybiAyOwoJfQoJaWYgKGFyZ2MgPiAyKQoJCW4gPSBhdG9p KGFyZ3ZbMl0pOwoJcHJpbnRmKCJwY210ZXN0OiBtb2RlPSVzIGl0ZXJzPSVkXG4iLCBhcmd2WzFd LCBuKTsKCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKCQlpZiAoIXN0cmNtcChhcmd2WzFdLCAi bGluayIpKSB7CgkJCWlmIChvbmVfbGluaygpIDwgMCkKCQkJCWJyZWFrOwoJCX0gZWxzZSB7CgkJ CWlmIChvbmVfY2xvc2UoKSA8IDApCgkJCQlicmVhazsKCQl9Cgl9CglwcmludGYoInBjbXRlc3Q6 IGRvbmUgaT0lZFxuIiwgaSk7CglyZXR1cm4gMDsKfQo= ------=_Part_522742_1033163319.1794572993764 Content-Type: application/octet-stream; name=Makefile Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Makefile" IyBCdWlsZCBhZ2FpbnN0IHRoZSBydW5uaW5nIGtlcm5lbCdzIGhlYWRlcnMuCiMgRm9yIGEgS0FT QU4gdGVzdCBrZXJuZWwsIHNldCBLRElSIHRvIHRoYXQgYnVpbGQgdHJlZSwgZS5nLjoKIyAgIG1h a2UgS0RJUj0vcGF0aC90by9saW51eCBLQVNBTj0xCktESVIgPz0gL2xpYi9tb2R1bGVzLyQoc2hl bGwgdW5hbWUgLXIpL2J1aWxkClBXRCAgOj0gJChzaGVsbCBwd2QpCgphbGw6CgkkKE1BS0UpIC1D ICQoS0RJUikgTT0kKFBXRCkgbW9kdWxlcwoKY2xlYW46CgkkKE1BS0UpIC1DICQoS0RJUikgTT0k KFBXRCkgY2xlYW4KCm9iai1tIDo9IHRhc2NhbV9wb2Mubwo= ------=_Part_522742_1033163319.1794572993764--