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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
/*
nfp_osif.h: nCipher PCI HSM OS interface declarations
(C) Copyright nCipher Corporation Ltd 2002-2008 All rights reserved
Copyright (c) 2008-2013 Thales e-Security All rights reserved
Copyright (c) 2014 Thales UK All rights reserved
history
10/10/2001 jsh Original
*/
#ifndef NFP_OSIF_H
#define NFP_OSIF_H
#include "nfp_hostif.h"
#include "nfp_error.h"
/* general typedefs ----------------------------------------------- */
typedef volatile unsigned int reg32;
typedef volatile unsigned short reg16;
typedef volatile unsigned char reg8;
/* sempaphores, mutexs and events --------------------------------- */
#if 0
extern nfp_err nfp_sema_init( nfp_sema *sema, int initial);
extern void nfp_sema_destroy( nfp_sema *sema );
extern void nfp_sema_post( nfp_sema *sema );
extern void nfp_sema_wait( nfp_sema *sema );
extern int nfp_sema_wait_sig( nfp_sema *sema );
extern nfp_err nfp_mutex_init( nfp_mutex *mutex );
extern void nfp_mutex_destroy( nfp_mutex *mutex );
extern void nfp_mutex_enter( nfp_mutex *mutex );
extern void nfp_mutex_exit( nfp_mutex *mutex );
extern nfp_err nfp_event_init( nfp_event *event );
extern void nfp_event_destroy( nfp_event *event );
extern void nfp_event_set( nfp_event *event );
extern void nfp_event_clear( nfp_event *event );
extern void nfp_event_wait( nfp_event *event );
extern void nfp_event_wait_sig( nfp_event *event );
#endif
/* timeouts ------------------------------------------------------ */
extern void nfp_sleep( int ms );
/* memory handling ----------------------------------------------- */
#define KMALLOC_DMA 0
#define KMALLOC_CACHED 1
extern void *nfp_kmalloc( int size, int flags );
extern void *nfp_krealloc( void *ptr, int size, int flags );
extern void nfp_kfree( void * );
/* config space access ------------------------------------------------ */
/* return Little Endian 32 bit config register */
extern nfp_err nfp_config_inl( nfp_cdev *pdev, int offset, unsigned int *res );
/* io space access ------------------------------------------------ */
extern unsigned int nfp_inl( nfp_cdev *pdev, int bar, int offset );
extern unsigned short nfp_inw( nfp_cdev *pdev, int bar, int offset );
extern void nfp_outl( nfp_cdev *pdev, int bar, int offset, unsigned int data );
extern void nfp_outw( nfp_cdev *pdev, int bar, int offset, unsigned short data );
/* user and device memory space access ---------------------------- */
/* NB these 2 functions are not guarenteed to be re-entrant for a given device */
extern nfp_err nfp_copy_from_user_to_dev( nfp_cdev *cdev, int bar, int offset, const char *ubuf, int len);
extern nfp_err nfp_copy_to_user_from_dev( nfp_cdev *cdev, int bar, int offset, char *ubuf, int len);
extern nfp_err nfp_copy_from_user( char *kbuf, const char *ubuf, int len );
extern nfp_err nfp_copy_to_user( char *ubuf, const char *kbuf, int len );
extern nfp_err nfp_copy_from_dev( nfp_cdev *cdev, int bar, int offset, char *kbuf, int len );
extern nfp_err nfp_copy_to_dev( nfp_cdev *cdev, int bar, int offset, const char *kbuf, int len);
/* debug ------------------------------------------------------------ */
#define NFP_DBG1 1
#define NFP_DBGE NFP_DBG1
#define NFP_DBG2 2
#define NFP_DBG3 3
#define NFP_DBG4 4
#ifdef STRANGE_VARARGS
extern void nfp_log();
#else
extern void nfp_log( int severity, const char *format, ...);
#endif
extern int nfp_debug;
#endif
|