field.h (1755B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * This file defines FIELD constants 8 * 9 * Its contents are not used directly by applications; it is used only 10 * by header files of parent APIs which need to share FIELD constants. 11 */ 12 13 #ifndef _SHR_FIELD_H 14 #define _SHR_FIELD_H 15 16 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_INDEX_SHIFT 0 17 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_INDEX_MASK 0x1FFFFF 18 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_GROUP_SHIFT 21 19 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_GROUP_MASK 0x7F 20 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_FLAG_SHIFT 28 21 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_FLAG_MASK 0xF0000000 22 /* 23 * FIELD macros for large direct lookup entry 24 * The format of large direct lookup entry is: 25 * {4'b0001, _group_id[6:0], _index[20:0]} 26 */ 27 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_ID_PACK(_entry_id, _group_id, _index) \ 28 ((_entry_id) = (BCM_FIELD_ENTRY_LARGE_DIRECT_LOOKUP &_SHR_FIELD_LARGE_DIRECT_ENTRY_FLAG_MASK) | \ 29 (((_group_id) & _SHR_FIELD_LARGE_DIRECT_ENTRY_GROUP_MASK) << _SHR_FIELD_LARGE_DIRECT_ENTRY_GROUP_SHIFT) | \ 30 (((_index) & _SHR_FIELD_LARGE_DIRECT_ENTRY_INDEX_MASK) << _SHR_FIELD_LARGE_DIRECT_ENTRY_INDEX_SHIFT)) 31 32 #define _SHR_FIELD_LARGE_DIRECT_ENTRY_ID_UNPACK(_entry_id, _group_id, _index) \ 33 (_group_id) = (((_entry_id) >> _SHR_FIELD_LARGE_DIRECT_ENTRY_GROUP_SHIFT) & _SHR_FIELD_LARGE_DIRECT_ENTRY_GROUP_MASK); \ 34 (_index) = (((_entry_id) >> _SHR_FIELD_LARGE_DIRECT_ENTRY_INDEX_SHIFT) & _SHR_FIELD_LARGE_DIRECT_ENTRY_INDEX_MASK); 35 36 #endif /* !_SHR_FIELD_H */