int pnp_add_card_device(struct pnp_card *card, struct pnp_dev *dev);
 void pnp_remove_card_device(struct pnp_dev *dev);
 
+struct pnp_port {
+       unsigned short min;     /* min base number */
+       unsigned short max;     /* max base number */
+       unsigned char align;    /* align boundary */
+       unsigned char size;     /* size of range */
+       unsigned char flags;    /* port flags */
+       unsigned char pad;      /* pad */
+       struct pnp_port *next;  /* next port */
+};
+
+#define PNP_IRQ_NR 256
+struct pnp_irq {
+       DECLARE_BITMAP(map, PNP_IRQ_NR);        /* bitmask for IRQ lines */
+       unsigned char flags;    /* IRQ flags */
+       unsigned char pad;      /* pad */
+       struct pnp_irq *next;   /* next IRQ */
+};
+
+struct pnp_dma {
+       unsigned char map;      /* bitmask for DMA channels */
+       unsigned char flags;    /* DMA flags */
+       struct pnp_dma *next;   /* next port */
+};
+
+struct pnp_mem {
+       unsigned int min;       /* min base number */
+       unsigned int max;       /* max base number */
+       unsigned int align;     /* align boundary */
+       unsigned int size;      /* size of range */
+       unsigned char flags;    /* memory flags */
+       unsigned char pad;      /* pad */
+       struct pnp_mem *next;   /* next memory resource */
+};
+
+#define PNP_RES_PRIORITY_PREFERRED     0
+#define PNP_RES_PRIORITY_ACCEPTABLE    1
+#define PNP_RES_PRIORITY_FUNCTIONAL    2
+#define PNP_RES_PRIORITY_INVALID       65535
+
+struct pnp_option {
+       unsigned short priority;        /* priority */
+       struct pnp_port *port;          /* first port */
+       struct pnp_irq *irq;            /* first IRQ */
+       struct pnp_dma *dma;            /* first DMA */
+       struct pnp_mem *mem;            /* first memory resource */
+       struct pnp_option *next;        /* used to chain dependent resources */
+};
+
 struct pnp_option *pnp_build_option(int priority);
 struct pnp_option *pnp_register_independent_option(struct pnp_dev *dev);
 struct pnp_option *pnp_register_dependent_option(struct pnp_dev *dev,
 
 }
 
 
-struct pnp_port {
-       unsigned short min;     /* min base number */
-       unsigned short max;     /* max base number */
-       unsigned char align;    /* align boundary */
-       unsigned char size;     /* size of range */
-       unsigned char flags;    /* port flags */
-       unsigned char pad;      /* pad */
-       struct pnp_port *next;  /* next port */
-};
-
-#define PNP_IRQ_NR 256
-struct pnp_irq {
-       DECLARE_BITMAP(map, PNP_IRQ_NR);        /* bitmask for IRQ lines */
-       unsigned char flags;    /* IRQ flags */
-       unsigned char pad;      /* pad */
-       struct pnp_irq *next;   /* next IRQ */
-};
-
-struct pnp_dma {
-       unsigned char map;      /* bitmask for DMA channels */
-       unsigned char flags;    /* DMA flags */
-       struct pnp_dma *next;   /* next port */
-};
-
-struct pnp_mem {
-       unsigned int min;       /* min base number */
-       unsigned int max;       /* max base number */
-       unsigned int align;     /* align boundary */
-       unsigned int size;      /* size of range */
-       unsigned char flags;    /* memory flags */
-       unsigned char pad;      /* pad */
-       struct pnp_mem *next;   /* next memory resource */
-};
-
-#define PNP_RES_PRIORITY_PREFERRED     0
-#define PNP_RES_PRIORITY_ACCEPTABLE    1
-#define PNP_RES_PRIORITY_FUNCTIONAL    2
-#define PNP_RES_PRIORITY_INVALID       65535
-
-struct pnp_option {
-       unsigned short priority;        /* priority */
-       struct pnp_port *port;          /* first port */
-       struct pnp_irq *irq;            /* first IRQ */
-       struct pnp_dma *dma;            /* first DMA */
-       struct pnp_mem *mem;            /* first memory resource */
-       struct pnp_option *next;        /* used to chain dependent resources */
-};
-
 /*
  * Device Management
  */