Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _UAPI_LINUX_ERRQUEUE_H
     20 #define _UAPI_LINUX_ERRQUEUE_H
     21 #include <linux/types.h>
     22 struct sock_extended_err {
     23   __u32 ee_errno;
     24   __u8 ee_origin;
     25   __u8 ee_type;
     26   __u8 ee_code;
     27   __u8 ee_pad;
     28   __u32 ee_info;
     29   __u32 ee_data;
     30 };
     31 #define SO_EE_ORIGIN_NONE 0
     32 #define SO_EE_ORIGIN_LOCAL 1
     33 #define SO_EE_ORIGIN_ICMP 2
     34 #define SO_EE_ORIGIN_ICMP6 3
     35 #define SO_EE_ORIGIN_TXSTATUS 4
     36 #define SO_EE_ORIGIN_ZEROCOPY 5
     37 #define SO_EE_ORIGIN_TXTIME 6
     38 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
     39 #define SO_EE_OFFENDER(ee) ((struct sockaddr *) ((ee) + 1))
     40 #define SO_EE_CODE_ZEROCOPY_COPIED 1
     41 #define SO_EE_CODE_TXTIME_INVALID_PARAM 1
     42 #define SO_EE_CODE_TXTIME_MISSED 2
     43 struct scm_timestamping {
     44   struct timespec ts[3];
     45 };
     46 enum {
     47   SCM_TSTAMP_SND,
     48   SCM_TSTAMP_SCHED,
     49   SCM_TSTAMP_ACK,
     50 };
     51 #endif
     52