| /* | |
| * 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 |