patch-2.3.99-pre3 linux/drivers/ieee1394/highlevel.h

Next file: linux/drivers/ieee1394/ieee1394.h
Previous file: linux/drivers/ieee1394/highlevel.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre2/linux/drivers/ieee1394/highlevel.h linux/drivers/ieee1394/highlevel.h
@@ -55,6 +55,13 @@
          * for channel/host combinations you did not request. */
         void (*iso_receive) (struct hpsb_host *host, int channel,
                              quadlet_t *data, unsigned int length);
+
+        /* A write request was received on either the FCP_COMMAND (direction =
+         * 0) or the FCP_RESPONSE (direction = 1) register.  The cts arg
+         * contains the cts field (first byte of data).
+         */
+        void (*fcp_request) (struct hpsb_host *host, int nodeid, int direction,
+                             int cts, u8 *data, unsigned int length);
 };
 
 struct hpsb_address_ops {
@@ -67,17 +74,17 @@
          */
 
         /* These functions have to implement block reads for themselves. */
-        int (*read) (struct hpsb_host *host, quadlet_t *buffer, u64 addr,
-                     unsigned int length);
-        int (*write) (struct hpsb_host *host, quadlet_t *data, u64 addr,
-                      unsigned int length);
+        int (*read) (struct hpsb_host *host, int nodeid, quadlet_t *buffer,
+                     u64 addr, unsigned int length);
+        int (*write) (struct hpsb_host *host, int nodeid, quadlet_t *data,
+                      u64 addr, unsigned int length);
 
         /* Lock transactions: write results of ext_tcode operation into
          * *store. */
-        int (*lock) (struct hpsb_host *host, quadlet_t *store, u64 addr,
-                     quadlet_t data, quadlet_t arg, int ext_tcode);
-        int (*lock64) (struct hpsb_host *host, octlet_t *store, u64 addr,
-                       octlet_t data, octlet_t arg, int ext_tcode);
+        int (*lock) (struct hpsb_host *host, int nodeid, quadlet_t *store,
+                     u64 addr, quadlet_t data, quadlet_t arg, int ext_tcode);
+        int (*lock64) (struct hpsb_host *host, int nodeid, octlet_t *store,
+                       u64 addr, octlet_t data, octlet_t arg, int ext_tcode);
 };
 
 
@@ -87,17 +94,19 @@
 void highlevel_remove_host(struct hpsb_host *host);
 void highlevel_host_reset(struct hpsb_host *host);
 
-int highlevel_read(struct hpsb_host *host, quadlet_t *buffer, u64 addr,
-                   unsigned int length);
-int highlevel_write(struct hpsb_host *host, quadlet_t *data, u64 addr,
-                    unsigned int length);
-int highlevel_lock(struct hpsb_host *host, quadlet_t *store, u64 addr,
-                   quadlet_t data, quadlet_t arg, int ext_tcode);
-int highlevel_lock64(struct hpsb_host *host, octlet_t *store, u64 addr,
-                     octlet_t data, octlet_t arg, int ext_tcode);
+int highlevel_read(struct hpsb_host *host, int nodeid, quadlet_t *buffer,
+                   u64 addr, unsigned int length);
+int highlevel_write(struct hpsb_host *host, int nodeid, quadlet_t *data,
+                    u64 addr, unsigned int length);
+int highlevel_lock(struct hpsb_host *host, int nodeid, quadlet_t *store,
+                   u64 addr, quadlet_t data, quadlet_t arg, int ext_tcode);
+int highlevel_lock64(struct hpsb_host *host, int nodeid, octlet_t *store,
+                     u64 addr, octlet_t data, octlet_t arg, int ext_tcode);
 
 void highlevel_iso_receive(struct hpsb_host *host, quadlet_t *data,
                            unsigned int length);
+void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction,
+                           u8 *data, unsigned int length);
 
 
 /*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)