blob: 48794a34eef52e5419701bed36bad71197ffbb2a [file] [log] [blame]
Sridhar Parasuram4d3f66d2015-07-27 15:34:18 -07001/*
2 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30#ifndef KM_MAIN_H
31#define KM_MAIN_H
32
33#include <sys/types.h>
34/**
35 * Commands supported
36 */
37#define KEYMASTER_CMD_ID 0x100UL
38#define KEYMASTER_UTILS_CMD_ID 0x200UL
39
40#define UINT32_MAX (0xffffffff)
41
42typedef enum {
43 /*
44 * List the commands supportedin by the hardware.
45 */
46 KEYMASTER_READ_LK_DEVICE_STATE = (KEYMASTER_UTILS_CMD_ID + 2UL),
47 KEYMASTER_WRITE_LK_DEVICE_STATE = (KEYMASTER_UTILS_CMD_ID + 3UL),
48 KEYMASTER_MILESTONE_CALL = (KEYMASTER_UTILS_CMD_ID + 4UL),
49
50 KEYMASTER_LAST_CMD_ENTRY = (int)0xFFFFFFFFULL
51} keymaster_cmd_t;
52
53
54/*
55 * Utils Api struct
56 */
57
58/**
59 @brief
60 Data structure
61
62 @param[in] cmd_id Requested command
63 @param[in] data information (could be data or a pointer to the memory that holds the data
64 @param[in] len if data is ptr to some buffer, len indicates length of the buffer
65*/
66typedef struct send_cmd{
67 uint32 cmd_id;
68 uint32 data;
69 uint32 len;
70} __attribute__ ((packed)) send_cmd_t;
71
72/*
73typedef struct send_cmd_rsp{
74 uint32 cmd_id;
75 uint32 data;
76 int32 status;
77} __attribute__ ((packed)) send_cmd_rsp_t; */
78
79/**
80 @brief
81 Data structure
82
83 @param[in] cmd_id Requested command
84*/
85typedef struct _km_set_milestone_req_t {
86 uint32 cmd_id;
87}__attribute__ ((packed)) km_set_milestone_req_t;
88
89/**
90 @brief
91 Data structure
92
93 @param[out] status Status of the request
94*/
95typedef struct _km_set_milestone_rsp_t {
96 int status;
97}__attribute__ ((packed)) km_set_milestone_rsp_t;
98
99#endif /* KM_MAIN_H */