patch-2.4.11-dontuse linux/drivers/ieee1394/nodemgr.h
Next file: linux/drivers/ieee1394/ohci1394.c
Previous file: linux/drivers/ieee1394/nodemgr.c
Back to the patch index
Back to the overall index
- Lines: 62
- Date:
Mon Oct 1 21:24:24 2001
- Orig file:
v2.4.10/linux/drivers/ieee1394/nodemgr.h
- Orig date:
Mon Aug 27 12:41:41 2001
diff -u --recursive --new-file v2.4.10/linux/drivers/ieee1394/nodemgr.h linux/drivers/ieee1394/nodemgr.h
@@ -38,13 +38,23 @@
u16 max_rec; /* Maximum packet size node can receive */
};
-#define UNIT_DIRECTORY_VENDOR_ID 0x01
-#define UNIT_DIRECTORY_MODEL_ID 0x02
-#define UNIT_DIRECTORY_SPECIFIER_ID 0x04
-#define UNIT_DIRECTORY_VERSION 0x08
+#define UNIT_DIRECTORY_VENDOR_ID 0x01
+#define UNIT_DIRECTORY_MODEL_ID 0x02
+#define UNIT_DIRECTORY_SPECIFIER_ID 0x04
+#define UNIT_DIRECTORY_VERSION 0x08
+/*
+ * A unit directory corresponds to a protocol supported by the
+ * node. If a node supports eg. IP/1394 and AV/C, its config rom has a
+ * unit directory for each of these protocols.
+ *
+ * Unit directories appear on two types of lists: for each node we
+ * maintain a list of the unit directories found in its config rom and
+ * for each driver we maintain a list of the unit directories
+ * (ie. devices) the driver manages.
+ */
struct unit_directory {
- struct list_head list;
+ struct node_entry *ne; /* The node which this directory belongs to */
octlet_t address; /* Address of the unit directory on the node */
u8 flags; /* Indicates which entries were read */
quadlet_t vendor_id;
@@ -53,6 +63,20 @@
char *model_name;
quadlet_t specifier_id;
quadlet_t version;
+
+ /* Groupings for arbitrary key/value pairs */
+ int arb_count; /* Number of arbitrary key/values */
+ char arb_keys[16]; /* Up to 16 keys */
+ quadlet_t arb_values[16]; /* Same for values */
+
+ struct hpsb_protocol_driver *driver;
+ void *driver_data;
+
+ /* For linking the nodes managed by the driver, or unmanaged nodes */
+ struct list_head driver_list;
+
+ /* For linking directories belonging to a node */
+ struct list_head node_list;
};
struct node_entry {
@@ -68,6 +92,11 @@
u32 capabilities;
struct list_head unit_directories;
};
+
+static inline int hpsb_node_entry_valid(struct node_entry *ne)
+{
+ return atomic_read(&ne->generation) == get_hpsb_generation(ne->host);
+}
/*
* Returns a node entry (which has its reference count incremented) or NULL if
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)