2 * Copyright (C) 2001-2003 by NBMK Encryption Technologies.
5 * NBMK Encryption Technologies provides no support of any kind for
6 * this software. Questions or concerns about it may be addressed to
7 * the members of the relevant open-source community at
8 * <tech-crypto@netbsd.org>.
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions are
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above
18 * copyright notice, this list of conditions and the following
19 * disclaimer in the documentation and/or other materials provided
20 * with the distribution.
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 /*****************************************************************************
36 * @(#) n8_pub_service.h 1.13@(#)
37 *****************************************************************************/
39 /*****************************************************************************/
40 /** @file n8_pub_service
41 * @brief Common type declarations used in public interface.
43 * Public header file for service functions for NSP2000 project.
45 *****************************************************************************/
47 /*****************************************************************************
49 * 06/06/03 brr Eliminate unused N8_HardwareType_t to avoid confusion with
51 * 04/25/03 brr Modified N8_EventPoll to return the number of completed
53 * 03/13/04 brr Added prototype for N8_EventPoll.
54 * 03/02/03 bac Added N8_HARDWAREREVISION parameter to N8_GetSystemParameter.
55 * 03/01/03 brr Added support for API callbacks.
56 * 07/08/02 brr Added N8_FILEDESCRIPTOR parameter to N8_GetSystemParameter.
57 * 04/05/02 brr Added N8_SWVERSIONTEXT parameter to N8_GetSystemParameter.
58 * 04/03/02 brr Added prototype for N8_PrintSoftwareVersion.
59 * 03/22/02 brr Added N8_EVENT_NONE_AVAILABLE. (Bug 635)
60 * 03/22/02 brr Moved N8_EVENT constants from n8_event.h.
61 * 10/31/01 hml Added latest set of enums.
62 * 10/12/01 dkm Original version.
63 ****************************************************************************/
64 #ifndef N8_PUB_SERVICE_H
65 #define N8_PUB_SERVICE_H
72 #include "n8_pub_common.h"
74 /*****************************************************************************
75 * Structures/type definitions
76 *****************************************************************************/
79 N8_EACOUNT
, /* Number of EA execution units. */
80 N8_EATYPE
, /* An array of types of the EA units. The size n (number
81 ofelements in the array) is equal to the value
82 returned for N8_EACOUNT. Entry i in the array,
83 0 <= i < n is the type of the EA unit */
84 N8_PKCOUNT
, /* Number of PK execution units. */
85 N8_PKTYPE
, /* An array of types of the PK units. The size n (number
86 ofelements in the array) is equal to the value
87 returned for N8_PKCOUNT. Entry i in the array,
88 0 <= i < n is the type of the PK unit */
89 N8_HPCOUNT
, /* Number of hash processor (HP) execution units. */
90 N8_HPTYPE
, /* An array of types of the HP units. The size n (number
91 ofelements in the array) is equal to the value
92 returned for N8_HPCOUNT. Entry i in the array,
93 0 <= i < n is the type of the HP unit */
94 N8_HARDWAREVERSION
, /* The version of the NSP2000 chip, from the
95 configuration register. */
96 N8_SOFTWAREVERSION
, /* The version number of the API software, major
97 minor, maintainence version and build number */
98 N8_CONTEXTMEMSIZE
, /* The size in bytes of the E/A
99 unit's context memory. The size n (number of
100 elements in the array) is equal to the value
101 returned for N8_EACOUNT. Entry i in the array,
102 0 <= i < n is the number of context memory entries
103 in the E/A of E/A unit i+1. */
104 N8_SKSMEMSIZE
, /* The size in bytes of the Secure Key Storage. The
105 size n (number of elements in the array) is equal
106 to the value returned for N8_PKCOUNT. Entry i in
107 the array, 0 <= i < n, is the number of context
108 memoryentries in the SKS of PKP unit i+1 */
109 N8_NUMBEROFCHIPS
, /* The number of NetOctave chips on the system */
110 N8_SWVERSIONTEXT
, /* ASCII string describing the API software version */
111 N8_FILEDESCRIPTOR
, /* The file descriptor for the NSP2000 device */
112 N8_INITIALIZE_INFO
, /* The configuration parameters used to initialize */
114 N8_HARDWAREREVISION
/* The revision id as reported by 'lspci' under Linux.
115 * The results are returned as an array of unsigned
119 /*****************************************************************************
120 * Enumeration for hardware types. These are used with the N8_HARDWAREVERSION
121 * query of the N8_GetSystemParameter call as well as the N8_EATYPE, N8_PKTYPE
122 * and N8_HPTYPE queries.
123 *****************************************************************************/
124 #define N8_NSP2000 0xffffff00 /* The unit is implemented by an NSP2000 */
125 #define N8_NSP2000EMULATED 0xffffff01 /* The unit is an NSP2000 emulator */
127 /*****************************************************************************
128 * Defines for N8_Event functions
129 *****************************************************************************/
130 #define N8_EVENT_MAX (18 * 1024) /* this value was arbitrarily selected */
131 #define N8_EVENT_SLEEP (1000) /* sleep 1 millisecond */
132 #define N8_EVENT_NONE_READY -1
134 /*****************************************************************************
135 * Function prototypes
136 *****************************************************************************/
137 N8_Status_t
N8_GetSystemParameter(N8_Parameter_t parameter
, void *value_p
);
138 N8_Status_t
N8_InitializeAPI(N8_ConfigAPI_t
*parameters_p
);
139 N8_Status_t
N8_EventCheck(N8_Event_t
*events_p
, const int count
, int *ready_p
);
140 N8_Status_t
N8_EventWait (N8_Event_t
*events_p
, const int count
, int *ready_p
);
141 N8_Status_t
N8_TerminateAPI(void);
143 #ifdef SUPPORT_CALLBACKS
144 int N8_EventPoll(void);