LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: "BALBIR SINGH" <balbir.singh@wipro.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Linus Torvalds <torvalds@transmeta.com>,
	linux-kernel@vger.kernel.org,
	"David S. Miller" <davem@redhat.com>
Subject: [PATCH] Trivial patch for SIOCGIFCOUNT
Date: Tue, 09 Oct 2001 18:53:47 +0530	[thread overview]
Message-ID: <3BC2FA63.6070006@wipro.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2283 bytes --]

Hello Linus, Alan, David,
	To make the API orthogonal, I have included a patch for SIOCGIFCOUNT,
which currently returns -EINVAL. The only reason I am providing this patch
is to make the API complete and make it easier to port applications from
other UNIX like OS'es.

I have verified and am sure that this patch works. The priority of this patch
is not very high, but it would be good to have a orthogonal/complete API.

The patch is against 2.4.2-2 (official rh 7.1). I can provide one against 2.4.10
or 2.4.10-pre16 if required.

--- dev.c.org   Tue Oct  9 18:46:01 2001
+++ dev.c       Tue Oct  9 18:36:39 2001
@@ -1651,6 +1651,40 @@
 }

 /*
+ * Implement the SIOCGIFCOUNT, ioctl to keep the API orthogonal.
+ * Basically taken from dev_ifconf - Balbir
+ */
+static int dev_ifcount(char *arg)
+{
+       struct net_device *dev;
+       int i;
+       unsigned int total;
+
+       total = 0;
+       /*
+        * May be introducing something like for_each_netdev(dev)
+        * on the lines of for_each_pci_dev would be useful here.
+        */
+       for (dev = dev_base; dev != NULL; dev = dev->next) {
+               for (i = 0; i < NPROTO; i++) {
+                       if (gifconf_list[i]) {
+                               int done;
+
+                               done = gifconf_list[i](dev, NULL, 0);
+                               if (done < 0)
+                                       return -EFAULT;
+                               total++;
+                       }
+               }
+       }
+
+       if (copy_to_user(arg, &total, sizeof(int)))
+               return -EFAULT;
+
+       return 0;
+}
+
+/*
  *     This is invoked by the /proc filesystem handler to display a device
  *     in detail.
  */
@@ -2218,6 +2252,18 @@
                rtnl_shunlock();
                return ret;
        }
+
+       /*
+        * We do not need an exclusive lock for returning the count,
+        * shared lock is fine with us.
+        */
+       if (cmd == SIOCGIFCOUNT) {
+               rtnl_shlock();
+               ret = dev_ifcount((char *)arg);
+               rtnl_shunlock();
+               return ret;
+       }
+
        if (cmd == SIOCGIFNAME) {
                return dev_ifname((struct ifreq *)arg);
        }

Comments, rejections, etc
Balbir



[-- Attachment #2: Wipro_Disclaimer.txt --]
[-- Type: text/plain, Size: 853 bytes --]

----------------------------------------------------------------------------------------------------------------------
Information transmitted by this E-MAIL is proprietary to Wipro and/or its Customers and
is intended for use only by the individual or entity to which it is
addressed, and may contain information that is privileged, confidential or
exempt from disclosure under applicable law. If you are not the intended
recipient or it appears that this mail has been forwarded to you without
proper authority, you are notified that any use or dissemination of this
information in any manner is strictly prohibited. In such cases, please
notify us immediately at mailto:mailadmin@wipro.com and delete this mail
from your records.
----------------------------------------------------------------------------------------------------------------------


             reply	other threads:[~2001-10-09 13:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-09 13:23 BALBIR SINGH [this message]
2001-10-09 22:37 ` David S. Miller
2001-10-10  5:36   ` BALBIR SINGH
2001-10-10 18:31     ` kuznet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3BC2FA63.6070006@wipro.com \
    --to=balbir.singh@wipro.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    --subject='Re: [PATCH] Trivial patch for SIOCGIFCOUNT' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).