1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _LINUX_RDS_H 8*8d67ca89SAndroid Build Coastguard Worker #define _LINUX_RDS_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <linux/socket.h> 11*8d67ca89SAndroid Build Coastguard Worker #include <linux/in6.h> 12*8d67ca89SAndroid Build Coastguard Worker #define RDS_IB_ABI_VERSION 0x301 13*8d67ca89SAndroid Build Coastguard Worker #define SOL_RDS 276 14*8d67ca89SAndroid Build Coastguard Worker #define RDS_CANCEL_SENT_TO 1 15*8d67ca89SAndroid Build Coastguard Worker #define RDS_GET_MR 2 16*8d67ca89SAndroid Build Coastguard Worker #define RDS_FREE_MR 3 17*8d67ca89SAndroid Build Coastguard Worker #define RDS_RECVERR 5 18*8d67ca89SAndroid Build Coastguard Worker #define RDS_CONG_MONITOR 6 19*8d67ca89SAndroid Build Coastguard Worker #define RDS_GET_MR_FOR_DEST 7 20*8d67ca89SAndroid Build Coastguard Worker #define SO_RDS_TRANSPORT 8 21*8d67ca89SAndroid Build Coastguard Worker #define SO_RDS_MSG_RXPATH_LATENCY 10 22*8d67ca89SAndroid Build Coastguard Worker #define RDS_TRANS_IB 0 23*8d67ca89SAndroid Build Coastguard Worker #define RDS_TRANS_GAP 1 24*8d67ca89SAndroid Build Coastguard Worker #define RDS_TRANS_TCP 2 25*8d67ca89SAndroid Build Coastguard Worker #define RDS_TRANS_COUNT 3 26*8d67ca89SAndroid Build Coastguard Worker #define RDS_TRANS_NONE (~0) 27*8d67ca89SAndroid Build Coastguard Worker #define RDS_TRANS_IWARP RDS_TRANS_GAP 28*8d67ca89SAndroid Build Coastguard Worker #define SIOCRDSSETTOS (SIOCPROTOPRIVATE) 29*8d67ca89SAndroid Build Coastguard Worker #define SIOCRDSGETTOS (SIOCPROTOPRIVATE + 1) 30*8d67ca89SAndroid Build Coastguard Worker typedef __u8 rds_tos_t; 31*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_RDMA_ARGS 1 32*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_RDMA_DEST 2 33*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_RDMA_MAP 3 34*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_RDMA_STATUS 4 35*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_CONG_UPDATE 5 36*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_ATOMIC_FADD 6 37*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_ATOMIC_CSWP 7 38*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_MASKED_ATOMIC_FADD 8 39*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_MASKED_ATOMIC_CSWP 9 40*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_RXPATH_LATENCY 11 41*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_ZCOPY_COOKIE 12 42*8d67ca89SAndroid Build Coastguard Worker #define RDS_CMSG_ZCOPY_COMPLETION 13 43*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_FIRST 10000 44*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_COUNTERS 10000 45*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_CONNECTIONS 10001 46*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_SEND_MESSAGES 10003 47*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_RETRANS_MESSAGES 10004 48*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_RECV_MESSAGES 10005 49*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_SOCKETS 10006 50*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_TCP_SOCKETS 10007 51*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_IB_CONNECTIONS 10008 52*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_CONNECTION_STATS 10009 53*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_IWARP_CONNECTIONS 10010 54*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_CONNECTIONS 10011 55*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_SEND_MESSAGES 10012 56*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_RETRANS_MESSAGES 10013 57*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_RECV_MESSAGES 10014 58*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_SOCKETS 10015 59*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_TCP_SOCKETS 10016 60*8d67ca89SAndroid Build Coastguard Worker #define RDS6_INFO_IB_CONNECTIONS 10017 61*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_LAST 10017 62*8d67ca89SAndroid Build Coastguard Worker struct rds_info_counter { 63*8d67ca89SAndroid Build Coastguard Worker __u8 name[32]; 64*8d67ca89SAndroid Build Coastguard Worker __u64 value; 65*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 66*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 67*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_CONNECTION_FLAG_CONNECTING 0x02 68*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_CONNECTION_FLAG_CONNECTED 0x04 69*8d67ca89SAndroid Build Coastguard Worker #define TRANSNAMSIZ 16 70*8d67ca89SAndroid Build Coastguard Worker struct rds_info_connection { 71*8d67ca89SAndroid Build Coastguard Worker __u64 next_tx_seq; 72*8d67ca89SAndroid Build Coastguard Worker __u64 next_rx_seq; 73*8d67ca89SAndroid Build Coastguard Worker __be32 laddr; 74*8d67ca89SAndroid Build Coastguard Worker __be32 faddr; 75*8d67ca89SAndroid Build Coastguard Worker __u8 transport[TRANSNAMSIZ]; 76*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 77*8d67ca89SAndroid Build Coastguard Worker __u8 tos; 78*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 79*8d67ca89SAndroid Build Coastguard Worker struct rds6_info_connection { 80*8d67ca89SAndroid Build Coastguard Worker __u64 next_tx_seq; 81*8d67ca89SAndroid Build Coastguard Worker __u64 next_rx_seq; 82*8d67ca89SAndroid Build Coastguard Worker struct in6_addr laddr; 83*8d67ca89SAndroid Build Coastguard Worker struct in6_addr faddr; 84*8d67ca89SAndroid Build Coastguard Worker __u8 transport[TRANSNAMSIZ]; 85*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 86*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 87*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 88*8d67ca89SAndroid Build Coastguard Worker #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 89*8d67ca89SAndroid Build Coastguard Worker struct rds_info_message { 90*8d67ca89SAndroid Build Coastguard Worker __u64 seq; 91*8d67ca89SAndroid Build Coastguard Worker __u32 len; 92*8d67ca89SAndroid Build Coastguard Worker __be32 laddr; 93*8d67ca89SAndroid Build Coastguard Worker __be32 faddr; 94*8d67ca89SAndroid Build Coastguard Worker __be16 lport; 95*8d67ca89SAndroid Build Coastguard Worker __be16 fport; 96*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 97*8d67ca89SAndroid Build Coastguard Worker __u8 tos; 98*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 99*8d67ca89SAndroid Build Coastguard Worker struct rds6_info_message { 100*8d67ca89SAndroid Build Coastguard Worker __u64 seq; 101*8d67ca89SAndroid Build Coastguard Worker __u32 len; 102*8d67ca89SAndroid Build Coastguard Worker struct in6_addr laddr; 103*8d67ca89SAndroid Build Coastguard Worker struct in6_addr faddr; 104*8d67ca89SAndroid Build Coastguard Worker __be16 lport; 105*8d67ca89SAndroid Build Coastguard Worker __be16 fport; 106*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 107*8d67ca89SAndroid Build Coastguard Worker __u8 tos; 108*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 109*8d67ca89SAndroid Build Coastguard Worker struct rds_info_socket { 110*8d67ca89SAndroid Build Coastguard Worker __u32 sndbuf; 111*8d67ca89SAndroid Build Coastguard Worker __be32 bound_addr; 112*8d67ca89SAndroid Build Coastguard Worker __be32 connected_addr; 113*8d67ca89SAndroid Build Coastguard Worker __be16 bound_port; 114*8d67ca89SAndroid Build Coastguard Worker __be16 connected_port; 115*8d67ca89SAndroid Build Coastguard Worker __u32 rcvbuf; 116*8d67ca89SAndroid Build Coastguard Worker __u64 inum; 117*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 118*8d67ca89SAndroid Build Coastguard Worker struct rds6_info_socket { 119*8d67ca89SAndroid Build Coastguard Worker __u32 sndbuf; 120*8d67ca89SAndroid Build Coastguard Worker struct in6_addr bound_addr; 121*8d67ca89SAndroid Build Coastguard Worker struct in6_addr connected_addr; 122*8d67ca89SAndroid Build Coastguard Worker __be16 bound_port; 123*8d67ca89SAndroid Build Coastguard Worker __be16 connected_port; 124*8d67ca89SAndroid Build Coastguard Worker __u32 rcvbuf; 125*8d67ca89SAndroid Build Coastguard Worker __u64 inum; 126*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 127*8d67ca89SAndroid Build Coastguard Worker struct rds_info_tcp_socket { 128*8d67ca89SAndroid Build Coastguard Worker __be32 local_addr; 129*8d67ca89SAndroid Build Coastguard Worker __be16 local_port; 130*8d67ca89SAndroid Build Coastguard Worker __be32 peer_addr; 131*8d67ca89SAndroid Build Coastguard Worker __be16 peer_port; 132*8d67ca89SAndroid Build Coastguard Worker __u64 hdr_rem; 133*8d67ca89SAndroid Build Coastguard Worker __u64 data_rem; 134*8d67ca89SAndroid Build Coastguard Worker __u32 last_sent_nxt; 135*8d67ca89SAndroid Build Coastguard Worker __u32 last_expected_una; 136*8d67ca89SAndroid Build Coastguard Worker __u32 last_seen_una; 137*8d67ca89SAndroid Build Coastguard Worker __u8 tos; 138*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 139*8d67ca89SAndroid Build Coastguard Worker struct rds6_info_tcp_socket { 140*8d67ca89SAndroid Build Coastguard Worker struct in6_addr local_addr; 141*8d67ca89SAndroid Build Coastguard Worker __be16 local_port; 142*8d67ca89SAndroid Build Coastguard Worker struct in6_addr peer_addr; 143*8d67ca89SAndroid Build Coastguard Worker __be16 peer_port; 144*8d67ca89SAndroid Build Coastguard Worker __u64 hdr_rem; 145*8d67ca89SAndroid Build Coastguard Worker __u64 data_rem; 146*8d67ca89SAndroid Build Coastguard Worker __u32 last_sent_nxt; 147*8d67ca89SAndroid Build Coastguard Worker __u32 last_expected_una; 148*8d67ca89SAndroid Build Coastguard Worker __u32 last_seen_una; 149*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 150*8d67ca89SAndroid Build Coastguard Worker #define RDS_IB_GID_LEN 16 151*8d67ca89SAndroid Build Coastguard Worker struct rds_info_rdma_connection { 152*8d67ca89SAndroid Build Coastguard Worker __be32 src_addr; 153*8d67ca89SAndroid Build Coastguard Worker __be32 dst_addr; 154*8d67ca89SAndroid Build Coastguard Worker __u8 src_gid[RDS_IB_GID_LEN]; 155*8d67ca89SAndroid Build Coastguard Worker __u8 dst_gid[RDS_IB_GID_LEN]; 156*8d67ca89SAndroid Build Coastguard Worker __u32 max_send_wr; 157*8d67ca89SAndroid Build Coastguard Worker __u32 max_recv_wr; 158*8d67ca89SAndroid Build Coastguard Worker __u32 max_send_sge; 159*8d67ca89SAndroid Build Coastguard Worker __u32 rdma_mr_max; 160*8d67ca89SAndroid Build Coastguard Worker __u32 rdma_mr_size; 161*8d67ca89SAndroid Build Coastguard Worker __u8 tos; 162*8d67ca89SAndroid Build Coastguard Worker __u8 sl; 163*8d67ca89SAndroid Build Coastguard Worker __u32 cache_allocs; 164*8d67ca89SAndroid Build Coastguard Worker }; 165*8d67ca89SAndroid Build Coastguard Worker struct rds6_info_rdma_connection { 166*8d67ca89SAndroid Build Coastguard Worker struct in6_addr src_addr; 167*8d67ca89SAndroid Build Coastguard Worker struct in6_addr dst_addr; 168*8d67ca89SAndroid Build Coastguard Worker __u8 src_gid[RDS_IB_GID_LEN]; 169*8d67ca89SAndroid Build Coastguard Worker __u8 dst_gid[RDS_IB_GID_LEN]; 170*8d67ca89SAndroid Build Coastguard Worker __u32 max_send_wr; 171*8d67ca89SAndroid Build Coastguard Worker __u32 max_recv_wr; 172*8d67ca89SAndroid Build Coastguard Worker __u32 max_send_sge; 173*8d67ca89SAndroid Build Coastguard Worker __u32 rdma_mr_max; 174*8d67ca89SAndroid Build Coastguard Worker __u32 rdma_mr_size; 175*8d67ca89SAndroid Build Coastguard Worker __u8 tos; 176*8d67ca89SAndroid Build Coastguard Worker __u8 sl; 177*8d67ca89SAndroid Build Coastguard Worker __u32 cache_allocs; 178*8d67ca89SAndroid Build Coastguard Worker }; 179*8d67ca89SAndroid Build Coastguard Worker enum rds_message_rxpath_latency { 180*8d67ca89SAndroid Build Coastguard Worker RDS_MSG_RX_HDR_TO_DGRAM_START = 0, 181*8d67ca89SAndroid Build Coastguard Worker RDS_MSG_RX_DGRAM_REASSEMBLE, 182*8d67ca89SAndroid Build Coastguard Worker RDS_MSG_RX_DGRAM_DELIVERED, 183*8d67ca89SAndroid Build Coastguard Worker RDS_MSG_RX_DGRAM_TRACE_MAX 184*8d67ca89SAndroid Build Coastguard Worker }; 185*8d67ca89SAndroid Build Coastguard Worker struct rds_rx_trace_so { 186*8d67ca89SAndroid Build Coastguard Worker __u8 rx_traces; 187*8d67ca89SAndroid Build Coastguard Worker __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX]; 188*8d67ca89SAndroid Build Coastguard Worker }; 189*8d67ca89SAndroid Build Coastguard Worker struct rds_cmsg_rx_trace { 190*8d67ca89SAndroid Build Coastguard Worker __u8 rx_traces; 191*8d67ca89SAndroid Build Coastguard Worker __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX]; 192*8d67ca89SAndroid Build Coastguard Worker __u64 rx_trace[RDS_MSG_RX_DGRAM_TRACE_MAX]; 193*8d67ca89SAndroid Build Coastguard Worker }; 194*8d67ca89SAndroid Build Coastguard Worker #define RDS_CONG_MONITOR_SIZE 64 195*8d67ca89SAndroid Build Coastguard Worker #define RDS_CONG_MONITOR_BIT(port) (((unsigned int) port) % RDS_CONG_MONITOR_SIZE) 196*8d67ca89SAndroid Build Coastguard Worker #define RDS_CONG_MONITOR_MASK(port) (1ULL << RDS_CONG_MONITOR_BIT(port)) 197*8d67ca89SAndroid Build Coastguard Worker typedef __u64 rds_rdma_cookie_t; 198*8d67ca89SAndroid Build Coastguard Worker struct rds_iovec { 199*8d67ca89SAndroid Build Coastguard Worker __u64 addr; 200*8d67ca89SAndroid Build Coastguard Worker __u64 bytes; 201*8d67ca89SAndroid Build Coastguard Worker }; 202*8d67ca89SAndroid Build Coastguard Worker struct rds_get_mr_args { 203*8d67ca89SAndroid Build Coastguard Worker struct rds_iovec vec; 204*8d67ca89SAndroid Build Coastguard Worker __u64 cookie_addr; 205*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 206*8d67ca89SAndroid Build Coastguard Worker }; 207*8d67ca89SAndroid Build Coastguard Worker struct rds_get_mr_for_dest_args { 208*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_storage dest_addr; 209*8d67ca89SAndroid Build Coastguard Worker struct rds_iovec vec; 210*8d67ca89SAndroid Build Coastguard Worker __u64 cookie_addr; 211*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 212*8d67ca89SAndroid Build Coastguard Worker }; 213*8d67ca89SAndroid Build Coastguard Worker struct rds_free_mr_args { 214*8d67ca89SAndroid Build Coastguard Worker rds_rdma_cookie_t cookie; 215*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 216*8d67ca89SAndroid Build Coastguard Worker }; 217*8d67ca89SAndroid Build Coastguard Worker struct rds_rdma_args { 218*8d67ca89SAndroid Build Coastguard Worker rds_rdma_cookie_t cookie; 219*8d67ca89SAndroid Build Coastguard Worker struct rds_iovec remote_vec; 220*8d67ca89SAndroid Build Coastguard Worker __u64 local_vec_addr; 221*8d67ca89SAndroid Build Coastguard Worker __u64 nr_local; 222*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 223*8d67ca89SAndroid Build Coastguard Worker __u64 user_token; 224*8d67ca89SAndroid Build Coastguard Worker }; 225*8d67ca89SAndroid Build Coastguard Worker struct rds_atomic_args { 226*8d67ca89SAndroid Build Coastguard Worker rds_rdma_cookie_t cookie; 227*8d67ca89SAndroid Build Coastguard Worker __u64 local_addr; 228*8d67ca89SAndroid Build Coastguard Worker __u64 remote_addr; 229*8d67ca89SAndroid Build Coastguard Worker union { 230*8d67ca89SAndroid Build Coastguard Worker struct { 231*8d67ca89SAndroid Build Coastguard Worker __u64 compare; 232*8d67ca89SAndroid Build Coastguard Worker __u64 swap; 233*8d67ca89SAndroid Build Coastguard Worker } cswp; 234*8d67ca89SAndroid Build Coastguard Worker struct { 235*8d67ca89SAndroid Build Coastguard Worker __u64 add; 236*8d67ca89SAndroid Build Coastguard Worker } fadd; 237*8d67ca89SAndroid Build Coastguard Worker struct { 238*8d67ca89SAndroid Build Coastguard Worker __u64 compare; 239*8d67ca89SAndroid Build Coastguard Worker __u64 swap; 240*8d67ca89SAndroid Build Coastguard Worker __u64 compare_mask; 241*8d67ca89SAndroid Build Coastguard Worker __u64 swap_mask; 242*8d67ca89SAndroid Build Coastguard Worker } m_cswp; 243*8d67ca89SAndroid Build Coastguard Worker struct { 244*8d67ca89SAndroid Build Coastguard Worker __u64 add; 245*8d67ca89SAndroid Build Coastguard Worker __u64 nocarry_mask; 246*8d67ca89SAndroid Build Coastguard Worker } m_fadd; 247*8d67ca89SAndroid Build Coastguard Worker }; 248*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 249*8d67ca89SAndroid Build Coastguard Worker __u64 user_token; 250*8d67ca89SAndroid Build Coastguard Worker }; 251*8d67ca89SAndroid Build Coastguard Worker struct rds_rdma_notify { 252*8d67ca89SAndroid Build Coastguard Worker __u64 user_token; 253*8d67ca89SAndroid Build Coastguard Worker __s32 status; 254*8d67ca89SAndroid Build Coastguard Worker }; 255*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_SUCCESS 0 256*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_REMOTE_ERROR 1 257*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_CANCELED 2 258*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_DROPPED 3 259*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_OTHER_ERROR 4 260*8d67ca89SAndroid Build Coastguard Worker #define RDS_MAX_ZCOOKIES 8 261*8d67ca89SAndroid Build Coastguard Worker struct rds_zcopy_cookies { 262*8d67ca89SAndroid Build Coastguard Worker __u32 num; 263*8d67ca89SAndroid Build Coastguard Worker __u32 cookies[RDS_MAX_ZCOOKIES]; 264*8d67ca89SAndroid Build Coastguard Worker }; 265*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_READWRITE 0x0001 266*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_FENCE 0x0002 267*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_INVALIDATE 0x0004 268*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_USE_ONCE 0x0008 269*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_DONTWAIT 0x0010 270*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_NOTIFY_ME 0x0020 271*8d67ca89SAndroid Build Coastguard Worker #define RDS_RDMA_SILENT 0x0040 272*8d67ca89SAndroid Build Coastguard Worker #endif 273