# zcc does not know the nuclei register "shartid"

**URL:** <https://1nfinite.ai/t/zcc-does-not-know-the-nuclei-register-shartid/268>\
**Category:** General\
**Created:** [December 28, 2025, 1:36am UTC](https://1nfinite.ai/t/zcc-does-not-know-the-nuclei-register-shartid/268 "2025-12-28T01:36:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jianwu](https://1nfinite.ai/letter_avatar_proxy/v4/letter/j/7cd45c/32.png) [@jianwu](https://1nfinite.ai/u/jianwu)\
**Post date:** [December 28, 2025, 1:36am UTC](https://1nfinite.ai/t/zcc-does-not-know-the-nuclei-register-shartid/268/1 "2025-12-28T01:36:10Z")

</div>

ZCC reports error for nuclei register “shartid”. But ZCC can work for nuclei register ‘mhartid’.

 ![image](https://1nfinite.ai/uploads/default/original/1X/ff167a0866b38ce614e5a83fc2f0bf8eb9f4d41c.png)

---

<div class="post-metadata">

**Author:** ![ivan](https://1nfinite.ai/user_avatar/1nfinite.ai/ivan/32/5_2.png) [@ivan](https://1nfinite.ai/u/ivan)\
**Post date:** [January 4, 2026, 2:46am UTC](https://1nfinite.ai/t/zcc-does-not-know-the-nuclei-register-shartid/268/2 "2026-01-04T02:46:02Z")

</div>

The `mhartid` is a CSR defined by the RISC-V standard, whereas `shartid` is a custom CSR introduced by Nuclei. You can handle it the same way as in Nuclei-SDK:

```auto
#define CSR_SHARTID 0xDC0

__STATIC_FORCEINLINE unsigned long__ get_hart_index_s(void)
{
    unsigned long id;
#ifdef __HARTID_OFFSET
    id = __RV_CSR_READ(CSR_SHARTID) -__HARTID_OFFSET;
#else
    id = __RV_CSR_READ(CSR_SHARTID);
#endif
    return id;
}

```
