Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/spe/arm_spe_dev.h
| Show First 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | struct arm_spe_softc { | ||||
| void *sc_irq_cookie; | void *sc_irq_cookie; | ||||
| struct cdev *sc_cdev; | struct cdev *sc_cdev; | ||||
| struct mtx sc_lock; | struct mtx sc_lock; | ||||
| struct task task; | struct task task; | ||||
| int64_t sc_pmsidr; | int64_t sc_pmsidr; | ||||
| int kqueue_fd; | int kqueue_fd; | ||||
| struct thread *hwt_td; | struct thread *hwt_td; | ||||
| struct arm_spe_info *spe_info; | struct arm_spe_info **spe_info; | ||||
| struct hwt_context *ctx; | struct hwt_context *ctx; | ||||
| STAILQ_HEAD(, arm_spe_queue) pending; | STAILQ_HEAD(, arm_spe_queue) pending; | ||||
| uint64_t npending; | uint64_t npending; | ||||
| uint64_t pmbidr; | uint64_t pmbidr; | ||||
| uint64_t pmsidr; | uint64_t pmsidr; | ||||
| uint16_t kva_align; | uint16_t kva_align; | ||||
| }; | }; | ||||
| struct arm_spe_buf_info { | struct arm_spe_buf_info { | ||||
| struct arm_spe_info *info; | struct arm_spe_info *info; | ||||
| uint64_t pmbptr; | uint64_t pmbptr; | ||||
| uint8_t buf_idx : 1; | uint8_t buf_idx : 1; | ||||
| bool buf_svc : 1; | bool buf_svc : 1; | ||||
| bool buf_wait : 1; | bool buf_wait : 1; | ||||
| bool partial_rec : 1; | bool partial_rec : 1; | ||||
| }; | }; | ||||
| struct arm_spe_info { | struct arm_spe_info { | ||||
| int ident; /* tid or cpu_id */ | int ident; /* tid or cpu_id */ | ||||
| struct mtx lock; | struct mtx lock; | ||||
| struct arm_spe_softc *sc; | struct arm_spe_softc *sc; | ||||
| struct task task[2]; | struct task task[2]; | ||||
| struct task flush_task; | |||||
| bool enabled : 1; | bool enabled : 1; | ||||
| bool stopped : 1; | |||||
| /* buffer is split in half as a ping-pong buffer */ | /* buffer is split in half as a ping-pong buffer */ | ||||
| vm_object_t bufobj; | vm_object_t bufobj; | ||||
| vm_offset_t kvaddr; | vm_offset_t kvaddr; | ||||
| size_t buf_size; | size_t buf_size; | ||||
| uint8_t buf_idx : 1; /* 0 = first half of buf, 1 = 2nd half */ | uint8_t buf_idx : 1; /* 0 = first half of buf, 1 = 2nd half */ | ||||
| struct arm_spe_buf_info buf_info[2]; | struct arm_spe_buf_info buf_info[2]; | ||||
| ▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines | |||||