Home | History | Annotate | Download | only in inc
      1 /****************************************************************************
      2 **+-----------------------------------------------------------------------+**
      3 **|                                                                       |**
      4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
      5 **| All rights reserved.                                                  |**
      6 **|                                                                       |**
      7 **| Redistribution and use in source and binary forms, with or without    |**
      8 **| modification, are permitted provided that the following conditions    |**
      9 **| are met:                                                              |**
     10 **|                                                                       |**
     11 **|  * Redistributions of source code must retain the above copyright     |**
     12 **|    notice, this list of conditions and the following disclaimer.      |**
     13 **|  * Redistributions in binary form must reproduce the above copyright  |**
     14 **|    notice, this list of conditions and the following disclaimer in    |**
     15 **|    the documentation and/or other materials provided with the         |**
     16 **|    distribution.                                                      |**
     17 **|  * Neither the name Texas Instruments nor the names of its            |**
     18 **|    contributors may be used to endorse or promote products derived    |**
     19 **|    from this software without specific prior written permission.      |**
     20 **|                                                                       |**
     21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     32 **|                                                                       |**
     33 **+-----------------------------------------------------------------------+**
     34 ****************************************************************************/
     35 
     36 
     37 /**************************************************************************/
     38 
     39 #ifndef _DEBUG_MODULE_H
     40 #define _DEBUG_MODULE_H
     41 
     42 #include "osTIType.h"
     43 #include "debug_module_ioctl.h"
     44 
     45 /*****************************************************/
     46 /*****************************************************/
     47 /* Debug mode - use this define to debug this module */
     48 /* #define DEBUG_THIS_MODULE*/
     49 
     50 #ifdef DEBUG_THIS_MODULE
     51   #ifdef _WINDOWS
     52   #else  /* ifdef __LINUX__ */
     53 	#define DEBUG_MESSAGE(_msg) (report_d _msg)
     54   #endif
     55 #else /* DEBUG_THIS_MODULE */
     56 	#define DEBUG_MESSAGE(_msg)
     57 #endif /* DEBUG_THIS_MODULE */
     58 
     59 /*****************************************************/
     60 /*****************************************************/
     61 
     62 #define MAX_CHAR_DRIVERS					 (2)
     63 
     64 #define MAX_CHAR_DRIVER_NAME				 (30)
     65 #define SPI_CHAR_DRIVER_NAME				 ("SPI_char_driver")
     66 #define DEBUG_MSG_CHAR_DRIVER_NAME			 ("Debug_messages_char_driver")
     67 
     68 #define SPI_CHAR_DRIVER						 (0)
     69 #define DEBUG_MSG_CHAR_DRIVER				 (1)
     70 
     71 #define ENQUEUE_MESSAGE_CONTROL_SIZE		 (1)
     72 #define CONTROL_CODE_TYPE_MESSAGE			 (0)
     73 
     74 #define REPORT_MESSAGE_PARAMS				 (3)
     75 #define REPORT_MESSAGE_LEN					 (sizeof(unsigned int) * REPORT_MESSAGE_PARAMS)
     76 
     77 #define DEBUG_MODULE_TRACE_QUEUE_ID			 (0)
     78 
     79 typedef struct
     80 {
     81 	unsigned int read_pointer;		/* Current read pointer */
     82 	unsigned int write_pointer;		/* Current write pointer */
     83 	unsigned int used_size;			/* The used data size */
     84 	unsigned int size;				/* Total size of the buffer */
     85 	unsigned int overrun_count;     /* Number of packets that were run over */
     86 
     87 	tiBOOL		 waiting_for_data;	/* TRUE if the user mode is pending */
     88 } t_queue_status;
     89 
     90 extern tiBOOL module_enable;
     91 extern int *buffers_default_size[MAX_CHAR_DRIVERS];
     92 extern UINT8  *buffers[MAX_CHAR_DRIVERS];									/* Pointer to the allocated buffder */
     93 
     94 
     95 void init_queue(UINT8  device_index);
     96 
     97 unsigned char get_message_from_queue(UINT8 device_index, t_ioctol1_format *ioctl_data);
     98 void get_queue_information(UINT8 device_index, unsigned int *report_msg);
     99 tiBOOL debug_module_enqueue_message(UINT8 queue_id, UINT8 param, void *p_msg, unsigned int len, UINT8  message_type);
    100 
    101 tiBOOL debug_module_logic_allocate_queue(UINT8 device_index, UINT8 size_in_k);
    102 void debug_module_logic_deallocate_queue(UINT8 device_index, UINT8 size_in_k);
    103 
    104 /* OS depended function prototypes */
    105 void os_cmd_spin_lock_irqsave(void);
    106 void os_cmd_spin_unlock_irqrestore(void);
    107 void os_cmd_up(void);
    108 void os_cmd_down_interruptible(void);
    109 void os_cmd_copy_to_user(void *destination, const void *source, unsigned int size);
    110 void *os_malloc (UINT32 size);
    111 void os_free (void *p, UINT32 size);
    112 
    113 
    114 #endif /* _DEBUG_MODULE_H */
    115