/*
** vbcc-PowerOpen/WarpOS version of tmpnam.c
**
** v0.2 01.05.98 phx
**      Uses task's address in name
** v0.1 06.03.98 phx
*/

#include <stdio.h>
#include <exec/types.h>
#include <powerpc/powerpc.h>
#include <clib/powerpc_protos.h>

extern ULONG SysBase;


char *tmpnam(char s[L_tmpnam])
{
  static char lastname[L_tmpnam];
  static int lastnum=0;
  struct PPCArgs pa;

  pa.PP_Code = (APTR)SysBase;
  pa.PP_Offset = -294;  /* _FindTask */
  pa.PP_Flags = pa.PP_StackSize = 0;
  pa.PP_Stack = NULL;
  pa.PP_Regs[PPREG_A1] = 0;
  pa.PP_Regs[PPREG_A6] = SysBase;
  Run68K(&pa);
  if (!s)
    s = lastname;
  sprintf (s,"T:t%08lx_%d",pa.PP_Regs[PPREG_D0],lastnum++);
  return (s);
}
