/*
** vbcc-Amiga-PowerPC version of tmpnam.c
**
** v0.2 01.05.98 phx
**      Uses task's address in name
** v0.1 04.10.97 phx
*/

#include <stdio.h>
#include <exec/types.h>
#include <powerup/gcclib/powerup_protos.h>

extern ULONG SysBase;


char *tmpnam(char s[L_tmpnam])
{
  static char lastname[L_tmpnam];
  static int lastnum=0;
  unsigned long tsk;
  struct Caos MyCaos;

  MyCaos.a1 = 0;
  MyCaos.M68kCacheMode = IF_CACHEFLUSHALL;
  MyCaos.PPCCacheMode = IF_CACHEFLUSHALL;
  MyCaos.caos_Un.Offset = -294;  /* FindTask(NULL) */
  MyCaos.a6 = SysBase;
  tsk = (unsigned long)PPCCallOS(&MyCaos);
  if (!s)
    s = lastname;
  sprintf (s,"T:t%08lx_%d",tsk,lastnum++);
  return (s);
}
