105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris/****************************************************************************
205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ****************************************************************************
305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***
405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   This header was automatically generated from a Linux kernel header
505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   of the same name, to make information necessary for userspace to
605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   call into the kernel available to libc.  It contains only constants,
705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   structures, and macros generated from the original header, and thus,
805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   contains no copyrightable information.
905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***
1005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   To edit the content of this header, modify the corresponding
1105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   source file (e.g. under external/kernel-headers/original/) then
1205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   run bionic/libc/kernel/tools/update_all.py
1305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***
1405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   Any manual change here will be lost the next time this script will
1505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***   be run. You've been warned!
1605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ***
1705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ****************************************************************************
1805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ****************************************************************************/
1905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#ifndef SCIF_IOCTL_H
2005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_IOCTL_H
2105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#include <linux/types.h>
2205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scif_port_id {
2305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u16 node;
2405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u16 port;
2505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
2605d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_connect {
2705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct scif_port_id self;
2805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct scif_port_id peer;
2905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
3005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_accept {
3105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 flags;
3205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct scif_port_id peer;
3305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 endpt;
3405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
3505d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_msg {
3605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 msg;
3705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 len;
3805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 flags;
3905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 out_len;
4005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
4105d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_reg {
4205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 addr;
4305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 len;
4405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 offset;
4505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 prot;
4605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 flags;
4705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 out_offset;
4805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
4905d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_unreg {
5005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 offset;
5105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 len;
5205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
5305d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_copy {
5405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 loffset;
5505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 len;
5605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 roffset;
5705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 addr;
5805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 flags;
5905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
6005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_fence_mark {
6105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 flags;
6205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 mark;
6305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
6405d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_fence_signal {
6505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 loff;
6605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 lval;
6705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s64 roff;
6805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 rval;
6905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 flags;
7005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
7105d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct scifioctl_node_ids {
7205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 nodes;
7305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __u64 self;
7405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __s32 len;
7505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
7605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_BIND _IOWR('s', 1, __u64)
7705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_LISTEN _IOW('s', 2, __s32)
7805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_CONNECT _IOWR('s', 3, struct scifioctl_connect)
7905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_ACCEPTREQ _IOWR('s', 4, struct scifioctl_accept)
8005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_ACCEPTREG _IOWR('s', 5, __u64)
8105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_SEND _IOWR('s', 6, struct scifioctl_msg)
8205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_RECV _IOWR('s', 7, struct scifioctl_msg)
8305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_REG _IOWR('s', 8, struct scifioctl_reg)
8405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_UNREG _IOWR('s', 9, struct scifioctl_unreg)
8505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_READFROM _IOWR('s', 10, struct scifioctl_copy)
8605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_WRITETO _IOWR('s', 11, struct scifioctl_copy)
8705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_VREADFROM _IOWR('s', 12, struct scifioctl_copy)
8805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_VWRITETO _IOWR('s', 13, struct scifioctl_copy)
8905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_GET_NODEIDS _IOWR('s', 14, struct scifioctl_node_ids)
9005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_FENCE_MARK _IOWR('s', 15, struct scifioctl_fence_mark)
9105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_FENCE_WAIT _IOWR('s', 16, __s32)
9205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define SCIF_FENCE_SIGNAL _IOWR('s', 17, struct scifioctl_fence_signal)
9305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#endif
94