| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2006-2010, Broadcom Corporation |
|---|
| 3 | * All Rights Reserved |
|---|
| 4 | * Confidential Property of Broadcom Corporation |
|---|
| 5 | * |
|---|
| 6 | * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 7 | * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 8 | * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 9 | * |
|---|
| 10 | * $brcm_Workfile: bkni_print.h $ |
|---|
| 11 | * $brcm_Revision: Hydra_Software_Devel/1 $ |
|---|
| 12 | * $brcm_Date: 8/19/10 7:56a $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: Non blocking printf support module. |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | ***************************************************************************/ |
|---|
| 18 | |
|---|
| 19 | #if !defined(_BKNI_PRINT_H_) |
|---|
| 20 | #define _BKNI_PRINT_H_ |
|---|
| 21 | #include "bstd.h" |
|---|
| 22 | |
|---|
| 23 | /** |
|---|
| 24 | BKNI_Print_Init - background printf initialization. Must be called before |
|---|
| 25 | first use. |
|---|
| 26 | */ |
|---|
| 27 | void BKNI_Print_Init(void); |
|---|
| 28 | /** |
|---|
| 29 | BKNI_Print_Printf - printf interface to the background printing. May be |
|---|
| 30 | called from critical section or interrupt context. Designed to be called |
|---|
| 31 | directly from BKNI_Printf. |
|---|
| 32 | */ |
|---|
| 33 | int BKNI_Print_Printf(const char *fmt, ...); |
|---|
| 34 | /** |
|---|
| 35 | BKNI_Print_Vprintf - vprintf interface to the background printing. May be |
|---|
| 36 | called from critical section or interrupt context. Designed to be called |
|---|
| 37 | directly from BKNI_Printf. |
|---|
| 38 | */ |
|---|
| 39 | int BKNI_Print_Vprintf(const char *fmt, va_list ap); |
|---|
| 40 | /** |
|---|
| 41 | BKNI_Print_Out - string output function pointer. |
|---|
| 42 | This function should take a buffer and a size as a parameter and output |
|---|
| 43 | buffer to desired destination like a serial port or a network socket. |
|---|
| 44 | */ |
|---|
| 45 | typedef size_t (*BKNI_Print_Out)(const void * buf, size_t count); |
|---|
| 46 | /** |
|---|
| 47 | BKNI_Print_Worker - background worker function. |
|---|
| 48 | This function must be called from a separate thread and it never returns. |
|---|
| 49 | Thread calling this function should be low a priority thread so the printing |
|---|
| 50 | does not interfere with normal operations of the software. |
|---|
| 51 | */ |
|---|
| 52 | void BKNI_Print_Worker(BKNI_Print_Out Output); |
|---|
| 53 | |
|---|
| 54 | void BKNI_Print_Flush(BKNI_Print_Out Output); |
|---|
| 55 | |
|---|
| 56 | #endif |
|---|