forked from Imagelibrary/rtems
Corrected mistakes in the IMFS file handlers table and added the missing
routine imfs_fcntl.c
This commit is contained in:
97
c/src/exec/libcsupport/src/fs_null_handlers.c
Normal file
97
c/src/exec/libcsupport/src/fs_null_handlers.c
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* Operations Tables for the IMFS
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of operations handlers for operations on memfile entities.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r memfile_handlers = {
|
||||||
|
memfile_open,
|
||||||
|
memfile_close,
|
||||||
|
memfile_read,
|
||||||
|
memfile_write,
|
||||||
|
memfile_ioctl,
|
||||||
|
memfile_lseek,
|
||||||
|
IMFS_stat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
memfile_ftruncate,
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
IMFS_fdatasync,
|
||||||
|
IMFS_fcntl
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of operations handlers for operations on directories.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r dir_handlers = {
|
||||||
|
imfs_dir_open,
|
||||||
|
imfs_dir_close,
|
||||||
|
imfs_dir_read,
|
||||||
|
NULL, /* write */
|
||||||
|
NULL, /* ioctl */
|
||||||
|
imfs_dir_lseek,
|
||||||
|
imfs_dir_fstat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
IMFS_fdatasync,
|
||||||
|
IMFS_fcntl
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handler table for IMFS device nodes
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r device_handlers = {
|
||||||
|
device_open,
|
||||||
|
device_close,
|
||||||
|
device_read,
|
||||||
|
device_write,
|
||||||
|
device_ioctl,
|
||||||
|
device_lseek,
|
||||||
|
IMFS_stat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
NULL, /* fdatasync */
|
||||||
|
NULL /* fcntl */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of null operations handlers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r null_handlers = {
|
||||||
|
NULL, /* open */
|
||||||
|
NULL, /* close */
|
||||||
|
NULL, /* read */
|
||||||
|
NULL, /* write */
|
||||||
|
NULL, /* ioctl */
|
||||||
|
NULL, /* lseek */
|
||||||
|
NULL, /* fstat */
|
||||||
|
NULL, /* fchmod */
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
NULL, /* fdatasync */
|
||||||
|
NULL /* fcntl */
|
||||||
|
};
|
||||||
@@ -447,6 +447,11 @@ int IMFS_fdatasync(
|
|||||||
rtems_libio_t *iop
|
rtems_libio_t *iop
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
25
c/src/exec/libfs/src/imfs/imfs_fcntl.c
Normal file
25
c/src/exec/libfs/src/imfs/imfs_fcntl.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* IMFS_fcntl
|
||||||
|
*
|
||||||
|
* The following routine does a fcntl on an IMFS node.
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -20,13 +20,14 @@ ERROR_C_PIECES=error
|
|||||||
|
|
||||||
ASSOCIATION_C_PIECES=assoc assocnamebad
|
ASSOCIATION_C_PIECES=assoc assocnamebad
|
||||||
|
|
||||||
BASE_FS_C_PIECES = base_fs mount unmount ioman libio libio_sockets eval
|
BASE_FS_C_PIECES = base_fs mount unmount ioman libio libio_sockets eval \
|
||||||
|
fs_null_handlers
|
||||||
|
|
||||||
IMFS_C_PIECES = imfs_chown imfs_creat imfs_directory imfs_eval imfs_free \
|
IMFS_C_PIECES = imfs_chown imfs_creat imfs_directory imfs_eval imfs_free \
|
||||||
imfs_gtkn imfs_init imfs_link imfs_mknod imfs_mount imfs_fchmod \
|
imfs_gtkn imfs_init imfs_link imfs_mknod imfs_mount imfs_fchmod \
|
||||||
imfs_rmnod imfs_unlink imfs_unmount imfs_utime imfs_ntype imfs_stat \
|
imfs_rmnod imfs_unlink imfs_unmount imfs_utime imfs_ntype imfs_stat \
|
||||||
imfs_getchild memfile deviceio imfs_handlers imfs_debug imfs_symlink \
|
imfs_getchild memfile deviceio imfs_handlers imfs_debug imfs_symlink \
|
||||||
imfs_readlink imfs_fdatasync
|
imfs_readlink imfs_fdatasync imfs_fcntl
|
||||||
|
|
||||||
TERMIOS_C_PIECES = cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcgetattr \
|
TERMIOS_C_PIECES = cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcgetattr \
|
||||||
tcsetattr tcdrain tcflow tcflush termios \
|
tcsetattr tcdrain tcflow tcflush termios \
|
||||||
|
|||||||
97
c/src/lib/libc/fs_null_handlers.c
Normal file
97
c/src/lib/libc/fs_null_handlers.c
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* Operations Tables for the IMFS
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of operations handlers for operations on memfile entities.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r memfile_handlers = {
|
||||||
|
memfile_open,
|
||||||
|
memfile_close,
|
||||||
|
memfile_read,
|
||||||
|
memfile_write,
|
||||||
|
memfile_ioctl,
|
||||||
|
memfile_lseek,
|
||||||
|
IMFS_stat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
memfile_ftruncate,
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
IMFS_fdatasync,
|
||||||
|
IMFS_fcntl
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of operations handlers for operations on directories.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r dir_handlers = {
|
||||||
|
imfs_dir_open,
|
||||||
|
imfs_dir_close,
|
||||||
|
imfs_dir_read,
|
||||||
|
NULL, /* write */
|
||||||
|
NULL, /* ioctl */
|
||||||
|
imfs_dir_lseek,
|
||||||
|
imfs_dir_fstat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
IMFS_fdatasync,
|
||||||
|
IMFS_fcntl
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handler table for IMFS device nodes
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r device_handlers = {
|
||||||
|
device_open,
|
||||||
|
device_close,
|
||||||
|
device_read,
|
||||||
|
device_write,
|
||||||
|
device_ioctl,
|
||||||
|
device_lseek,
|
||||||
|
IMFS_stat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
NULL, /* fdatasync */
|
||||||
|
NULL /* fcntl */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of null operations handlers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r null_handlers = {
|
||||||
|
NULL, /* open */
|
||||||
|
NULL, /* close */
|
||||||
|
NULL, /* read */
|
||||||
|
NULL, /* write */
|
||||||
|
NULL, /* ioctl */
|
||||||
|
NULL, /* lseek */
|
||||||
|
NULL, /* fstat */
|
||||||
|
NULL, /* fchmod */
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
NULL, /* fdatasync */
|
||||||
|
NULL /* fcntl */
|
||||||
|
};
|
||||||
@@ -447,6 +447,11 @@ int IMFS_fdatasync(
|
|||||||
rtems_libio_t *iop
|
rtems_libio_t *iop
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
25
c/src/lib/libc/imfs_fcntl.c
Normal file
25
c/src/lib/libc/imfs_fcntl.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* IMFS_fcntl
|
||||||
|
*
|
||||||
|
* The following routine does a fcntl on an IMFS node.
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -30,9 +30,10 @@ rtems_filesystem_file_handlers_r memfile_handlers = {
|
|||||||
IMFS_stat,
|
IMFS_stat,
|
||||||
IMFS_fchmod,
|
IMFS_fchmod,
|
||||||
memfile_ftruncate,
|
memfile_ftruncate,
|
||||||
NULL,
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
IMFS_fdatasync,
|
IMFS_fdatasync,
|
||||||
IMFS_fdatasync
|
IMFS_fcntl
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -43,14 +44,16 @@ rtems_filesystem_file_handlers_r dir_handlers = {
|
|||||||
imfs_dir_open,
|
imfs_dir_open,
|
||||||
imfs_dir_close,
|
imfs_dir_close,
|
||||||
imfs_dir_read,
|
imfs_dir_read,
|
||||||
NULL,
|
NULL, /* write */
|
||||||
NULL,
|
NULL, /* ioctl */
|
||||||
imfs_dir_lseek,
|
imfs_dir_lseek,
|
||||||
imfs_dir_fstat,
|
imfs_dir_fstat,
|
||||||
IMFS_fchmod,
|
IMFS_fchmod,
|
||||||
NULL,
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
IMFS_fdatasync,
|
IMFS_fdatasync,
|
||||||
IMFS_fdatasync
|
IMFS_fcntl
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -66,27 +69,9 @@ rtems_filesystem_file_handlers_r device_handlers = {
|
|||||||
device_lseek,
|
device_lseek,
|
||||||
IMFS_stat,
|
IMFS_stat,
|
||||||
IMFS_fchmod,
|
IMFS_fchmod,
|
||||||
NULL,
|
NULL, /* ftruncate */
|
||||||
NULL,
|
NULL, /* fpathconf */
|
||||||
NULL,
|
NULL, /* fsync */
|
||||||
NULL
|
NULL, /* fdatasync */
|
||||||
};
|
NULL /* fcntl */
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of null operations handlers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r null_handlers = {
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -447,6 +447,11 @@ int IMFS_fdatasync(
|
|||||||
rtems_libio_t *iop
|
rtems_libio_t *iop
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
25
c/src/libfs/src/imfs/imfs_fcntl.c
Normal file
25
c/src/libfs/src/imfs/imfs_fcntl.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* IMFS_fcntl
|
||||||
|
*
|
||||||
|
* The following routine does a fcntl on an IMFS node.
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
97
cpukit/libcsupport/src/fs_null_handlers.c
Normal file
97
cpukit/libcsupport/src/fs_null_handlers.c
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* Operations Tables for the IMFS
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of operations handlers for operations on memfile entities.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r memfile_handlers = {
|
||||||
|
memfile_open,
|
||||||
|
memfile_close,
|
||||||
|
memfile_read,
|
||||||
|
memfile_write,
|
||||||
|
memfile_ioctl,
|
||||||
|
memfile_lseek,
|
||||||
|
IMFS_stat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
memfile_ftruncate,
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
IMFS_fdatasync,
|
||||||
|
IMFS_fcntl
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of operations handlers for operations on directories.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r dir_handlers = {
|
||||||
|
imfs_dir_open,
|
||||||
|
imfs_dir_close,
|
||||||
|
imfs_dir_read,
|
||||||
|
NULL, /* write */
|
||||||
|
NULL, /* ioctl */
|
||||||
|
imfs_dir_lseek,
|
||||||
|
imfs_dir_fstat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
IMFS_fdatasync,
|
||||||
|
IMFS_fcntl
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handler table for IMFS device nodes
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r device_handlers = {
|
||||||
|
device_open,
|
||||||
|
device_close,
|
||||||
|
device_read,
|
||||||
|
device_write,
|
||||||
|
device_ioctl,
|
||||||
|
device_lseek,
|
||||||
|
IMFS_stat,
|
||||||
|
IMFS_fchmod,
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
NULL, /* fdatasync */
|
||||||
|
NULL /* fcntl */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set of null operations handlers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_filesystem_file_handlers_r null_handlers = {
|
||||||
|
NULL, /* open */
|
||||||
|
NULL, /* close */
|
||||||
|
NULL, /* read */
|
||||||
|
NULL, /* write */
|
||||||
|
NULL, /* ioctl */
|
||||||
|
NULL, /* lseek */
|
||||||
|
NULL, /* fstat */
|
||||||
|
NULL, /* fchmod */
|
||||||
|
NULL, /* ftruncate */
|
||||||
|
NULL, /* fpathconf */
|
||||||
|
NULL, /* fsync */
|
||||||
|
NULL, /* fdatasync */
|
||||||
|
NULL /* fcntl */
|
||||||
|
};
|
||||||
@@ -447,6 +447,11 @@ int IMFS_fdatasync(
|
|||||||
rtems_libio_t *iop
|
rtems_libio_t *iop
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
25
cpukit/libfs/src/imfs/imfs_fcntl.c
Normal file
25
cpukit/libfs/src/imfs/imfs_fcntl.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* IMFS_fcntl
|
||||||
|
*
|
||||||
|
* The following routine does a fcntl on an IMFS node.
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1998.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
* Copyright assigned to U.S. Government, 1994.
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "imfs.h"
|
||||||
|
|
||||||
|
int IMFS_fcntl(
|
||||||
|
int cmd,
|
||||||
|
rtems_libio_t *iop
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user