blob: 5c3536cbd57a98e98261f86dc543497128cf6154 [file] [log] [blame]
/*
<:copyright-BRCM:2016:DUAL/GPL:standard
Broadcom Proprietary and Confidential.(c) 2016 Broadcom
All Rights Reserved
Unless you and Broadcom execute a separate written software license
agreement governing use of this software, this software is licensed
to you under the terms of the GNU General Public License version 2
(the "GPL"), available at http://www.broadcom.com/licenses/GPLv2.php,
with the following added to such license:
As a special exception, the copyright holders of this software give
you permission to link this software with independent modules, and
to copy and distribute the resulting executable under terms of your
choice, provided that you also meet, for each linked independent
module, the terms and conditions of the license of that module.
An independent module is a module which is not derived from this
software. The special exception does not apply to any modifications
of the software.
Not withstanding the above, under no circumstances may you combine
this software in any way with any other Broadcom software provided
under a license other than the GPL, without Broadcom's express prior
written consent.
:>
*/
#ifndef BCMOLT_DEV_LOG_IOCTL_H_
#define BCMOLT_DEV_LOG_IOCTL_H_
#include <linux/ioctl.h>
#include <bcm_dev_log.h>
#define DEV_LOG_CHRDEV_MAX_KERNEL_IDS 32
/* ID descriptor */
typedef struct dev_log_id_info
{
uint32_t index;
char name[MAX_DEV_LOG_ID_NAME + 1];
bcm_dev_log_level default_level;
bcm_dev_log_id_type default_type;
} dev_log_id_info;
/* ioctl parameters */
typedef union dev_log_io_param
{
struct
{
int num_ids;
dev_log_id_info ids[DEV_LOG_CHRDEV_MAX_KERNEL_IDS];
} db_read;
struct
{
uint32_t index;
bcm_dev_log_level level_print;
bcm_dev_log_level level_save;
} level_set;
struct
{
uint32_t index;
bcm_dev_log_id_type type;
} type_set;
struct
{
uint32_t offset;
char msg[MAX_DEV_LOG_STRING_SIZE + 1];
} msg_read;
} dev_log_io_param;
/* Use 'S' as magic number */
#define DEV_LOG_CHRDEV_IOC_MAGIC 'S'
#define DEV_LOG_CHRDEV_DB_READ _IOR(DEV_LOG_CHRDEV_IOC_MAGIC, 1, dev_log_io_param)
#define DEV_LOG_CHRDEV_LEVEL_SET _IOW(DEV_LOG_CHRDEV_IOC_MAGIC, 2, dev_log_io_param)
#define DEV_LOG_CHRDEV_TYPE_SET _IOW(DEV_LOG_CHRDEV_IOC_MAGIC, 3, dev_log_io_param)
#define DEV_LOG_CHRDEV_MSG_READ _IOR(DEV_LOG_CHRDEV_IOC_MAGIC, 4, dev_log_io_param)
#endif