/******************************************************************************/
/*                                                                            */
/* bypass library, Copyright (c) 2004-2006 Silicom, Ltd                       */
/* Corporation.                                                               */
/*                                                                            */
/* This program is free software; you can redistribute it and/or modify       */
/* it under the terms of the GNU General Public License as published by       */
/* the Free Software Foundation, located in the file LICENSE.                 */
/*                                                                            */
/*                                                                            */
/*                                                                            */
/******************************************************************************/

#ifndef BP_IOCTL_H
#define BP_IOCTL_H

#define BP_CAP                   0x01	/* BIT_0 */
#define BP_STATUS_CAP            0x02	/* BIT_1 */
#define BP_STATUS_CHANGE_CAP     0x04	/* BIT_2 */
#define SW_CTL_CAP               0x08	/* BIT_3 */
#define BP_DIS_CAP               0x10	/* BIT_4 */
#define BP_DIS_STATUS_CAP        0x20	/* BIT_5 */
#define STD_NIC_CAP              0x40	/* BIT_6 */
#define BP_PWOFF_ON_CAP          0x80	/* BIT_7 */
#define BP_PWOFF_OFF_CAP         0x0100	/* BIT_8 */
#define BP_PWOFF_CTL_CAP         0x0200	/* BIT_9 */
#define BP_PWUP_ON_CAP           0x0400	/* BIT_10 */
#define BP_PWUP_OFF_CAP          0x0800	/* BIT_11 */
#define BP_PWUP_CTL_CAP          0x1000	/* BIT_12 */
#define WD_CTL_CAP               0x2000	/* BIT_13 */
#define WD_STATUS_CAP            0x4000	/* BIT_14 */
#define WD_TIMEOUT_CAP           0x8000	/* BIT_15 */
#define TX_CTL_CAP               0x10000	/* BIT_16 */
#define TX_STATUS_CAP            0x20000	/* BIT_17 */
#define TAP_CAP                  0x40000	/* BIT_18 */
#define TAP_STATUS_CAP           0x80000	/* BIT_19 */
#define TAP_STATUS_CHANGE_CAP    0x100000	/* BIT_20 */
#define TAP_DIS_CAP              0x200000	/* BIT_21 */
#define TAP_DIS_STATUS_CAP       0x400000	/* BIT_22 */
#define TAP_PWUP_ON_CAP          0x800000	/* BIT_23 */
#define TAP_PWUP_OFF_CAP         0x1000000	/* BIT 24 */
#define TAP_PWUP_CTL_CAP         0x2000000	/* BIT 25 */
#define NIC_CAP_NEG              0x4000000	/* BIT 26 */
#define TPL_CAP                  0x8000000	/* BIT 27 */
#define DISC_CAP                 0x10000000	/* BIT 28 */
#define DISC_DIS_CAP             0x20000000	/* BIT 29 */
#define DISC_PWUP_CTL_CAP        0x40000000	/* BIT 30 */

#define WD_MIN_TIME_MASK(val)      (val & 0xf)
#define WD_STEP_COUNT_MASK(val)    ((val & 0xf) << 5)
#define WDT_STEP_TIME              0x10	/* BIT_4 */

#define WD_MIN_TIME_GET(desc)   (desc & 0xf)
#define WD_STEP_COUNT_GET(desc) ((desc>>5) & 0xf)

enum {
	IS_BYPASS = 1,
	GET_BYPASS_SLAVE,
	GET_BYPASS_CAPS,
	GET_WD_SET_CAPS,
	SET_BYPASS,
	GET_BYPASS,
	GET_BYPASS_CHANGE,
	SET_BYPASS_WD,
	GET_BYPASS_WD,
	GET_WD_EXPIRE_TIME,
	RESET_BYPASS_WD_TIMER,
	SET_DIS_BYPASS,
	GET_DIS_BYPASS,
	SET_BYPASS_PWOFF,
	GET_BYPASS_PWOFF,
	SET_BYPASS_PWUP,
	GET_BYPASS_PWUP,
	SET_STD_NIC,
	GET_STD_NIC,
	SET_TX,
	GET_TX,
	SET_TAP,
	GET_TAP,
	GET_TAP_CHANGE,
	SET_DIS_TAP,
	GET_DIS_TAP,
	SET_TAP_PWUP,
	GET_TAP_PWUP,
	SET_WD_EXP_MODE,
	GET_WD_EXP_MODE,
	SET_WD_AUTORESET,
	GET_WD_AUTORESET,
	SET_TPL,
	GET_TPL,
	SET_DISC,
	GET_DISC,
	GET_DISC_CHANGE,
	SET_DIS_DISC,
	GET_DIS_DISC,
	SET_DISC_PWUP,
	GET_DISC_PWUP,

	GET_BYPASS_INFO = 100,
	GET_BP_WAIT_AT_PWUP,
	SET_BP_WAIT_AT_PWUP,
	GET_BP_HW_RESET,
	SET_BP_HW_RESET,
} CMND_TYPE;

enum {
	IF_SCAN_SD,
	GET_DEV_NUM_SD,
	IS_BYPASS_SD,
	GET_BYPASS_SLAVE_SD,
	GET_BYPASS_CAPS_SD,
	GET_WD_SET_CAPS_SD,
	SET_BYPASS_SD,
	GET_BYPASS_SD,
	GET_BYPASS_CHANGE_SD,
	SET_BYPASS_WD_SD,
	GET_BYPASS_WD_SD,
	GET_WD_EXPIRE_TIME_SD,
	RESET_BYPASS_WD_TIMER_SD,
	SET_DIS_BYPASS_SD,
	GET_DIS_BYPASS_SD,
	SET_BYPASS_PWOFF_SD,
	GET_BYPASS_PWOFF_SD,
	SET_BYPASS_PWUP_SD,
	GET_BYPASS_PWUP_SD,
	SET_STD_NIC_SD,
	GET_STD_NIC_SD,
	SET_TX_SD,
	GET_TX_SD,
	SET_TAP_SD,
	GET_TAP_SD,
	GET_TAP_CHANGE_SD,
	SET_DIS_TAP_SD,
	GET_DIS_TAP_SD,
	SET_TAP_PWUP_SD,
	GET_TAP_PWUP_SD,
	SET_WD_EXP_MODE_SD,
	GET_WD_EXP_MODE_SD,
	SET_WD_AUTORESET_SD,
	GET_WD_AUTORESET_SD,
	SET_TPL_SD,
	GET_TPL_SD,
	SET_DISC_SD,
	GET_DISC_SD,
	GET_DISC_CHANGE_SD,
	SET_DIS_DISC_SD,
	GET_DIS_DISC_SD,
	SET_DISC_PWUP_SD,
	GET_DISC_PWUP_SD,

	GET_BYPASS_INFO_SD = 100,
	GET_BP_WAIT_AT_PWUP_SD,
	SET_BP_WAIT_AT_PWUP_SD,
	GET_BP_HW_RESET_SD,
	SET_BP_HW_RESET_SD,

} CMND_TYPE_SD;

#define SIOCGIFBYPASS (SIOCDEVPRIVATE+10)

struct bp_info {
	char prod_name[14];
	unsigned char fw_ver;
};

/* for passing single values */
struct if_bypass {
	char if_name[IFNAMSIZ];
	int cmd;
	int data;
};
struct if_bypass_info {
	char if_name[IFNAMSIZ];
	char cmd;
	struct bp_info bp_info;
};

/*
* The major device number. We can't rely on dynamic
* registration any more, because ioctls need to know
* it.
*/

#define MAGIC_NUM 'J'

/* for passing single values */
struct bpctl_cmd {
	int status;
	int data[8];
	int in_param[8];
	int out_param[8];
};

#define IOCTL_TX_MSG(cmd) _IOWR(MAGIC_NUM, cmd, struct bpctl_cmd)

#define DEVICE_NAME "bpctl"

#endif
