| .. | .. |
|---|
| 37 | 37 | #define UATTR_MSPEC 2 |
|---|
| 38 | 38 | #define UATTR_UNCAC 3 |
|---|
| 39 | 39 | |
|---|
| 40 | +#ifdef __ASSEMBLY__ |
|---|
| 41 | +/* |
|---|
| 42 | + * Returns the local nasid into res. |
|---|
| 43 | + */ |
|---|
| 44 | + .macro GET_NASID_ASM res |
|---|
| 45 | + dli \res, LOCAL_HUB_ADDR(NI_STATUS_REV_ID) |
|---|
| 46 | + ld \res, (\res) |
|---|
| 47 | + and \res, NSRI_NODEID_MASK |
|---|
| 48 | + dsrl \res, NSRI_NODEID_SHFT |
|---|
| 49 | + .endm |
|---|
| 50 | +#else |
|---|
| 51 | + |
|---|
| 52 | +/* |
|---|
| 53 | + * get_nasid() returns the physical node id number of the caller. |
|---|
| 54 | + */ |
|---|
| 55 | +static inline nasid_t get_nasid(void) |
|---|
| 56 | +{ |
|---|
| 57 | + return (nasid_t)((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_NODEID_MASK) |
|---|
| 58 | + >> NSRI_NODEID_SHFT); |
|---|
| 59 | +} |
|---|
| 60 | +#endif |
|---|
| 61 | + |
|---|
| 40 | 62 | #endif /* _ASM_SN_SN0_HUB_H */ |
|---|