cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

if_tun.h (1587B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 *  Universal TUN/TAP device driver.
      4 *  Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com>
      5 */
      6#ifndef __IF_TUN_H
      7#define __IF_TUN_H
      8
      9#include <uapi/linux/if_tun.h>
     10#include <uapi/linux/virtio_net.h>
     11
     12#define TUN_XDP_FLAG 0x1UL
     13
     14#define TUN_MSG_UBUF 1
     15#define TUN_MSG_PTR  2
     16struct tun_msg_ctl {
     17	unsigned short type;
     18	unsigned short num;
     19	void *ptr;
     20};
     21
     22struct tun_xdp_hdr {
     23	int buflen;
     24	struct virtio_net_hdr gso;
     25};
     26
     27#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE)
     28struct socket *tun_get_socket(struct file *);
     29struct ptr_ring *tun_get_tx_ring(struct file *file);
     30static inline bool tun_is_xdp_frame(void *ptr)
     31{
     32       return (unsigned long)ptr & TUN_XDP_FLAG;
     33}
     34static inline void *tun_xdp_to_ptr(struct xdp_frame *xdp)
     35{
     36       return (void *)((unsigned long)xdp | TUN_XDP_FLAG);
     37}
     38static inline struct xdp_frame *tun_ptr_to_xdp(void *ptr)
     39{
     40       return (void *)((unsigned long)ptr & ~TUN_XDP_FLAG);
     41}
     42void tun_ptr_free(void *ptr);
     43#else
     44#include <linux/err.h>
     45#include <linux/errno.h>
     46struct file;
     47struct socket;
     48static inline struct socket *tun_get_socket(struct file *f)
     49{
     50	return ERR_PTR(-EINVAL);
     51}
     52static inline struct ptr_ring *tun_get_tx_ring(struct file *f)
     53{
     54	return ERR_PTR(-EINVAL);
     55}
     56static inline bool tun_is_xdp_frame(void *ptr)
     57{
     58	return false;
     59}
     60static inline void *tun_xdp_to_ptr(struct xdp_frame *xdp)
     61{
     62	return NULL;
     63}
     64static inline struct xdp_frame *tun_ptr_to_xdp(void *ptr)
     65{
     66	return NULL;
     67}
     68static inline void tun_ptr_free(void *ptr)
     69{
     70}
     71#endif /* CONFIG_TUN */
     72#endif /* __IF_TUN_H */