mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Juergen Beisert <jbe@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 02/13] Create a unique cdev number for on demand devices
Date: Thu, 24 Nov 2011 13:43:40 +0100	[thread overview]
Message-ID: <1322138631-8963-3-git-send-email-jbe@pengutronix.de> (raw)
In-Reply-To: <1322138631-8963-1-git-send-email-jbe@pengutronix.de>

For disk like devices attached to MCI, ATA or USB it depends on the order they
will be recognized. So an unique number for all disk like devices is required.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
---
 fs/devfs-core.c  |   14 ++++++++++++++
 include/driver.h |    1 +
 2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/fs/devfs-core.c b/fs/devfs-core.c
index 519e18e..9bc3126 100644
--- a/fs/devfs-core.c
+++ b/fs/devfs-core.c
@@ -40,6 +40,20 @@ struct cdev *cdev_by_name(const char *filename)
 	return NULL;
 }
 
+int cdev_find_free_index(const char *basename)
+{
+	int i;
+	char fname[100];
+
+	for (i = 0; i < 1000; i++) {
+		snprintf(fname, sizeof(fname), "%s%d", basename, i);
+		if (cdev_by_name(fname) == NULL)
+			return i;
+	}
+
+	return -EBUSY;	/* all indexes are used */
+}
+
 struct cdev *cdev_open(const char *name, unsigned long flags)
 {
 	struct cdev *cdev = cdev_by_name(name);
diff --git a/include/driver.h b/include/driver.h
index 80de0c8..fe9d37a 100644
--- a/include/driver.h
+++ b/include/driver.h
@@ -394,6 +394,7 @@ struct cdev {
 
 int devfs_create(struct cdev *);
 int devfs_remove(struct cdev *);
+int cdev_find_free_index(const char *);
 struct cdev *cdev_by_name(const char *filename);
 struct cdev *cdev_open(const char *name, unsigned long flags);
 void cdev_close(struct cdev *cdev);
-- 
1.7.7.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  parent reply	other threads:[~2011-11-24 12:44 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-24 12:43 [PATCHv3] Rework of handling disk like media Juergen Beisert
2011-11-24 12:43 ` [PATCH 01/13] USB Mass Storage driver: Fix compile time warning Juergen Beisert
2011-11-24 12:43 ` Juergen Beisert [this message]
2011-11-24 12:43 ` [PATCH 03/13] ATA/DISK: Add generic disk support when enabling the BIOS disk driver Juergen Beisert
2011-11-24 12:43 ` [PATCH 04/13] ATA/DISK: Enabling write support does not belong to 'drive types' Juergen Beisert
2011-11-24 12:43 ` [PATCH 05/13] ATA/DISK: Reorganize file structure and names for future updates Juergen Beisert
2011-11-24 12:43 ` [PATCH 06/13] ATA/DISK: The BIOS based disk driver is not an interface Juergen Beisert
2011-11-24 12:43 ` [PATCH 07/13] ATA/DISK: Share important constants and structures Juergen Beisert
2011-11-24 12:43 ` [PATCH 08/13] DISK: Add common partition handling for disk like media Juergen Beisert
2011-11-24 12:48   ` Erwin Rol
2011-11-24 12:43 ` [PATCH 09/13] Use generic block layer to access the drives and do partition parsing Juergen Beisert
2011-11-24 12:43 ` [PATCH 10/13] Remove 'disk_drive.c' as it is now replaced by generic partition handling Juergen Beisert
2011-11-24 12:43 ` [PATCH 11/13] ATA/DISK: Remove the now unused header <ata.h> Juergen Beisert
2011-11-24 12:43 ` [PATCH 12/13] ATA Disk Support: Add support for native ATA type drives Juergen Beisert
2011-11-25 14:36   ` Juergen Beisert
2011-11-24 12:43 ` [PATCH 13/13] Add driver for IDE like interfaces Juergen Beisert
  -- strict thread matches above, loose matches on Subject: below --
2011-11-22  8:29 [PATCHv2] Rework of handling disk like media Juergen Beisert
2011-11-22  8:29 ` [PATCH 02/13] Create a unique cdev number for on demand devices Juergen Beisert
2011-11-16  9:24 Rework of handling disk like media Juergen Beisert
2011-11-16  9:24 ` [PATCH 02/13] Create a unique cdev number for on demand devices Juergen Beisert

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=1322138631-8963-3-git-send-email-jbe@pengutronix.de \
    --to=jbe@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox