[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