/******************************************************************************
 *
 * Copyright 2013, Silicon Image, Inc.  All rights reserved.
 * No part of this work may be reproduced, modified, distributed, transmitted,
 * transcribed, or translated into any language or computer format, in any form
 * or by any means without written permission of
 * Silicon Image, Inc., 1140 East Arques Avenue, Sunnyvale, California 94085
 *
 *****************************************************************************/
/**
 * @file sii9777_user_def.h
 *
 * @brief logging library
 *
 *****************************************************************************/

#ifndef SII9777_USER_DEF_H
#define SII9777_USER_DEF_H

/*****************************************************************************/
/** All definitions below can be modified by user.
******************************************************************************/

/*****************************************************************************/
/**
* When defined as '1' host driver relies on the following platform functions to be provided
* user application:
*     SiiPlatformSemaphoreCreate()
*     SiiPlatformSemaphoreDelete()
*     SiiPlatformSemaphoreGive()
*     SiiPlatformSemaphoreTake()
* In Multi-Thread mode each API function is allowed to be called preemptively.
* When defined zero the host driver will not call any of these platform functions.
* In non multi-thread mode user must make sure that non of the host driver API functions
* are called pre-emptively. 
*
******************************************************************************/
#define SII9777_USER_DEF__MULTI_THREAD     0

/*****************************************************************************/
/**
* When defined as '1' user must call Sii9777Handle() from a independent thread to retrieve
* IPC response message from Sii9777 device and allow API function to finish IPC request.
* When defined as '0' API function applies local polling for returning IPC response message.
*
* note: this definition is ignored if 'SII9777_USER_DEF__MULTI_THREAD' is defined as '0'.
*
******************************************************************************/
#define SII9777_USER_DEF__IPC_SEMAPHORE    0

/*****************************************************************************/
/**
* If defined with zero then host driver writes Flash data provided through Sii9777FlashUpdate()
* directly to flash without cashing the data. The size indicated in Sii9777FlashUpdate() must be
* 256.
* For any value other than zero the host driver will allocate a memory buffer to store data before it is
* programmed in flash. In this mode the user can dynamcally change size of flash packet to any value
* between 0 and SII9777_USER_DEF__ISP_CASH_SIZE.
*
******************************************************************************/
#define SII9777_USER_DEF__ISP_CASH_SIZE    256

#endif /* SII9777_USER_DEF_H */

/***** end of file ***********************************************************/
