91 void *
src,
size_t n ) {
105 unsigned int src_off,
size_t n ) {
116 #define put_real( var, dest_seg, dest_off ) \ 117 copy_to_real ( (dest_seg), (dest_off), &(var), sizeof (var) ) 126 #define get_real( var, src_seg, src_off ) \ 127 copy_from_real ( &(var), (src_seg), (src_off), sizeof (var) ) uint16_t segment
Code segment.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
static __always_inline void * real_to_virt(unsigned int segment, unsigned int offset)
Convert segment:offset address to virtual address.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
Access to external ("user") memory.
static __always_inline void copy_to_real(unsigned int dest_seg, unsigned int dest_off, void *src, size_t n)
Copy data to base memory.
#define __always_inline
Declare a function to be always inline.
if(len >=6 *4) __asm__ __volatile__("movsl" if(len >=5 *4) __asm__ __volatile__("movsl" if(len >=4 *4) __asm__ __volatile__("movsl" if(len >=3 *4) __asm__ __volatile__("movsl" if(len >=2 *4) __asm__ __volatile__("movsl" if(len >=1 *4) __asm__ __volatile__("movsl" if((len % 4) >=2) __asm__ __volatile__("movsw" if((len % 2) >=1) __asm__ __volatile__("movsb" return dest
uint16_t offset
Offset to command line.
static __always_inline void copy_from_real(void *dest, unsigned int src_seg, unsigned int src_off, size_t n)
Copy data to base memory.