Blame view

kernel/linux-rt-4.4.41/drivers/misc/mic/cosm/cosm_main.h 2.04 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  /*
   * Intel MIC Platform Software Stack (MPSS)
   *
   * Copyright(c) 2015 Intel Corporation.
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License, version 2, as
   * published by the Free Software Foundation.
   *
   * This program is distributed in the hope that it will be useful, but
   * WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   * General Public License for more details.
   *
   * The full GNU General Public License is included in this distribution in
   * the file called "COPYING".
   *
   * Intel MIC Coprocessor State Management (COSM) Driver
   *
   */
  #ifndef _COSM_COSM_H_
  #define _COSM_COSM_H_
  
  #include <linux/scif.h>
  #include "../bus/cosm_bus.h"
  
  #define COSM_HEARTBEAT_SEND_SEC 30
  #define SCIF_COSM_LISTEN_PORT  201
  
  /**
   * enum COSM msg id's
   * @COSM_MSG_SHUTDOWN: host->card trigger shutdown
   * @COSM_MSG_SYNC_TIME: host->card send host time to card to sync time
   * @COSM_MSG_HEARTBEAT: card->host heartbeat
   * @COSM_MSG_SHUTDOWN_STATUS: card->host with shutdown status as payload
   */
  enum cosm_msg_id {
  	COSM_MSG_SHUTDOWN,
  	COSM_MSG_SYNC_TIME,
  	COSM_MSG_HEARTBEAT,
  	COSM_MSG_SHUTDOWN_STATUS,
  };
  
  struct cosm_msg {
  	u64 id;
  	union {
  		u64 shutdown_status;
  		struct timespec64 timespec;
  	};
  };
  
  extern const char * const cosm_state_string[];
  extern const char * const cosm_shutdown_status_string[];
  
  void cosm_sysfs_init(struct cosm_device *cdev);
  int cosm_start(struct cosm_device *cdev);
  void cosm_stop(struct cosm_device *cdev, bool force);
  int cosm_reset(struct cosm_device *cdev);
  int cosm_shutdown(struct cosm_device *cdev);
  void cosm_set_state(struct cosm_device *cdev, u8 state);
  void cosm_set_shutdown_status(struct cosm_device *cdev, u8 status);
  void cosm_init_debugfs(void);
  void cosm_exit_debugfs(void);
  void cosm_create_debug_dir(struct cosm_device *cdev);
  void cosm_delete_debug_dir(struct cosm_device *cdev);
  int cosm_scif_init(void);
  void cosm_scif_exit(void);
  void cosm_scif_work(struct work_struct *work);
  
  #endif