diff options
| author | 2011-03-24 03:14:27 -0400 | |
|---|---|---|
| committer | 2012-06-17 22:00:40 +0200 | |
| commit | f3c9af36c29428caa872fa67f20c958d52a5fb21 (patch) | |
| tree | df06f471e52ced337d8a6727806a26cff389bb1c /src/fw.c | |
| parent | configure.ac, Changelog, NEWS etc.: update to version 2.0.9 (diff) | |
Add raw1394_add_config_rom_descriptor() and raw1394_remove_config_rom_descriptor() API
This adds support of the firewire-core (juju) ABI to add and remove config ROM directories
or descriptors. The raw1394 ABI supports similar requests, but for now we leave the two
functions unimplemented when running on top of raw1394.
Signed-off-by: Benjamin Buchalter <bj@mhlabs.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (whitespace changes)
Diffstat (limited to 'src/fw.c')
| -rw-r--r-- | src/fw.c | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -1543,6 +1543,41 @@ fw_update_config_rom(fw_handle_t handle, const quadlet_t *new_rom, } int +fw_add_config_rom_descriptor(fw_handle_t handle, + const quadlet_t immediate_key, + const quadlet_t key, + const quadlet_t *new_rom_directory, + size_t size, + __u32 *out_token) +{ + struct fw_cdev_add_descriptor request; + int retval; + + request.immediate = immediate_key; + request.key = key; + request.data = ptr_to_u64(new_rom_directory); + request.length = size; + request.handle = 0; + + retval = ioctl(handle->local_device->fd, FW_CDEV_IOC_ADD_DESCRIPTOR, + &request); + if (retval < 0) + return -1; + + *out_token = request.handle; + return 0; +} + +int +fw_remove_config_rom_descriptor(fw_handle_t handle, __u32 token) +{ + struct fw_cdev_remove_descriptor request = {token}; + + return ioctl(handle->local_device->fd, FW_CDEV_IOC_REMOVE_DESCRIPTOR, + &request); +} + +int fw_get_config_rom(fw_handle_t handle, quadlet_t *buffer, size_t buffersize, size_t *rom_size, unsigned char *rom_version) |
