The LY instruction is picking up the file descriptor (think DD name) so the IO accesses the correct file.
The memcpy statement doesn't care what file the data came from. You are copying whatever is currently in the buffer to reclen and it is obvious that the buffer is at the start of your structure/class. > -----Original Message----- > From: IBM Mainframe Discussion List <[email protected]> On > Behalf Of Joseph Reichman > Sent: Tuesday, April 28, 2020 6:44 PM > To: [email protected] > Subject: Strange code Generation from XL\C Metal C > > I am using a pointer to buffer to read in data the data name is > thread_ptr->buffer buffer is define char[2100] > > > > Here is code when I call the read notice it bumps register 4 21000 bytes to > get the address of buffer > > _read(thread_ptr->fh, &thread_ptr->buffer[0], reclen); > > L 2,@113thread_ptr > > LY 4,21000(0,2) (*)threadstor.threadstor.fh > > LLH 14,@123reclen > > "IBMUSER.DBGR.SERVER(OPENFILE)" Page 68 > > R14 > > rce Statement HLASM R6.0 2020/04/28 21.34 > > L 0,#WSA_1 > > L 15,=V(@READ) > > LA 1,224(,13) #MX_TEMP1 > > ST 4,224(,13) #MX_TEMP1 > > ST 2,228(,13) #MX_TEMP1 > > ST 14,232(,13) #MX_TEMP1 > > MVC 8(4,13),#NAB_1+4 > > SAC 0 > > BASR 14,15 > > SAC 512 > > > > Here is code where I am trying to copy pos 10 of buffer for 2 bytes notice > there is no LY for 21000 to get to buffer ? > > > > memcpy(&reclen, &thread_ptr->buffer[10],2); > > L 14,@113thread_ptr > > CPYA 2,14 > > MVC @123reclen,10(14) > > > > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
