diff options
Diffstat (limited to 'drivers/staging/vc04_services/interface/vchi')
4 files changed, 27 insertions, 36 deletions
diff --git a/drivers/staging/vc04_services/interface/vchi/connections/connection.h b/drivers/staging/vc04_services/interface/vchi/connections/connection.h index fef6ac34c6d2..e793cdf2847c 100644 --- a/drivers/staging/vc04_services/interface/vchi/connections/connection.h +++ b/drivers/staging/vc04_services/interface/vchi/connections/connection.h @@ -217,8 +217,7 @@ typedef void (*VCHI_BUFFER_FREE)(VCHI_CONNECTION_SERVICE_HANDLE_T service_hand System driver struct *****************************************************************************/ -struct opaque_vchi_connection_api_t -{ +struct opaque_vchi_connection_api_t { // Routine to init the connection VCHI_CONNECTION_INIT_T init; diff --git a/drivers/staging/vc04_services/interface/vchi/message_drivers/message.h b/drivers/staging/vc04_services/interface/vchi/message_drivers/message.h index 8b3f76735bd4..a7740a425388 100644 --- a/drivers/staging/vc04_services/interface/vchi/message_drivers/message.h +++ b/drivers/staging/vc04_services/interface/vchi/message_drivers/message.h @@ -53,14 +53,12 @@ typedef enum message_event_type { MESSAGE_EVENT_MSG_DISCARDED } MESSAGE_EVENT_TYPE_T; -typedef enum vchi_msg_flags -{ +typedef enum vchi_msg_flags { VCHI_MSG_FLAGS_NONE = 0x0, VCHI_MSG_FLAGS_TERMINATE_DMA = 0x1 } VCHI_MSG_FLAGS_T; -typedef enum message_tx_channel -{ +typedef enum message_tx_channel { MESSAGE_TX_CHANNEL_MESSAGE = 0, MESSAGE_TX_CHANNEL_BULK = 1 // drivers may provide multiple bulk channels, from 1 upwards } MESSAGE_TX_CHANNEL_T; @@ -69,8 +67,7 @@ typedef enum message_tx_channel #define MESSAGE_TX_CHANNEL_BULK_PREV(c) (MESSAGE_TX_CHANNEL_BULK+((c)-MESSAGE_TX_CHANNEL_BULK+VCHI_MAX_BULK_TX_CHANNELS_PER_CONNECTION-1)%VCHI_MAX_BULK_TX_CHANNELS_PER_CONNECTION) #define MESSAGE_TX_CHANNEL_BULK_NEXT(c) (MESSAGE_TX_CHANNEL_BULK+((c)-MESSAGE_TX_CHANNEL_BULK+1)%VCHI_MAX_BULK_TX_CHANNELS_PER_CONNECTION) -typedef enum message_rx_channel -{ +typedef enum message_rx_channel { MESSAGE_RX_CHANNEL_MESSAGE = 0, MESSAGE_RX_CHANNEL_BULK = 1 // drivers may provide multiple bulk channels, from 1 upwards } MESSAGE_RX_CHANNEL_T; diff --git a/drivers/staging/vc04_services/interface/vchi/vchi.h b/drivers/staging/vc04_services/interface/vchi/vchi.h index d6937288210c..addb7b00b688 100644 --- a/drivers/staging/vc04_services/interface/vchi/vchi.h +++ b/drivers/staging/vc04_services/interface/vchi/vchi.h @@ -61,8 +61,7 @@ struct vchi_version { #define VCHI_VERSION(v_) { v_, v_ } #define VCHI_VERSION_EX(v_, m_) { v_, m_ } -typedef enum -{ +typedef enum { VCHI_VEC_POINTER, VCHI_VEC_HANDLE, VCHI_VEC_LIST @@ -71,26 +70,22 @@ typedef enum typedef struct vchi_msg_vector_ex { VCHI_MSG_VECTOR_TYPE_T type; - union - { + union { // a memory handle - struct - { + struct { VCHI_MEM_HANDLE_T handle; uint32_t offset; int32_t vec_len; } handle; // an ordinary data pointer - struct - { + struct { const void *vec_base; int32_t vec_len; } ptr; // a nested vector list - struct - { + struct { struct vchi_msg_vector_ex *vec; uint32_t vec_len; } list; @@ -114,8 +109,7 @@ struct opaque_vchi_service_t; // Descriptor for a held message. Allocated by client, initialised by vchi_msg_hold, // vchi_msg_iter_hold or vchi_msg_iter_hold_next. Fields are for internal VCHI use only. -typedef struct -{ +typedef struct { struct opaque_vchi_service_t *service; void *message; } VCHI_HELD_MSG_T; @@ -225,13 +219,17 @@ extern int32_t vchi_service_set_option( const VCHI_SERVICE_HANDLE_T handle, VCHI_SERVICE_OPTION_T option, int value); -// Routine to send a message across a service -extern int32_t - vchi_msg_queue(VCHI_SERVICE_HANDLE_T handle, - ssize_t (*copy_callback)(void *context, void *dest, - size_t offset, size_t maxsize), - void *context, - uint32_t data_size); +/* Routine to send a message from kernel memory across a service */ +extern int +vchi_queue_kernel_message(VCHI_SERVICE_HANDLE_T handle, + void *data, + unsigned int size); + +/* Routine to send a message from user memory across a service */ +extern int +vchi_queue_user_message(VCHI_SERVICE_HANDLE_T handle, + void __user *data, + unsigned int size); // Routine to receive a msg from a service // Dequeue is equivalent to hold, copy into client buffer, release diff --git a/drivers/staging/vc04_services/interface/vchi/vchi_common.h b/drivers/staging/vc04_services/interface/vchi/vchi_common.h index d535a72970d3..45c2070d46b0 100644 --- a/drivers/staging/vc04_services/interface/vchi/vchi_common.h +++ b/drivers/staging/vc04_services/interface/vchi/vchi_common.h @@ -36,8 +36,7 @@ //flags used when sending messages (must be bitmapped) -typedef enum -{ +typedef enum { VCHI_FLAGS_NONE = 0x0, VCHI_FLAGS_BLOCK_UNTIL_OP_COMPLETE = 0x1, // waits for message to be received, or sent (NB. not the same as being seen on other side) VCHI_FLAGS_CALLBACK_WHEN_OP_COMPLETE = 0x2, // run a callback when message sent @@ -62,8 +61,7 @@ typedef enum { } VCHI_CRC_CONTROL_T; //callback reasons when an event occurs on a service -typedef enum -{ +typedef enum { VCHI_CALLBACK_REASON_MIN, //This indicates that there is data available @@ -111,8 +109,7 @@ typedef enum } VCHI_CALLBACK_REASON_T; // service control options -typedef enum -{ +typedef enum { VCHI_SERVICE_OPTION_MIN, VCHI_SERVICE_OPTION_TRACE, @@ -123,9 +120,9 @@ typedef enum //Callback used by all services / bulk transfers -typedef void (*VCHI_CALLBACK_T)( void *callback_param, //my service local param - VCHI_CALLBACK_REASON_T reason, - void *handle ); //for transmitting msg's only +typedef void (*VCHI_CALLBACK_T)(void *callback_param, //my service local param + VCHI_CALLBACK_REASON_T reason, + void *handle); //for transmitting msg's only |