OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [stable_0_1_0/] [or1ksim/] [peripheral/] [fields.h] - Diff between revs 233 and 253

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 233 Rev 253
Line 42... Line 42...
 
 
#define FLAG_SHIFT(reg_name,flag_name)  (reg_name##_##flag_name##_OFFSET)
#define FLAG_SHIFT(reg_name,flag_name)  (reg_name##_##flag_name##_OFFSET)
#define FLAG_MASK(reg_name,flag_name)   (1LU << reg_name##_##flag_name##_OFFSET)
#define FLAG_MASK(reg_name,flag_name)   (1LU << reg_name##_##flag_name##_OFFSET)
 
 
#define TEST_FLAG(reg_value,reg_name,flag_name) (((reg_value ) >> reg_name##_##flag_name##_OFFSET) & 1LU)
#define TEST_FLAG(reg_value,reg_name,flag_name) (((reg_value ) >> reg_name##_##flag_name##_OFFSET) & 1LU)
#define SET_FLAG(reg_value,reg_name,flag_name) { reg_value |= 1LU << reg_name##_##flag_name##_OFFSET; }
#define SET_FLAG(reg_value,reg_name,flag_name) { (reg_value) |= 1LU << reg_name##_##flag_name##_OFFSET; }
#define CLEAR_FLAG(reg_value,reg_name,flag_name) { reg_value &= ~(1LU << reg_name##_##flag_name##_OFFSET); }
#define CLEAR_FLAG(reg_value,reg_name,flag_name) { (reg_value) &= ~(1LU << reg_name##_##flag_name##_OFFSET); }
#define ASSIGN_FLAG(reg_value,reg_name,flag_name,flag_value) { \
#define ASSIGN_FLAG(reg_value,reg_name,flag_name,flag_value) { \
    reg_value = flag_value ? ((reg_value) | (1LU << reg_name##_##flag_name##_OFFSET)) : ((reg_value) & ~(1LU << reg_name##_##flag_name##_OFFSET)); }
    (reg_value) = flag_value ? ((reg_value) | (1LU << reg_name##_##flag_name##_OFFSET)) : ((reg_value) & ~(1LU << reg_name##_##flag_name##_OFFSET)); }
 
 
#define FIELD_SHIFT(reg_name,field_name) (reg_name##_##field_name##_OFFSET)
#define FIELD_SHIFT(reg_name,field_name) (reg_name##_##field_name##_OFFSET)
#define FIELD_MASK(reg_name,field_name) ((~(~0LU << reg_name##_##field_name##_WIDTH)) << reg_name##_##field_name##_OFFSET)
#define FIELD_MASK(reg_name,field_name) ((~(~0LU << reg_name##_##field_name##_WIDTH)) << reg_name##_##field_name##_OFFSET)
 
 
#define GET_FIELD(reg_value,reg_name,field_name) (((reg_value) >> reg_name##_##field_name##_OFFSET) & (~(~0LU << reg_name##_##field_name##_WIDTH)))
#define GET_FIELD(reg_value,reg_name,field_name) (((reg_value) >> reg_name##_##field_name##_OFFSET) & (~(~0LU << reg_name##_##field_name##_WIDTH)))
#define SET_FIELD(reg_value,reg_name,field_name,field_value) { \
#define SET_FIELD(reg_value,reg_name,field_name,field_value) { \
    reg_value &= ~((~(~0LU << reg_name##_##field_name##_WIDTH)) << reg_name##_##field_name##_OFFSET); \
    (reg_value) &= ~((~(~0LU << reg_name##_##field_name##_WIDTH)) << reg_name##_##field_name##_OFFSET); \
    reg_value |= (field_value) << reg_name##_##field_name##_OFFSET; }
    (reg_value) |= (field_value) << reg_name##_##field_name##_OFFSET; }
 
 
 
 
 
 
#endif /* __FIELDS_H */
#endif /* __FIELDS_H */
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.