summaryrefslogtreecommitdiffstats
path: root/src/fw.h
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2022-09-20 00:53:10 -0400
committerGravatar Peter McGoron 2022-09-20 00:58:16 -0400
commit48b2af0507fa99bad3b771325b232ad89e60de0a (patch)
treed87f8679fc40e6448430e9a4c913821bc9aa9f39 /src/fw.h
parentconfigure.ac, Changelog, NEWS: update to version 2.1.2 (diff)
Implement virtual memory for ARM manager
Instead of allocating memory for address range mappings (ARM) and handling all reads and writes to said memory, the new ARM manager calls a function for each received request with the data, transaction code, and allocation information. The ARM tag manager now must handle validation of memory accesses and retreive/write the data. This allows implementations to use network resources or generated data as memory. The ARM manager no longer automatically sends response packets. It is the responsibility of the user to send response packets using raw1394_send_rw_response(). The interface is not implemented for raw1394 and will probably never be implemented for raw1394. It is for firewire-cdev (modern Linux) only.
Diffstat (limited to 'src/fw.h')
-rw-r--r--src/fw.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/fw.h b/src/fw.h
index 7ad5b97..2d7d90c 100644
--- a/src/fw.h
+++ b/src/fw.h
@@ -150,16 +150,14 @@ int fw_get_port_info(fw_handle_t handle, struct raw1394_portinfo *pinf,
int maxports);
int fw_set_port(fw_handle_t handle, int port);
int fw_reset_bus_new(fw_handle_t handle, int type);
+int fw_send_rw_response(fw_handle_t handle, int tcode, void *data, size_t len,
+ unsigned kernel_handle);
int fw_arm_register(fw_handle_t handle, nodeaddr_t start,
- size_t length, byte_t *initial_value,
+ size_t length,
octlet_t arm_tag, arm_options_t access_rights,
arm_options_t notification_options,
arm_options_t client_transactions);
int fw_arm_unregister(fw_handle_t handle, nodeaddr_t start);
-int fw_arm_set_buf(fw_handle_t handle, nodeaddr_t start,
- size_t length, void *buf);
-int fw_arm_get_buf(fw_handle_t handle, nodeaddr_t start,
- size_t length, void *buf);
int fw_echo_request(fw_handle_t handle, quadlet_t data);
int fw_wake_up(fw_handle_t handle);
int fw_start_read(fw_handle_t handle, nodeid_t node, nodeaddr_t addr,