SUPLibTracerA.asm revision d11bc0a79d876b713edcc0bc4f2756e6edbf133c
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; VirtualBox Support Library - Tracer Interface, Assembly bits.
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; Copyright (C) 2012 Oracle Corporation
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; available from http://www.virtualbox.org. This file is free software;
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; you can redistribute it and/or modify it under the terms of the GNU
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; General Public License (GPL) as published by the Free Software
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; The contents of this file may alternatively be used under the terms
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; of the Common Development and Distribution License Version 1.0
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; VirtualBox OSE distribution, in which case the provisions of the
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; CDDL are applicable instead of those of the GPL.
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; You may elect to license modified versions of this file under the
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; terms and conditions of either the GPL or the CDDL or both.
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync;*******************************************************************************
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync;* Header Files *
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync;*******************************************************************************
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync; This should go into asmdefs.mac
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync %ifdef ASM_FORMAT_ELF
50f0e2e83362e100d306a411980d555d46aa00a8vboxsync %define RT_ASM_USE_GOT
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync %define RT_ASM_USE_PLT
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync;*******************************************************************************
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync;* Structures and Typedefs *
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync;*******************************************************************************
b0dfb334954c0552bb583967a3077ec88fd00471vboxsyncstruc SUPREQHDR
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .u32Cookie resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .u32SessionCookie resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .cbIn resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .cbOut resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .fFlags resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsyncstruc SUPDRVTRACERUSRCTX32
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .idProbe resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .cBits resb 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .abReserved resb 3
b0dfb334954c0552bb583967a3077ec88fd00471vboxsyncstruc SUPDRVTRACERUSRCTX64
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .idProbe resd 1
b0dfb334954c0552bb583967a3077ec88fd00471vboxsync .cBits resb 1
50f0e2e83362e100d306a411980d555d46aa00a8vboxsync .abReserved resb 3
.u.Amd64.r13 resq 1
.u.Amd64.r14 resq 1
.u.Amd64.r15 resq 1
; function in SUPLib.cpp to do the rest.
call NAME(suplibTracerFireProbe) wrt ..plt
mov [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.uVtgProbeLoc], xCX ; keep, used below.
call NAME(suplibTracerFireProbe) wrt ..plt