summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/nfp/nfp_common.h
blob: d1d2100fea81e0a4ab3fd77ccc895a163846176b (plain)
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
/*

(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

*/

#ifndef NFP_COMMON_H
#define NFP_COMMON_H

#include <sys/types.h>
#include <sys/conf.h>

typedef uint32_t UINT32;
typedef uint8_t BYTE;

#define DEFINE_NFPCI_PACKED_STRUCTS
#include "nfpci.h"
#include "nfdev-solaris.h"

typedef int oserr_t;

#if CH_BIGENDIAN

/* Big Endian Sparc */

#define SWP32(x) \
( (((unsigned int)(x)>>24)&0xff) | (((unsigned int)(x)>>8)&0xff00) | (((unsigned int)(x)<<8)&0xff0000) | (((unsigned int)(x)<<24)&0xff000000) ) 

#define SWP16(x) ( (((x)>>8)&0xff) | (((x)<<8)&0xff00) )

#define FROM_LE32_IO(x)		SWP32(*x)
#define TO_LE32_IO(x,y)		*x=SWP32(y)

#define FROM_LE32_MEM(x)	SWP32(*x)
#define TO_LE32_MEM(x,y)	*x=SWP32(y)

#define FROM_LE16_IO(x)		SWP16(*x)
#define TO_LE16_IO(x,y)		*x=SWP16(y)

#else

/* Little Endian x86 */

#define FROM_LE32_IO(x) (*x)
#define TO_LE32_IO(x,y) (*x=y)

#define FROM_LE32_MEM(x) (*x)
#define TO_LE32_MEM(x,y) (*x=y)

#define FROM_LE16_IO(x) (*x)
#define TO_LE16_IO(x,y) (*x=y)

#endif /* !CH_BIGENDIAN */

#include <sys/types.h>

#if CH_KERNELVER == 260
#define nfp_get_lbolt( lbolt, err ) err= drv_getparm( LBOLT, lbolt )
#else
#define nfp_get_lbolt( lbolt, err ) { *lbolt= ddi_get_lbolt(); err= 0; }
#endif

#endif