From: Adam Belay <ambx1@neo.rr.com>
To: greg@kroah.com, linux-kernel@vger.kernel.org
Subject: [PATCH] pnp.h changes - 2.5.46 (4/6)
Date: Wed, 6 Nov 2002 21:06:39 +0000 [thread overview]
Message-ID: <20021106210639.GO316@neo.rr.com> (raw)
This patch cleans up pnp.h. It adds new resource macros. Also it uses
driver_data from the driver model instead of a local one. Please everyone use
the new macros instead of directly reading the structure.
Thanks,
Adam
--- a/include/linux/pnp.h Wed Oct 30 22:43:17 2002
+++ b/include/linux/pnp.h Sun Nov 3 10:39:16 2002
@@ -1,3 +1,9 @@
+/*
+ * Linux Plug and Play Support
+ * Copyright by Adam Belay <ambx1@neo.rr.com>
+ *
+ */
+
#ifndef _LINUX_PNP_H
#define _LINUX_PNP_H
@@ -7,7 +13,9 @@
#include <linux/list.h>
-/* Device Managemnt */
+/*
+ * Device Managemnt
+ */
#define DEVICE_COUNT_IRQ 2
#define DEVICE_COUNT_DMA 2
@@ -51,7 +59,6 @@
struct pnp_driver * driver; /* which driver has allocated this device */
struct device dev; /* Driver Model device interface */
- void * driver_data;/* data private to the driver */
void * protocol_data;
int flags; /* used by protocols */
struct proc_dir_entry *procent; /* device entry in /proc/bus/isapnp */
@@ -66,18 +73,35 @@
dev != global_to_pnp_dev(&pnp_global); \
dev = global_to_pnp_dev(dev->global_list.next))
+static inline void *pnp_get_drvdata (struct pnp_dev *pdev)
+{
+ return pdev->dev.driver_data;
+}
+
+static inline void pnp_set_drvdata (struct pnp_dev *pdev, void *data)
+{
+ pdev->dev.driver_data = data;
+}
+
+static inline void *pnp_get_protodata (struct pnp_dev *pdev)
+{
+ return pdev->protocol_data;
+}
+
+static inline void pnp_set_protodata (struct pnp_dev *pdev, void *data)
+{
+ pdev->protocol_data = data;
+}
+
struct pnp_fixup {
char id[7];
void (*quirk_function)(struct pnp_dev *dev); /* fixup function */
};
-/*
- * Linux Plug and Play Support
- * Copyright by Adam Belay <ambx1@neo.rr.com>
- *
- */
-/* Driver Management */
+/*
+ * Driver Management
+ */
#define pnpc_device_id pnp_id /* for module.h */
#define pnp_device_id pnp_id /* for module.h */
@@ -104,12 +128,38 @@
#define to_pnp_driver(drv) container_of(drv,struct pnp_driver, driver)
-/* Resource Management */
+/*
+ * Resource Management
+ */
+
+/* Use these instead of directly reading pnp_dev to get resource information */
+#define pnp_port_start(dev,bar) ((dev)->resource[(bar)].start)
+#define pnp_port_end(dev,bar) ((dev)->resource[(bar)].end)
+#define pnp_port_flags(dev,bar) ((dev)->resource[(bar)].flags)
+#define pnp_port_len(dev,bar) \
+ ((pnp_port_start((dev),(bar)) == 0 && \
+ pnp_port_end((dev),(bar)) == \
+ pnp_port_start((dev),(bar))) ? 0 : \
+ \
+ (pnp_port_end((dev),(bar)) - \
+ pnp_port_start((dev),(bar)) + 1))
+
+#define pnp_mem_start(dev,bar) ((dev)->resource[(bar+8)].start)
+#define pnp_mem_end(dev,bar) ((dev)->resource[(bar+8)].end)
+#define pnp_mem_flags(dev,bar) ((dev)->resource[(bar+8)].flags)
+#define pnp_mem_len(dev,bar) \
+ ((pnp_mem_start((dev),(bar)) == 0 && \
+ pnp_mem_end((dev),(bar)) == \
+ pnp_mem_start((dev),(bar))) ? 0 : \
+ \
+ (pnp_mem_end((dev),(bar)) - \
+ pnp_mem_start((dev),(bar)) + 1))
+
+#define pnp_irq(dev,bar) ((dev)->irq_resource[(bar)].start)
+#define pnp_irq_flags(dev,bar) ((dev)->irq_resource[(bar)].flags)
-#define DEV_IO(dev, index) (dev->resource[index].start)
-#define DEV_MEM(dev, index) (dev->resource[index+8].start)
-#define DEV_IRQ(dev, index) (dev->irq_resource[index].start)
-#define DEV_DMA(dev, index) (dev->dma_resource[index].start)
+#define pnp_dma(dev,bar) ((dev)->dma_resource[(bar)].start)
+#define pnp_dma_flags(dev,bar) ((dev)->dma_resource[(bar)].flags)
#define PNP_PORT_FLAG_16BITADDR (1<<0)
#define PNP_PORT_FLAG_FIXED (1<<1)
@@ -186,7 +236,9 @@
};
-/* Protocol Management */
+/*
+ * Protocol Management
+ */
struct pnp_protocol {
struct list_head protocol_list;
@@ -262,6 +314,7 @@
#endif /* CONFIG_PNP */
#if defined(CONFIG_ISAPNP)
+
/* compat */
struct pnp_card *pnp_find_card(unsigned short vendor,
unsigned short device,
next reply other threads:[~2002-11-07 1:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-06 21:06 Adam Belay [this message]
2002-11-07 6:01 ` Greg KH
2002-11-07 19:25 ` Adam Belay
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=20021106210639.GO316@neo.rr.com \
--to=ambx1@neo.rr.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®