linux/include/linux/if_tun.h
<<
>>
Prefs
   1/*
   2 *  Universal TUN/TAP device driver.
   3 *  Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com>
   4 *
   5 *  This program is free software; you can redistribute it and/or modify
   6 *  it under the terms of the GNU General Public License as published by
   7 *  the Free Software Foundation; either version 2 of the License, or
   8 *  (at your option) any later version.
   9 *
  10 *  This program is distributed in the hope that it will be useful,
  11 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13 *  GNU General Public License for more details.
  14 */
  15#ifndef __IF_TUN_H
  16#define __IF_TUN_H
  17
  18#include <uapi/linux/if_tun.h>
  19
  20#define TUN_XDP_FLAG 0x1UL
  21
  22#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE)
  23struct socket *tun_get_socket(struct file *);
  24struct ptr_ring *tun_get_tx_ring(struct file *file);
  25bool tun_is_xdp_frame(void *ptr);
  26void *tun_xdp_to_ptr(void *ptr);
  27void *tun_ptr_to_xdp(void *ptr);
  28void tun_ptr_free(void *ptr);
  29#else
  30#include <linux/err.h>
  31#include <linux/errno.h>
  32struct file;
  33struct socket;
  34static inline struct socket *tun_get_socket(struct file *f)
  35{
  36        return ERR_PTR(-EINVAL);
  37}
  38static inline struct ptr_ring *tun_get_tx_ring(struct file *f)
  39{
  40        return ERR_PTR(-EINVAL);
  41}
  42static inline bool tun_is_xdp_frame(void *ptr)
  43{
  44        return false;
  45}
  46static inline void *tun_xdp_to_ptr(void *ptr)
  47{
  48        return NULL;
  49}
  50static inline void *tun_ptr_to_xdp(void *ptr)
  51{
  52        return NULL;
  53}
  54static inline void tun_ptr_free(void *ptr)
  55{
  56}
  57#endif /* CONFIG_TUN */
  58#endif /* __IF_TUN_H */
  59