[Info-vax] Device Driver Kernel-User Buffer Mapping
David Jones
osuvman50 at gmail.com
Wed May 12 12:07:40 EDT 2021
On Wednesday, May 12, 2021 at 11:26:32 AM UTC-4, lui... at gmail.com wrote:
> Okay, cool. I'm close now, but I'm running into an issue passing the return values to sys$crmpsc_pfn64.
>
> VOID_PQ mapped_addr_base;
> uint64 mapped_addr_length;
> r0_status = sys$crmpsc_pfn_64(
> VA$C_P0,
> buf/8192,
> (1048576*16) / 8192,
> PSL$C_USER,
> SEC$M_EXPREG|SEC$M_WRT,
> &mapped_addr_base,
> &mapped_addr_length
> );
>
> This fails with an SS$_ACCVIO, meaning VMS can't write to mapped_addr_base or mapped_addr_length according to the system service docs.
The docs also say the first argument is passed by reference, so it should be &VA$C_P0. I've played with
sys$crmpsc_file_64(), and the first argument for it is the same.
More information about the Info-vax
mailing list