Esempio n. 1
0
static int IMFS_fifo_close(
    rtems_libio_t *iop
)
{
    int err = 0;
    IMFS_jnode_t *jnode = iop->pathinfo.node_access;

    pipe_release(&JNODE2PIPE(jnode), iop);

    IMFS_FIFO_RETURN(err);
}
Esempio n. 2
0
static int IMFS_fifo_open(
    rtems_libio_t *iop,
    const char    *pathname,
    int            oflag,
    mode_t         mode
)
{
    IMFS_jnode_t *jnode = iop->pathinfo.node_access;

    int err = fifo_open(&JNODE2PIPE(jnode), iop);
    IMFS_FIFO_RETURN(err);
}
Esempio n. 3
0
int IMFS_fifo_open(
  epos_libio_t *iop,
  const char    *pathname,
  uint32_t       flag,
  uint32_t       mode
)
{
  IMFS_jnode_t *jnode = iop->file_info;

  int err = fifo_open(&JNODE2PIPE(jnode), iop);
  IMFS_FIFO_RETURN(err);
}
Esempio n. 4
0
static ssize_t IMFS_fifo_read(
    rtems_libio_t *iop,
    void          *buffer,
    size_t         count
)
{
    IMFS_jnode_t *jnode = iop->pathinfo.node_access;

    int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop);
    if (err > 0)
        IMFS_update_atime(jnode);

    IMFS_FIFO_RETURN(err);
}
Esempio n. 5
0
ssize_t IMFS_fifo_read(
  epos_libio_t *iop,
  void          *buffer,
  size_t         count
)
{
  IMFS_jnode_t *jnode = iop->file_info;

  int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop);
  if (err > 0)
    IMFS_update_atime(jnode);

  IMFS_FIFO_RETURN(err);
}
Esempio n. 6
0
static ssize_t IMFS_fifo_write(
    rtems_libio_t *iop,
    const void    *buffer,
    size_t         count
)
{
    IMFS_jnode_t *jnode = iop->pathinfo.node_access;

    int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop);
    if (err > 0) {
        IMFS_mtime_ctime_update(jnode);
    }

    IMFS_FIFO_RETURN(err);
}
Esempio n. 7
0
ssize_t IMFS_fifo_write(
  epos_libio_t *iop,
  const void    *buffer,
  size_t         count
)
{
  IMFS_jnode_t *jnode = iop->file_info;

  int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop);
  if (err > 0) {
    IMFS_mtime_ctime_update(jnode);
  }

  IMFS_FIFO_RETURN(err);
}
Esempio n. 8
0
int IMFS_fifo_close(
  epos_libio_t *iop
)
{
  IMFS_jnode_t *jnode = iop->file_info;

  int err = pipe_release(&JNODE2PIPE(jnode), iop);

  if (! err) {
    iop->flags &= ~LIBIO_FLAGS_OPEN;
    /* Free jnode if file is already unlinked and no one opens it */
    if (! epos_libio_is_file_open(jnode) && jnode->st_nlink < 1)
      free(jnode);
  }

  IMFS_FIFO_RETURN(err);
}