/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _ATMMPC_H_
#define _ATMMPC_H_
#include <linux/atmapi.h>
#include <linux/atmioc.h>
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#include <linux/atm.h>
#include <linux/types.h>
#define ATMMPC_CTRL _IO('a', ATMIOC_MPOA)
#define ATMMPC_DATA _IO('a', ATMIOC_MPOA+1)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MPC_SOCKET_INGRESS 1
#define MPC_SOCKET_EGRESS 2
struct atmmpc_ioc {
 int dev_num;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __be32 ipaddr;
 int type;
};
typedef struct in_ctrl_info {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u8 Last_NHRP_CIE_code;
 __u8 Last_Q2931_cause_value;
 __u8 eg_MPC_ATM_addr[ATM_ESA_LEN];
 __be32 tag;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __be32 in_dst_ip;
 __u16 holding_time;
 __u32 request_id;
} in_ctrl_info;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
typedef struct eg_ctrl_info {
 __u8 DLL_header[256];
 __u8 DH_length;
 __be32 cache_id;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __be32 tag;
 __be32 mps_ip;
 __be32 eg_dst_ip;
 __u8 in_MPC_data_ATM_addr[ATM_ESA_LEN];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 holding_time;
} eg_ctrl_info;
struct mpc_parameters {
 __u16 mpc_p1;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 mpc_p2;
 __u8 mpc_p3[8];
 __u16 mpc_p4;
 __u16 mpc_p5;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u16 mpc_p6;
} ;
struct k_message {
 __u16 type;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __be32 ip_mask;
 __u8 MPS_ctrl[ATM_ESA_LEN];
 union {
 in_ctrl_info in_info;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 eg_ctrl_info eg_info;
 struct mpc_parameters params;
 } content;
 struct atm_qos qos;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} __ATM_API_ALIGN;
struct llc_snap_hdr {
 __u8 dsap;
 __u8 ssap;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __u8 ui;
 __u8 org[3];
 __u8 type[2];
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TLV_MPOA_DEVICE_TYPE 0x00a03e2a
#define NON_MPOA 0
#define MPS 1
#define MPC 2
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MPS_AND_MPC 3
#define MPC_P1 10
#define MPC_P2 1
#define MPC_P3 0
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MPC_P4 5
#define MPC_P5 40
#define MPC_P6 160
#define HOLDING_TIME_DEFAULT 1200
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MPC_C1 2
#define MPC_C2 60
#define SND_MPOA_RES_RQST 201
#define SET_MPS_CTRL_ADDR 202
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SND_MPOA_RES_RTRY 203
#define STOP_KEEP_ALIVE_SM 204
#define EGRESS_ENTRY_REMOVED 205
#define SND_EGRESS_PURGE 206
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define DIE 207
#define DATA_PLANE_PURGE 208
#define OPEN_INGRESS_SVC 209
#define MPOA_TRIGGER_RCVD 101
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MPOA_RES_REPLY_RCVD 102
#define INGRESS_PURGE_RCVD 103
#define EGRESS_PURGE_RCVD 104
#define MPS_DEATH 105
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CACHE_IMPOS_RCVD 106
#define SET_MPC_CTRL_ADDR 107
#define SET_MPS_MAC_ADDR 108
#define CLEAN_UP_AND_EXIT 109
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SET_MPC_PARAMS 110
#define RELOAD 301
#endif
