// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build windows

// func servicemain(argc uint32, argv **uint16)
TEXT ·servicemain(SB),7,$0
	MOVL	CX, ·sArgc(SB)
	MOVQ	DX, ·sArgv(SB)

	SUBQ	$32, SP		// stack for the first 4 syscall params

	MOVQ	·sName(SB), CX
	MOVQ	$·servicectlhandler(SB), DX
	// BUG(pastarmovj): Figure out a way to pass in context in R8.
	// Set context to 123456 to test issue #25660.
	MOVQ	$123456, R8
	MOVQ	·cRegisterServiceCtrlHandlerExW(SB), AX
	CALL	AX
	CMPQ	AX, $0
	JE	exit
	MOVQ	AX, ·ssHandle(SB)

	MOVQ	·goWaitsH(SB), CX
	MOVQ	·cSetEvent(SB), AX
	CALL	AX

	MOVQ	·cWaitsH(SB), CX
	MOVQ	$4294967295, DX
	MOVQ	·cWaitForSingleObject(SB), AX
	CALL	AX

exit:
	ADDQ	$32, SP
	RET

// I do not know why, but this seems to be the only way to call
// ctlHandlerProc on Windows 7.

// func ·servicectlhandler(ctl uint32, evtype uint32, evdata uintptr, context uintptr) uintptr {
TEXT ·servicectlhandler(SB),7,$0
	MOVQ	·ctlHandlerExProc(SB), AX
	JMP	AX
