From owner-freebsd-drivers@freebsd.org Wed Jun 3 11:21:03 2020 Return-Path: Delivered-To: freebsd-drivers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2AEF6334148; Wed, 3 Jun 2020 11:21:03 +0000 (UTC) (envelope-from rajfbsd@gmail.com) Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49cRL62qWQz481m; Wed, 3 Jun 2020 11:21:02 +0000 (UTC) (envelope-from rajfbsd@gmail.com) Received: by mail-wr1-x42c.google.com with SMTP id t18so1934555wru.6; Wed, 03 Jun 2020 04:21:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=3+3zxVrq3K3bbogOKRzdRhvic6Chh3MZWACfD81N6wk=; b=TI8Ci2FELKtsCzrCsDhQVbtJkq2BlAN6w7RP/4Y1KCofCv9MpXWnqBxIsxgsl/AJv2 cFCuau1gMXvLMvI9WKiLRSa4ulT+rm2gW+FHliGq1jqOd315BampCQNUHpIRYWHvntXl 07AXB4ldBn2YyDe6AQaavtToLlxveR5/Vq9/5GikXSRoT6Cnikoqx6jUx8T5O9rl8CcN ttw2zWr3buRTk6w+CemKivd7w3r1NUIig4OjOUH9oAWrl4Fs0NSdqMJUYGjvY8C5oJaB geNKdE4Uye6flgTRZOJo3QSXJbT0bpyVR8QchPTOUqM/jTGJyCwISAcVwVvebYaV0gjY xu8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=3+3zxVrq3K3bbogOKRzdRhvic6Chh3MZWACfD81N6wk=; b=KQxEZf2kt/FwYWwwXbRWz8GG+N4adaELryzodSOY6Tlxp3RV//56t59p1pwzwqtHpg M7j0uCYvQB0DPSQbzXtMIECuFvOgRchOcTCCv/Bsk0anq5PhToVilND006rsHIz55krI xlkr0nbpSBQ8QPNpfef2PRknthevoyZKHIEBFISzfmBr6Q3dDJNaw0coWUz0Rt7kvz4U UqCfaMMGpixGtaJOgXgZUkd4ojz8vyZJCQo4uu6LNh2QLHBReL57wYStC0LyLZXEOdUJ 2MNd/0KG/ULo0McJx/OaBaz5yGji0/IdfCL/prCOMPGG1Uy9Cx2+4zhRHNTsjH9YQdgI pSmA== X-Gm-Message-State: AOAM530pTeoIbLdpVR3fIoXlO2FR4wbK+9qd8eqQcOShPNz7fnYTrTI9 0XQ4Yq70mCGnpyRzO13bAjbNnA3Nree7WQbLp3xzhKXj X-Google-Smtp-Source: ABdhPJx7Gie+fuNgncfi66VkvHGOOYmoL1Upcb3gGstORIDJghnpwgOjU9cfyKCoDoSbONJBXE9cFd2yMZEysQEnFGk= X-Received: by 2002:a5d:67c8:: with SMTP id n8mr19828649wrw.343.1591183260552; Wed, 03 Jun 2020 04:21:00 -0700 (PDT) MIME-Version: 1.0 From: Rajesh Kumar Date: Wed, 3 Jun 2020 16:50:49 +0530 Message-ID: Subject: Can we hook a device as device to two different parent devices? To: freebsd-drivers@freebsd.org, FreeBSD Hackers X-Rspamd-Queue-Id: 49cRL62qWQz481m X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=TI8Ci2FE; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of rajfbsd@gmail.com designates 2a00:1450:4864:20::42c as permitted sender) smtp.mailfrom=rajfbsd@gmail.com X-Spamd-Result: default: False [-2.47 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.966]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.05)[-1.046]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::42c:from]; NEURAL_HAM_SHORT(-0.46)[-0.457]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; FREEMAIL_ENVFROM(0.00)[gmail.com]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.33 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jun 2020 11:21:03 -0000 Hi, Is it really possible to declare a module with two parents? Like the following declarations in the same driver. devclass_t test_dev_devclass; static DEFINE_CLASS_0(test_dev, test_dev_driver, test_dev_methods, sizeof(struct test_dev_ctx)); DRIVER_MODULE(test_dev, *device1*, test_dev_driver, test_dev_devclass, NULL, NULL); DRIVER_MODULE(test_dev, *device2*, test_dev_driver, test_dev_devclass, NULL, NULL); I see similar references in other drivers attaching to both simpleus and ofwbus. So, If it's possible, how to get the reference for both the parents? device_get_parent(test_dev) will give reference of one parent only right, so how to get the reference of the desired parent? Thanks, Rajesh.