diff options
author | Jay Fenlason <fenlason@redhat.com> | 2009-05-18 13:08:06 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-06-14 08:26:28 -0400 |
commit | c76acec6d55107b652a37c90b36c00bc8b04dabb (patch) | |
tree | f51f4cea0bd006352bc636586717d009e24ef3c3 /drivers/firewire/core-iso.c | |
parent | 1e626fdcef61460dc75fe7377f38bb019722b848 (diff) |
firewire: add IPv4 support
Implement IPv4 over IEEE 1394 as per RFC 2734 for the newer firewire
stack. This feature has only been present in the older ieee1394 stack
via the eth1394 driver.
Still to do:
- fix ipv4_priv and ipv4_node lifetime logic
- fix determination of speeds and max payloads
- fix bus reset handling
- fix unaligned memory accesses
- fix coding style
- further testing/ improvement of fragment reassembly
- perhaps multicast support
Signed-off-by: Jay Fenlason <fenlason@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (rebased, copyright note, changelog)
Diffstat (limited to 'drivers/firewire/core-iso.c')
-rw-r--r-- | drivers/firewire/core-iso.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c index 28076c892d7e..448ddd7d887b 100644 --- a/drivers/firewire/core-iso.c +++ b/drivers/firewire/core-iso.c | |||
@@ -80,6 +80,7 @@ int fw_iso_buffer_init(struct fw_iso_buffer *buffer, struct fw_card *card, | |||
80 | 80 | ||
81 | return -ENOMEM; | 81 | return -ENOMEM; |
82 | } | 82 | } |
83 | EXPORT_SYMBOL(fw_iso_buffer_init); | ||
83 | 84 | ||
84 | int fw_iso_buffer_map(struct fw_iso_buffer *buffer, struct vm_area_struct *vma) | 85 | int fw_iso_buffer_map(struct fw_iso_buffer *buffer, struct vm_area_struct *vma) |
85 | { | 86 | { |
@@ -114,6 +115,7 @@ void fw_iso_buffer_destroy(struct fw_iso_buffer *buffer, | |||
114 | kfree(buffer->pages); | 115 | kfree(buffer->pages); |
115 | buffer->pages = NULL; | 116 | buffer->pages = NULL; |
116 | } | 117 | } |
118 | EXPORT_SYMBOL(fw_iso_buffer_destroy); | ||
117 | 119 | ||
118 | struct fw_iso_context *fw_iso_context_create(struct fw_card *card, | 120 | struct fw_iso_context *fw_iso_context_create(struct fw_card *card, |
119 | int type, int channel, int speed, size_t header_size, | 121 | int type, int channel, int speed, size_t header_size, |
@@ -136,6 +138,7 @@ struct fw_iso_context *fw_iso_context_create(struct fw_card *card, | |||
136 | 138 | ||
137 | return ctx; | 139 | return ctx; |
138 | } | 140 | } |
141 | EXPORT_SYMBOL(fw_iso_context_create); | ||
139 | 142 | ||
140 | void fw_iso_context_destroy(struct fw_iso_context *ctx) | 143 | void fw_iso_context_destroy(struct fw_iso_context *ctx) |
141 | { | 144 | { |
@@ -143,12 +146,14 @@ void fw_iso_context_destroy(struct fw_iso_context *ctx) | |||
143 | 146 | ||
144 | card->driver->free_iso_context(ctx); | 147 | card->driver->free_iso_context(ctx); |
145 | } | 148 | } |
149 | EXPORT_SYMBOL(fw_iso_context_destroy); | ||
146 | 150 | ||
147 | int fw_iso_context_start(struct fw_iso_context *ctx, | 151 | int fw_iso_context_start(struct fw_iso_context *ctx, |
148 | int cycle, int sync, int tags) | 152 | int cycle, int sync, int tags) |
149 | { | 153 | { |
150 | return ctx->card->driver->start_iso(ctx, cycle, sync, tags); | 154 | return ctx->card->driver->start_iso(ctx, cycle, sync, tags); |
151 | } | 155 | } |
156 | EXPORT_SYMBOL(fw_iso_context_start); | ||
152 | 157 | ||
153 | int fw_iso_context_queue(struct fw_iso_context *ctx, | 158 | int fw_iso_context_queue(struct fw_iso_context *ctx, |
154 | struct fw_iso_packet *packet, | 159 | struct fw_iso_packet *packet, |
@@ -159,11 +164,13 @@ int fw_iso_context_queue(struct fw_iso_context *ctx, | |||
159 | 164 | ||
160 | return card->driver->queue_iso(ctx, packet, buffer, payload); | 165 | return card->driver->queue_iso(ctx, packet, buffer, payload); |
161 | } | 166 | } |
167 | EXPORT_SYMBOL(fw_iso_context_queue); | ||
162 | 168 | ||
163 | int fw_iso_context_stop(struct fw_iso_context *ctx) | 169 | int fw_iso_context_stop(struct fw_iso_context *ctx) |
164 | { | 170 | { |
165 | return ctx->card->driver->stop_iso(ctx); | 171 | return ctx->card->driver->stop_iso(ctx); |
166 | } | 172 | } |
173 | EXPORT_SYMBOL(fw_iso_context_stop); | ||
167 | 174 | ||
168 | /* | 175 | /* |
169 | * Isochronous bus resource management (channels, bandwidth), client side | 176 | * Isochronous bus resource management (channels, bandwidth), client side |