History

zorro/UAPI: Disintegrate include/linux/zorro*.h

The Zorro definitions and device IDs are used by bootstraps, hence they should be exported through UAPI. Unfortunately zorro.h was never marked for export when headers_install was introduced, so it was forgotten during the big UAPI disintegration. In addition, the removal of zorro_ids.h had been sneaked into commit 7e7a43c32a8970ea2bfc3d1af353dcb1a9237769 ("PCI: don't export device IDs to userspace") before, so it was also forgotten. Split off and export the Zorro definitions used by bootstraps.

Geert Uytterhoeven committed 13 years ago

Commit 986ea581 parent 6112ea05 files · +119 −102Browse files

Unified · Split

5 files
  1. Documentation/zorro.txt +2 −1
  2. include/linux/zorro.h +2 −101
  3. include/uapi/linux/Kbuild +2 −0
  4. include/uapi/linux/zorro.h +113 −0
  5. include/uapi/linux/zorro_ids.h +0 −0
Documentation/zorro.txt+2−1
@@ -95,8 +95,9 @@ The treatment of these regions depends on the type of Zorro space: · 94 unmodified lines
9595 -------------
9696
9797 linux/include/linux/zorro.h
98+linux/include/uapi/linux/zorro.h
99+linux/include/uapi/linux/zorro_ids.h
98100 linux/arch/m68k/include/asm/zorro.h
99−linux/include/linux/zorro_ids.h
100101 linux/drivers/zorro
101102 /proc/bus/zorro
102103
include/linux/zorro.h+2−101
@@ -11,107 +11,10 @@ · 10 unmodified lines
1111 #ifndef _LINUX_ZORRO_H
1212 #define _LINUX_ZORRO_H
1313
14−#include <linux/device.h>
15−
16−
17− /*
18− * Each Zorro board has a 32-bit ID of the form
19− *
20− * mmmmmmmmmmmmmmmmppppppppeeeeeeee
21− *
22− * with
23− *
24− * mmmmmmmmmmmmmmmm 16-bit Manufacturer ID (assigned by CBM (sigh))
25− * pppppppp 8-bit Product ID (assigned by manufacturer)
26− * eeeeeeee 8-bit Extended Product ID (currently only used
27− * for some GVP boards)
28− */
29−
30−
31−#define ZORRO_MANUF(id) ((id) >> 16)
32−#define ZORRO_PROD(id) (((id) >> 8) & 0xff)
33−#define ZORRO_EPC(id) ((id) & 0xff)
34−
35−#define ZORRO_ID(manuf, prod, epc) \
36− ((ZORRO_MANUF_##manuf << 16) | ((prod) << 8) | (epc))
37−
38−typedef __u32 zorro_id;
3914
15+#include <uapi/linux/zorro.h>
4016
41−/* Include the ID list */
42−#include <linux/zorro_ids.h>
43−
44−
45− /*
46− * GVP identifies most of its products through the 'extended product code'
47− * (epc). The epc has to be ANDed with the GVP_PRODMASK before the
48− * identification.
49− */
50−
51−#define GVP_PRODMASK (0xf8)
52−#define GVP_SCSICLKMASK (0x01)
53−
54−enum GVP_flags {
55− GVP_IO = 0x01,
56− GVP_ACCEL = 0x02,
57− GVP_SCSI = 0x04,
58− GVP_24BITDMA = 0x08,
59− GVP_25BITDMA = 0x10,
60− GVP_NOBANK = 0x20,
61− GVP_14MHZ = 0x40,
62−};
63−
64−
65−struct Node {
66− struct Node *ln_Succ; /* Pointer to next (successor) */
67− struct Node *ln_Pred; /* Pointer to previous (predecessor) */
68− __u8 ln_Type;
69− __s8 ln_Pri; /* Priority, for sorting */
70− __s8 *ln_Name; /* ID string, null terminated */
71−} __attribute__ ((packed));
72−
73−struct ExpansionRom {
74− /* -First 16 bytes of the expansion ROM */
75− __u8 er_Type; /* Board type, size and flags */
76− __u8 er_Product; /* Product number, assigned by manufacturer */
77− __u8 er_Flags; /* Flags */
78− __u8 er_Reserved03; /* Must be zero ($ff inverted) */
79− __u16 er_Manufacturer; /* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */
80− __u32 er_SerialNumber; /* Available for use by manufacturer */
81− __u16 er_InitDiagVec; /* Offset to optional "DiagArea" structure */
82− __u8 er_Reserved0c;
83− __u8 er_Reserved0d;
84− __u8 er_Reserved0e;
85− __u8 er_Reserved0f;
86−} __attribute__ ((packed));
87−
88−/* er_Type board type bits */
89−#define ERT_TYPEMASK 0xc0
90−#define ERT_ZORROII 0xc0
91−#define ERT_ZORROIII 0x80
92−
93−/* other bits defined in er_Type */
94−#define ERTB_MEMLIST 5 /* Link RAM into free memory list */
95−#define ERTF_MEMLIST (1<<5)
96−
97−struct ConfigDev {
98− struct Node cd_Node;
99− __u8 cd_Flags; /* (read/write) */
100− __u8 cd_Pad; /* reserved */
101− struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */
102− void *cd_BoardAddr; /* where in memory the board was placed */
103− __u32 cd_BoardSize; /* size of board in bytes */
104− __u16 cd_SlotAddr; /* which slot number (PRIVATE) */
105− __u16 cd_SlotSize; /* number of slots (PRIVATE) */
106− void *cd_Driver; /* pointer to node of driver */
107− struct ConfigDev *cd_NextCD; /* linked list of drivers to config */
108− __u32 cd_Unused[4]; /* for whatever the driver wants */
109−} __attribute__ ((packed));
110−
111−#define ZORRO_NUM_AUTO 16
112−
113−#ifdef __KERNEL__
114−
17+#include <linux/device.h>
11518 #include <linux/init.h>
11619 #include <linux/ioport.h>
11720 #include <linux/mod_devicetable.h>
@@ -245,6 +148,4 @@ extern DECLARE_BITMAP(zorro_unused_z2ram, 128); · 127 unmodified lines
245148 #define Z2RAM_CHUNKSHIFT (16)
246149
247150
248−#endif /* __KERNEL__ */
249−
250151 #endif /* _LINUX_ZORRO_H */
include/uapi/linux/Kbuild+2−0
@@ -426,3 +426,5 @@ header-y += x25.h · 425 unmodified lines
426426 header-y += xattr.h
427427 header-y += xfrm.h
428428 header-y += hw_breakpoint.h
429+header-y += zorro.h
430+header-y += zorro_ids.h
include/uapi/linux/zorro.h+113−0
@@ -0,0 +1,113 @@
1+/*
2+ * linux/zorro.h -- Amiga AutoConfig (Zorro) Bus Definitions
3+ *
4+ * Copyright (C) 1995--2003 Geert Uytterhoeven
5+ *
6+ * This file is subject to the terms and conditions of the GNU General Public
7+ * License. See the file COPYING in the main directory of this archive
8+ * for more details.
9+ */
10+
11+#ifndef _UAPI_LINUX_ZORRO_H
12+#define _UAPI_LINUX_ZORRO_H
13+
14+#include <linux/types.h>
15+
16+
17+ /*
18+ * Each Zorro board has a 32-bit ID of the form
19+ *
20+ * mmmmmmmmmmmmmmmmppppppppeeeeeeee
21+ *
22+ * with
23+ *
24+ * mmmmmmmmmmmmmmmm 16-bit Manufacturer ID (assigned by CBM (sigh))
25+ * pppppppp 8-bit Product ID (assigned by manufacturer)
26+ * eeeeeeee 8-bit Extended Product ID (currently only used
27+ * for some GVP boards)
28+ */
29+
30+
31+#define ZORRO_MANUF(id) ((id) >> 16)
32+#define ZORRO_PROD(id) (((id) >> 8) & 0xff)
33+#define ZORRO_EPC(id) ((id) & 0xff)
34+
35+#define ZORRO_ID(manuf, prod, epc) \
36+ ((ZORRO_MANUF_##manuf << 16) | ((prod) << 8) | (epc))
37+
38+typedef __u32 zorro_id;
39+
40+
41+/* Include the ID list */
42+#include <linux/zorro_ids.h>
43+
44+
45+ /*
46+ * GVP identifies most of its products through the 'extended product code'
47+ * (epc). The epc has to be ANDed with the GVP_PRODMASK before the
48+ * identification.
49+ */
50+
51+#define GVP_PRODMASK (0xf8)
52+#define GVP_SCSICLKMASK (0x01)
53+
54+enum GVP_flags {
55+ GVP_IO = 0x01,
56+ GVP_ACCEL = 0x02,
57+ GVP_SCSI = 0x04,
58+ GVP_24BITDMA = 0x08,
59+ GVP_25BITDMA = 0x10,
60+ GVP_NOBANK = 0x20,
61+ GVP_14MHZ = 0x40,
62+};
63+
64+
65+struct Node {
66+ struct Node *ln_Succ; /* Pointer to next (successor) */
67+ struct Node *ln_Pred; /* Pointer to previous (predecessor) */
68+ __u8 ln_Type;
69+ __s8 ln_Pri; /* Priority, for sorting */
70+ __s8 *ln_Name; /* ID string, null terminated */
71+} __packed;
72+
73+struct ExpansionRom {
74+ /* -First 16 bytes of the expansion ROM */
75+ __u8 er_Type; /* Board type, size and flags */
76+ __u8 er_Product; /* Product number, assigned by manufacturer */
77+ __u8 er_Flags; /* Flags */
78+ __u8 er_Reserved03; /* Must be zero ($ff inverted) */
79+ __u16 er_Manufacturer; /* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */
80+ __u32 er_SerialNumber; /* Available for use by manufacturer */
81+ __u16 er_InitDiagVec; /* Offset to optional "DiagArea" structure */
82+ __u8 er_Reserved0c;
83+ __u8 er_Reserved0d;
84+ __u8 er_Reserved0e;
85+ __u8 er_Reserved0f;
86+} __packed;
87+
88+/* er_Type board type bits */
89+#define ERT_TYPEMASK 0xc0
90+#define ERT_ZORROII 0xc0
91+#define ERT_ZORROIII 0x80
92+
93+/* other bits defined in er_Type */
94+#define ERTB_MEMLIST 5 /* Link RAM into free memory list */
95+#define ERTF_MEMLIST (1<<5)
96+
97+struct ConfigDev {
98+ struct Node cd_Node;
99+ __u8 cd_Flags; /* (read/write) */
100+ __u8 cd_Pad; /* reserved */
101+ struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */
102+ void *cd_BoardAddr; /* where in memory the board was placed */
103+ __u32 cd_BoardSize; /* size of board in bytes */
104+ __u16 cd_SlotAddr; /* which slot number (PRIVATE) */
105+ __u16 cd_SlotSize; /* number of slots (PRIVATE) */
106+ void *cd_Driver; /* pointer to node of driver */
107+ struct ConfigDev *cd_NextCD; /* linked list of drivers to config */
108+ __u32 cd_Unused[4]; /* for whatever the driver wants */
109+} __packed;
110+
111+#define ZORRO_NUM_AUTO 16
112+
113+#endif /* _UAPI_LINUX_ZORRO_H */
include/uapi/linux/zorro_ids.hrenamed from include/linux/zorro_ids.h+0−0

File renamed without changes.