1 /* close for MMIXware.
2 
3    Copyright (C) 2001 Hans-Peter Nilsson
4 
5    Permission to use, copy, modify, and distribute this software is
6    freely granted, provided that the above copyright notice, this notice
7    and the following disclaimer are preserved with no changes.
8 
9    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
10    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
11    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12    PURPOSE.  */
13 
14 #include <_ansi.h>
15 #include <sys/types.h>
16 #include <sys/stat.h>
17 #include "sys/syscall.h"
18 #include <errno.h>
19 
20 int
_close(int file)21 _close (int file)
22 {
23   if ((unsigned int) file >= N_MMIX_FILEHANDLES
24       || _MMIX_allocated_filehandle[file] == 0)
25     {
26       errno = EBADF;
27       return -1;
28     }
29 
30   _MMIX_allocated_filehandle[file] = 0;
31 
32   if (TRAP1f (SYS_Fclose, file) != 0)
33     {
34       errno = EIO;
35       return -1;
36     }
37   return 0;
38 }
39