History

zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h>

Fix member definitions for non-native userspace handling: - All multi-byte values are big-endian, hence use __be*, - All pointers are 32-bit pointers under AmigaOS, but unused (except for cd_BoardAddr) under Linux, hence use __be32.

Geert Uytterhoeven committed 13 years ago

Commit bd9ba8f1 parent 986ea588 files · +72 −46Browse files

Showing the changes to include/uapi/linux (1 of 8 files). Show all

Unified · Split

include/uapi/linux/zorro.h+23−23
@@ -63,26 +63,26 @@ enum GVP_flags { · 62 unmodified lines
63 63
64 64
65struct Node {65struct Node {
66 struct Node *ln_Succ; /* Pointer to next (successor) */66 __be32 ln_Succ; /* Pointer to next (successor) */
67 struct Node *ln_Pred; /* Pointer to previous (predecessor) */67 __be32 ln_Pred; /* Pointer to previous (predecessor) */
68 __u8 ln_Type;68 __u8 ln_Type;
69 __s8 ln_Pri; /* Priority, for sorting */69 __s8 ln_Pri; /* Priority, for sorting */
70 __s8 *ln_Name; /* ID string, null terminated */70 __be32 ln_Name; /* ID string, null terminated */
71} __packed;71} __packed;
72 72
73struct ExpansionRom {73struct ExpansionRom {
74 /* -First 16 bytes of the expansion ROM */74 /* -First 16 bytes of the expansion ROM */
75 __u8 er_Type; /* Board type, size and flags */75 __u8 er_Type; /* Board type, size and flags */
76 __u8 er_Product; /* Product number, assigned by manufacturer */76 __u8 er_Product; /* Product number, assigned by manufacturer */
77 __u8 er_Flags; /* Flags */77 __u8 er_Flags; /* Flags */
78 __u8 er_Reserved03; /* Must be zero ($ff inverted) */78 __u8 er_Reserved03; /* Must be zero ($ff inverted) */
79 __u16 er_Manufacturer; /* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */79 __be16 er_Manufacturer; /* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */
80 __u32 er_SerialNumber; /* Available for use by manufacturer */80 __be32 er_SerialNumber; /* Available for use by manufacturer */
81 __u16 er_InitDiagVec; /* Offset to optional "DiagArea" structure */81 __be16 er_InitDiagVec; /* Offset to optional "DiagArea" structure */
82 __u8 er_Reserved0c;82 __u8 er_Reserved0c;
83 __u8 er_Reserved0d;83 __u8 er_Reserved0d;
84 __u8 er_Reserved0e;84 __u8 er_Reserved0e;
85 __u8 er_Reserved0f;85 __u8 er_Reserved0f;
86} __packed;86} __packed;
87 87
88/* er_Type board type bits */88/* er_Type board type bits */
@@ -99,13 +99,13 @@ struct ConfigDev { · 10 unmodified lines
99 __u8 cd_Flags; /* (read/write) */99 __u8 cd_Flags; /* (read/write) */
100 __u8 cd_Pad; /* reserved */100 __u8 cd_Pad; /* reserved */
101 struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */101 struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */
102 void *cd_BoardAddr; /* where in memory the board was placed */102 __be32 cd_BoardAddr; /* where in memory the board was placed */
103 __u32 cd_BoardSize; /* size of board in bytes */103 __be32 cd_BoardSize; /* size of board in bytes */
104 __u16 cd_SlotAddr; /* which slot number (PRIVATE) */104 __be16 cd_SlotAddr; /* which slot number (PRIVATE) */
105 __u16 cd_SlotSize; /* number of slots (PRIVATE) */105 __be16 cd_SlotSize; /* number of slots (PRIVATE) */
106 void *cd_Driver; /* pointer to node of driver */106 __be32 cd_Driver; /* pointer to node of driver */
107 struct ConfigDev *cd_NextCD; /* linked list of drivers to config */107 __be32 cd_NextCD; /* linked list of drivers to config */
108 __u32 cd_Unused[4]; /* for whatever the driver wants */108 __be32 cd_Unused[4]; /* for whatever the driver wants */
109} __packed;109} __packed;
110 110
111#define ZORRO_NUM_AUTO 16111#define ZORRO_NUM_AUTO 16