summaryrefslogtreecommitdiffstats
path: root/src/raw1394_private.h
diff options
context:
space:
mode:
authorGravatar Dan Dennedy 2008-04-23 17:44:36 -0700
committerGravatar Dan Dennedy 2008-04-23 17:44:36 -0700
commit0ea462ae9895ca903c8d3134910c06e1869560c4 (patch)
treec1b72a170cfca14c1b9cccd552e5cadc249bd483 /src/raw1394_private.h
parentFix configure.ac missing fi after initial merge. (diff)
First cut at integrating juju
This is currently working with legacy ieee1394 and tools/testlibraw.
Diffstat (limited to 'src/raw1394_private.h')
-rw-r--r--src/raw1394_private.h162
1 files changed, 145 insertions, 17 deletions
diff --git a/src/raw1394_private.h b/src/raw1394_private.h
index 8eb2c76..3f50740 100644
--- a/src/raw1394_private.h
+++ b/src/raw1394_private.h
@@ -1,28 +1,31 @@
-
#ifndef _RAW1394_PRIVATE_H
#define _RAW1394_PRIVATE_H
+#include "raw1394.h"
+#include "csr.h"
+#include "../juju/juju.h"
+#include "kernel-raw1394.h"
+
#define HBUF_SIZE 8192
#define ARM_REC_LENGTH 4096
#define MAXIMUM_BANDWIDTH 4915
-struct raw1394_handle {
- int fd;
- int protocol_version;
- unsigned int generation;
+struct ieee1394_handle {
+ int fd;
+ int protocol_version;
+ unsigned int generation;
- nodeid_t local_id;
- int num_of_nodes;
- nodeid_t irm_id;
+ nodeid_t local_id;
+ int num_of_nodes;
+ nodeid_t irm_id;
- raw1394_errcode_t err;
- void *userdata;
+ raw1394_errcode_t err;
+ void *userdata;
- bus_reset_handler_t bus_reset_handler;
- tag_handler_t tag_handler;
- arm_tag_handler_t arm_tag_handler;
- fcp_handler_t fcp_handler;
- iso_handler_t iso_handler[64];
+ bus_reset_handler_t bus_reset_handler;
+ tag_handler_t tag_handler;
+ arm_tag_handler_t arm_tag_handler;
+ fcp_handler_t fcp_handler;
/* new ISO API */
@@ -46,10 +49,20 @@ struct raw1394_handle {
quadlet_t buffer[HBUF_SIZE/4]; /* 2048 */
void *iso_packet_infos; /* actually a struct raw1394_iso_packet_info* */
};
+typedef struct ieee1394_handle *ieee1394handle_t;
+// typedef struct fw_handle *fw_handle_t;
+
+struct raw1394_handle {
+ int is_fw;
+ union {
+ ieee1394handle_t ieee1394;
+ fw_handle_t fw;
+ } mode;
+};
struct sync_cb_data {
- int done;
- int errcode;
+ int done;
+ int errcode;
};
int _raw1394_sync_cb(struct raw1394_handle*, struct sync_cb_data*, int);
@@ -65,4 +78,119 @@ int _raw1394_iso_iterate(raw1394handle_t handle);
#define ptr2int(x) ((__u64)x)
#endif
+
+int ieee1394_arm_register(struct ieee1394_handle *handle, nodeaddr_t start,
+ size_t length, byte_t *initial_value,
+ octlet_t arm_tag, arm_options_t access_rights,
+ arm_options_t notification_options,
+ arm_options_t client_transactions);
+int ieee1394_arm_unregister (struct ieee1394_handle *handle, nodeaddr_t start);
+int ieee1394_arm_set_buf (struct ieee1394_handle *handle, nodeaddr_t start,
+ size_t length, void *buf);
+int ieee1394_arm_get_buf (struct ieee1394_handle *handle, nodeaddr_t start,
+ size_t length, void *buf);
+int ieee1394_errcode_to_errno(raw1394_errcode_t errcode);
+int ieee1394_loop_iterate(struct raw1394_handle *handle);
+int ieee1394_start_fcp_listen(struct raw1394_handle *handle);
+int ieee1394_stop_fcp_listen(struct raw1394_handle *handle);
+struct ieee1394_handle *ieee1394_new_handle(void);
+void ieee1394_destroy_handle(struct ieee1394_handle *handle);
+int ieee1394_get_fd(struct ieee1394_handle *handle);
+int ieee1394_get_nodecount(struct ieee1394_handle *handle);
+nodeid_t ieee1394_get_local_id(struct ieee1394_handle *handle);
+nodeid_t ieee1394_get_irm_id(struct ieee1394_handle *handle);
+int ieee1394_get_port_info(struct ieee1394_handle *handle,
+ struct raw1394_portinfo *pinf, int maxports);
+int ieee1394_set_port(struct ieee1394_handle *handle, int port);
+ieee1394handle_t ieee1394_new_handle_on_port(int port);
+int ieee1394_reset_bus_new(struct ieee1394_handle *handle, int type);
+int ieee1394_busreset_notify (struct ieee1394_handle *handle,
+ int off_on_switch);
+int ieee1394_update_config_rom(ieee1394handle_t handle, const quadlet_t
+ *new_rom, size_t size, unsigned char rom_version);
+int ieee1394_get_config_rom(ieee1394handle_t handle, quadlet_t *buffer,
+ size_t buffersize, size_t *rom_size, unsigned char *rom_version);
+int ieee1394_bandwidth_modify (raw1394handle_t handle, unsigned int bandwidth,
+ enum raw1394_modify_mode mode);
+int ieee1394_channel_modify (raw1394handle_t handle, unsigned int channel,
+ enum raw1394_modify_mode mode);
+int ieee1394_start_read(struct ieee1394_handle *handle, nodeid_t node,
+ nodeaddr_t addr, size_t length, quadlet_t *buffer,
+ unsigned long tag);
+int ieee1394_start_write(struct ieee1394_handle *handle, nodeid_t node,
+ nodeaddr_t addr, size_t length, quadlet_t *data,
+ unsigned long tag);
+int ieee1394_start_lock(struct ieee1394_handle *handle, nodeid_t node,
+ nodeaddr_t addr, unsigned int extcode, quadlet_t data,
+ quadlet_t arg, quadlet_t *result, unsigned long tag);
+int ieee1394_start_lock64(struct ieee1394_handle *handle, nodeid_t node,
+ nodeaddr_t addr, unsigned int extcode, octlet_t data,
+ octlet_t arg, octlet_t *result, unsigned long tag);
+int ieee1394_start_async_stream(struct ieee1394_handle *handle,
+ unsigned int channel,
+ unsigned int tag, unsigned int sy,
+ unsigned int speed, size_t length, quadlet_t *data,
+ unsigned long rawtag);
+int ieee1394_start_async_send(struct ieee1394_handle *handle,
+ size_t length, size_t header_length, unsigned int expect_response,
+ quadlet_t *data, unsigned long rawtag);
+int ieee1394_read(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr,
+ size_t length, quadlet_t *buffer);
+int ieee1394_write(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr,
+ size_t length, quadlet_t *data);
+int ieee1394_lock(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr,
+ unsigned int extcode, quadlet_t data, quadlet_t arg,
+ quadlet_t *result);
+int ieee1394_lock64(struct raw1394_handle *handle, nodeid_t node, nodeaddr_t addr,
+ unsigned int extcode, octlet_t data, octlet_t arg,
+ octlet_t *result);
+int ieee1394_async_stream(struct raw1394_handle *handle, unsigned int channel,
+ unsigned int tag, unsigned int sy, unsigned int speed,
+ size_t length, quadlet_t *data);
+int ieee1394_async_send(struct raw1394_handle *handle ,
+ size_t length, size_t header_length, unsigned int expect_response,
+ quadlet_t *data);
+int ieee1394_start_phy_packet_write(struct ieee1394_handle *handle,
+ quadlet_t data, unsigned long tag);
+int ieee1394_phy_packet_write (struct raw1394_handle *handle, quadlet_t data);
+int ieee1394_echo_request(struct ieee1394_handle *handle, quadlet_t data);
+int ieee1394_wake_up(ieee1394handle_t handle);
+const char *ieee1394_get_libversion();
+
+int ieee1394_iso_xmit_init(ieee1394handle_t handle,
+ raw1394_iso_xmit_handler_t handler,
+ unsigned int buf_packets,
+ unsigned int max_packet_size,
+ unsigned char channel,
+ enum raw1394_iso_speed speed,
+ int irq_interval);
+int ieee1394_iso_recv_init(ieee1394handle_t handle,
+ raw1394_iso_recv_handler_t handler,
+ unsigned int buf_packets,
+ unsigned int max_packet_size,
+ unsigned char channel,
+ enum raw1394_iso_dma_recv_mode mode,
+ int irq_interval);
+int ieee1394_iso_multichannel_recv_init(ieee1394handle_t handle,
+ raw1394_iso_recv_handler_t handler,
+ unsigned int buf_packets,
+ unsigned int max_packet_size,
+ int irq_interval);
+int ieee1394_iso_recv_listen_channel(ieee1394handle_t handle, unsigned char channel);
+int ieee1394_iso_recv_unlisten_channel(ieee1394handle_t handle, unsigned char channel);
+int ieee1394_iso_recv_flush(ieee1394handle_t handle);
+int ieee1394_iso_recv_set_channel_mask(ieee1394handle_t handle, u_int64_t mask);
+int ieee1394_iso_recv_start(ieee1394handle_t handle, int start_on_cycle, int tag_mask, int sync);
+int ieee1394_iso_xmit_write(raw1394handle_t handle, unsigned char *data, unsigned int len,
+ unsigned char tag, unsigned char sy);
+int ieee1394_iso_xmit_start(ieee1394handle_t handle, int start_on_cycle, int prebuffer_packets);
+int ieee1394_iso_xmit_sync(ieee1394handle_t handle);
+void ieee1394_iso_stop(ieee1394handle_t handle);
+void ieee1394_iso_shutdown(ieee1394handle_t handle);
+int ieee1394_read_cycle_timer(ieee1394handle_t handle,
+ u_int32_t *cycle_timer, u_int64_t *local_time);
+int _ieee1394_iso_iterate(raw1394handle_t handle);
+
+
+
#endif /* _RAW1394_PRIVATE_H */