linux/samples/mic/mpssd/mpssd.h
<<
>>
Prefs
   1/*
   2 * Intel MIC Platform Software Stack (MPSS)
   3 *
   4 * Copyright(c) 2013 Intel Corporation.
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License, version 2, as
   8 * published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful, but
  11 * WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13 * General Public License for more details.
  14 *
  15 * The full GNU General Public License is included in this distribution in
  16 * the file called "COPYING".
  17 *
  18 * Intel MIC User Space Tools.
  19 */
  20#ifndef _MPSSD_H_
  21#define _MPSSD_H_
  22
  23#include <stdio.h>
  24#include <stdlib.h>
  25#include <string.h>
  26#include <fcntl.h>
  27#include <unistd.h>
  28#include <dirent.h>
  29#include <libgen.h>
  30#include <pthread.h>
  31#include <stdarg.h>
  32#include <time.h>
  33#include <errno.h>
  34#include <sys/dir.h>
  35#include <sys/ioctl.h>
  36#include <sys/poll.h>
  37#include <sys/types.h>
  38#include <sys/socket.h>
  39#include <sys/stat.h>
  40#include <sys/types.h>
  41#include <sys/mman.h>
  42#include <sys/utsname.h>
  43#include <sys/wait.h>
  44#include <netinet/in.h>
  45#include <arpa/inet.h>
  46#include <netdb.h>
  47#include <pthread.h>
  48#include <signal.h>
  49#include <limits.h>
  50#include <syslog.h>
  51#include <getopt.h>
  52#include <net/if.h>
  53#include <linux/if_tun.h>
  54#include <linux/if_tun.h>
  55#include <linux/virtio_ids.h>
  56
  57#define MICSYSFSDIR "/sys/class/mic"
  58#define LOGFILE_NAME "/var/log/mpssd"
  59#define PAGE_SIZE 4096
  60
  61struct mic_console_info {
  62        pthread_t       console_thread;
  63        int             virtio_console_fd;
  64        void            *console_dp;
  65};
  66
  67struct mic_net_info {
  68        pthread_t       net_thread;
  69        int             virtio_net_fd;
  70        int             tap_fd;
  71        void            *net_dp;
  72};
  73
  74struct mic_virtblk_info {
  75        pthread_t       block_thread;
  76        int             virtio_block_fd;
  77        void            *block_dp;
  78        volatile sig_atomic_t   signaled;
  79        char            *backend_file;
  80        int             backend;
  81        void            *backend_addr;
  82        long            backend_size;
  83};
  84
  85struct mic_info {
  86        int             id;
  87        char            *name;
  88        pthread_t       config_thread;
  89        pthread_t       init_thread;
  90        pid_t           pid;
  91        struct mic_console_info mic_console;
  92        struct mic_net_info     mic_net;
  93        struct mic_virtblk_info mic_virtblk;
  94        int             restart;
  95        int             boot_on_resume;
  96        struct mic_info *next;
  97};
  98
  99__attribute__((format(printf, 1, 2)))
 100void mpsslog(char *format, ...);
 101char *readsysfs(char *dir, char *entry);
 102int setsysfs(char *dir, char *entry, char *value);
 103#endif
 104