diff options
Diffstat (limited to 'quantum/serial_link/protocol/transport.c')
-rw-r--r-- | quantum/serial_link/protocol/transport.c | 61 |
1 files changed, 27 insertions, 34 deletions
diff --git a/quantum/serial_link/protocol/transport.c b/quantum/serial_link/protocol/transport.c index ff795fe201..73b8dc62e9 100644 --- a/quantum/serial_link/protocol/transport.c +++ b/quantum/serial_link/protocol/transport.c @@ -29,42 +29,38 @@ SOFTWARE. #define MAX_REMOTE_OBJECTS 16 static remote_object_t* remote_objects[MAX_REMOTE_OBJECTS]; -static uint32_t num_remote_objects = 0; +static uint32_t num_remote_objects = 0; -void reinitialize_serial_link_transport(void) { - num_remote_objects = 0; -} +void reinitialize_serial_link_transport(void) { num_remote_objects = 0; } void add_remote_objects(remote_object_t** _remote_objects, uint32_t _num_remote_objects) { unsigned int i; - for(i=0;i<_num_remote_objects;i++) { - remote_object_t* obj = _remote_objects[i]; + for (i = 0; i < _num_remote_objects; i++) { + remote_object_t* obj = _remote_objects[i]; remote_objects[num_remote_objects++] = obj; if (obj->object_type == MASTER_TO_ALL_SLAVES) { triple_buffer_object_t* tb = (triple_buffer_object_t*)obj->buffer; triple_buffer_init(tb); uint8_t* start = obj->buffer + LOCAL_OBJECT_SIZE(obj->object_size); - tb = (triple_buffer_object_t*)start; + tb = (triple_buffer_object_t*)start; triple_buffer_init(tb); - } - else if(obj->object_type == MASTER_TO_SINGLE_SLAVE) { - uint8_t* start = obj->buffer; + } else if (obj->object_type == MASTER_TO_SINGLE_SLAVE) { + uint8_t* start = obj->buffer; unsigned int j; - for (j=0;j<NUM_SLAVES;j++) { + for (j = 0; j < NUM_SLAVES; j++) { triple_buffer_object_t* tb = (triple_buffer_object_t*)start; triple_buffer_init(tb); start += LOCAL_OBJECT_SIZE(obj->object_size); } triple_buffer_object_t* tb = (triple_buffer_object_t*)start; triple_buffer_init(tb); - } - else { - uint8_t* start = obj->buffer; - triple_buffer_object_t* tb = (triple_buffer_object_t*)start; + } else { + uint8_t* start = obj->buffer; + triple_buffer_object_t* tb = (triple_buffer_object_t*)start; triple_buffer_init(tb); start += LOCAL_OBJECT_SIZE(obj->object_size); unsigned int j; - for (j=0;j<NUM_SLAVES;j++) { + for (j = 0; j < NUM_SLAVES; j++) { tb = (triple_buffer_object_t*)start; triple_buffer_init(tb); start += REMOTE_OBJECT_SIZE(obj->object_size); @@ -74,23 +70,21 @@ void add_remote_objects(remote_object_t** _remote_objects, uint32_t _num_remote_ } void transport_recv_frame(uint8_t from, uint8_t* data, uint16_t size) { - uint8_t id = data[size-1]; + uint8_t id = data[size - 1]; if (id < num_remote_objects) { remote_object_t* obj = remote_objects[id]; if (obj->object_size == size - 1) { uint8_t* start; if (obj->object_type == MASTER_TO_ALL_SLAVES) { start = obj->buffer + LOCAL_OBJECT_SIZE(obj->object_size); - } - else if(obj->object_type == SLAVE_TO_MASTER) { + } else if (obj->object_type == SLAVE_TO_MASTER) { start = obj->buffer + LOCAL_OBJECT_SIZE(obj->object_size); start += (from - 1) * REMOTE_OBJECT_SIZE(obj->object_size); - } - else { + } else { start = obj->buffer + NUM_SLAVES * LOCAL_OBJECT_SIZE(obj->object_size); } - triple_buffer_object_t* tb = (triple_buffer_object_t*)start; - void* ptr = triple_buffer_begin_write_internal(obj->object_size, tb); + triple_buffer_object_t* tb = (triple_buffer_object_t*)start; + void* ptr = triple_buffer_begin_write_internal(obj->object_size, tb); memcpy(ptr, data, size - 1); triple_buffer_end_write_internal(tb); } @@ -99,26 +93,25 @@ void transport_recv_frame(uint8_t from, uint8_t* data, uint16_t size) { void update_transport(void) { unsigned int i; - for(i=0;i<num_remote_objects;i++) { + for (i = 0; i < num_remote_objects; i++) { remote_object_t* obj = remote_objects[i]; if (obj->object_type == MASTER_TO_ALL_SLAVES || obj->object_type == SLAVE_TO_MASTER) { - triple_buffer_object_t* tb = (triple_buffer_object_t*)obj->buffer; - uint8_t* ptr = (uint8_t*)triple_buffer_read_internal(obj->object_size + LOCAL_OBJECT_EXTRA, tb); + triple_buffer_object_t* tb = (triple_buffer_object_t*)obj->buffer; + uint8_t* ptr = (uint8_t*)triple_buffer_read_internal(obj->object_size + LOCAL_OBJECT_EXTRA, tb); if (ptr) { ptr[obj->object_size] = i; - uint8_t dest = obj->object_type == MASTER_TO_ALL_SLAVES ? 0xFF : 0; + uint8_t dest = obj->object_type == MASTER_TO_ALL_SLAVES ? 0xFF : 0; router_send_frame(dest, ptr, obj->object_size + 1); } - } - else { - uint8_t* start = obj->buffer; + } else { + uint8_t* start = obj->buffer; unsigned int j; - for (j=0;j<NUM_SLAVES;j++) { - triple_buffer_object_t* tb = (triple_buffer_object_t*)start; - uint8_t* ptr = (uint8_t*)triple_buffer_read_internal(obj->object_size + LOCAL_OBJECT_EXTRA, tb); + for (j = 0; j < NUM_SLAVES; j++) { + triple_buffer_object_t* tb = (triple_buffer_object_t*)start; + uint8_t* ptr = (uint8_t*)triple_buffer_read_internal(obj->object_size + LOCAL_OBJECT_EXTRA, tb); if (ptr) { ptr[obj->object_size] = i; - uint8_t dest = j + 1; + uint8_t dest = j + 1; router_send_frame(dest, ptr, obj->object_size + 1); } start += LOCAL_OBJECT_SIZE(obj->object_size); |