diff options
author | K. Y. Srinivasan <[email protected]> | 2011-05-10 07:55:32 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2011-05-11 13:49:09 -0700 |
commit | 7581578d688397d927b882a343a2969ef0cac12a (patch) | |
tree | 50b9b6aae6df7fa5fb1f03673f271e3524ab1f02 | |
parent | 8f1136aeb474b14db8f420d4919759b46993830b (diff) |
Staging: hv: Get rid of the forward declaration of hv_copyto_ringbuffer()
Get rid of the forward declaration by moving the code around.
Signed-off-by: K. Y. Srinivasan <[email protected]>
Signed-off-by: Haiyang Zhang <[email protected]>
Signed-off-by: Abhishek Kane <[email protected]>
Signed-off-by: Hank Janssen <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
-rw-r--r-- | drivers/staging/hv/ring_buffer.c | 66 |
1 files changed, 27 insertions, 39 deletions
diff --git a/drivers/staging/hv/ring_buffer.c b/drivers/staging/hv/ring_buffer.c index 56521fd3c890..2a461ddeeaca 100644 --- a/drivers/staging/hv/ring_buffer.c +++ b/drivers/staging/hv/ring_buffer.c @@ -236,14 +236,37 @@ static u32 hv_copyfrom_ringbuffer( } - -static u32 -hv_copyto_ringbuffer( +/* + * + * hv_copyto_ringbuffer() + * + * Helper routine to copy from source to ring buffer. + * Assume there is enough room. Handles wrap-around in dest case only!! + * + */ +static u32 hv_copyto_ringbuffer( struct hv_ring_buffer_info *ring_info, u32 start_write_offset, void *src, - u32 srclen); + u32 srclen) +{ + void *ring_buffer = hv_get_ring_buffer(ring_info); + u32 ring_buffer_size = hv_get_ring_buffersize(ring_info); + u32 frag_len; + + /* wrap-around detected! */ + if (srclen > ring_buffer_size - start_write_offset) { + frag_len = ring_buffer_size - start_write_offset; + memcpy(ring_buffer + start_write_offset, src, frag_len); + memcpy(ring_buffer, src + frag_len, srclen - frag_len); + } else + memcpy(ring_buffer + start_write_offset, src, srclen); + start_write_offset += srclen; + start_write_offset %= ring_buffer_size; + + return start_write_offset; +} /* * @@ -498,38 +521,3 @@ int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info, void *buffer, return 0; } - - -/* - * - * hv_copyto_ringbuffer() - * - * Helper routine to copy from source to ring buffer. - * Assume there is enough room. Handles wrap-around in dest case only!! - * - */ -static u32 -hv_copyto_ringbuffer( - struct hv_ring_buffer_info *ring_info, - u32 start_write_offset, - void *src, - u32 srclen) -{ - void *ring_buffer = hv_get_ring_buffer(ring_info); - u32 ring_buffer_size = hv_get_ring_buffersize(ring_info); - u32 frag_len; - - /* wrap-around detected! */ - if (srclen > ring_buffer_size - start_write_offset) { - frag_len = ring_buffer_size - start_write_offset; - memcpy(ring_buffer + start_write_offset, src, frag_len); - memcpy(ring_buffer, src + frag_len, srclen - frag_len); - } else - memcpy(ring_buffer + start_write_offset, src, srclen); - - start_write_offset += srclen; - start_write_offset %= ring_buffer_size; - - return start_write_offset; -} - |