コード例 #1
0
ファイル: Fuse_6_FileHdl.c プロジェクト: andrinux/PCFS
static int xmp_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
		       off_t offset, struct fuse_file_info *fi)
{
	struct xmp_dirp *d = get_dirp(fi);

	(void) path;
	if (offset != d->offset) {
		seekdir(d->dp, offset);
		d->entry = NULL;
		d->offset = offset;
	}
	while (1) {
		struct stat st;
		off_t nextoff;

		if (!d->entry) {
			d->entry = readdir(d->dp);
			if (!d->entry)
				break;
		}

		memset(&st, 0, sizeof(st));
		st.st_ino = d->entry->d_ino;
		st.st_mode = d->entry->d_type << 12;
		nextoff = telldir(d->dp);
		if (filler(buf, d->entry->d_name, &st, nextoff))
			break;

		d->entry = NULL;
		d->offset = nextoff;
	}

	return 0;
}
コード例 #2
0
ファイル: Fuse_6_FileHdl.c プロジェクト: andrinux/PCFS
static int xmp_releasedir(const char *path, struct fuse_file_info *fi)
{
	struct xmp_dirp *d = get_dirp(fi);
	(void) path;
	closedir(d->dp);
	free(d);
	return 0;
}
コード例 #3
0
ファイル: rtc.c プロジェクト: 3sOx/asuswrt-merlin
static unsigned int ds1302_readbyte(unsigned int addr)
{
	unsigned int	val;
	unsigned long	flags;

	local_irq_save(flags);
	set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
	set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));

	set_dp(get_dp() | RTC_RESET);
	ds1302_sendbits(((addr & 0x3f) << 1) | RTC_CMD_READ);
	set_dirp(get_dirp() & ~RTC_IODATA);
	val = ds1302_recvbits();
	set_dp(get_dp() & ~RTC_RESET);
	local_irq_restore(flags);

	return(val);
}
コード例 #4
0
ファイル: rtc.c プロジェクト: 3sOx/asuswrt-merlin
static void ds1302_reset(void)
{
	unsigned long	flags;
	/* Hardware dependent reset/init */
	local_irq_save(flags);
	set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
	set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));
	local_irq_restore(flags);
}
コード例 #5
0
static void ds1302_reset(void)
{
    unsigned long	flags;
    /* Hardware dependant reset/init */
    save_flags(flags);
    cli();
    set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
    set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));
    restore_flags(flags);
}
コード例 #6
0
ファイル: openrfs.c プロジェクト: frincon/openrfs
static int
xmp_releasedir (const char *path, struct fuse_file_info *fi)
{
  struct xmp_dirp *d = get_dirp (fi);
  (void) path;
  openrfs_fuse_drop_privs ();
  closedir (d->dp);
  openrfs_fuse_restore_privs ();
  free (d);
  return 0;
}
コード例 #7
0
ファイル: rtc.c プロジェクト: 3sOx/asuswrt-merlin
static void ds1302_writebyte(unsigned int addr, unsigned int val)
{
	unsigned long	flags;

	local_irq_save(flags);
	set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
	set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));
	set_dp(get_dp() | RTC_RESET);
	ds1302_sendbits(((addr & 0x3f) << 1) | RTC_CMD_WRITE);
	ds1302_sendbits(val);
	set_dp(get_dp() & ~RTC_RESET);
	local_irq_restore(flags);
}
コード例 #8
0
static unsigned int ds1302_readbyte(unsigned int addr)
{
    unsigned int	val;
    unsigned long	flags;

#if 0
    printk("SnapGear RTC: ds1302_readbyte(addr=%x)\n", addr);
#endif

    save_flags(flags);
    cli();
    set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
    set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));

    set_dp(get_dp() | RTC_RESET);
    ds1302_sendbits(((addr & 0x3f) << 1) | RTC_CMD_READ);
    set_dirp(get_dirp() & ~RTC_IODATA);
    val = ds1302_recvbits();
    set_dp(get_dp() & ~RTC_RESET);
    restore_flags(flags);

    return(val);
}
コード例 #9
0
static void ds1302_writebyte(unsigned int addr, unsigned int val)
{
    unsigned long	flags;

#if 0
    printk("SnapGear RTC: ds1302_writebyte(addr=%x)\n", addr);
#endif

    save_flags(flags);
    cli();
    set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK);
    set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK));
    set_dp(get_dp() | RTC_RESET);
    ds1302_sendbits(((addr & 0x3f) << 1) | RTC_CMD_WRITE);
    ds1302_sendbits(val);
    set_dp(get_dp() & ~RTC_RESET);
    restore_flags(flags);
}
コード例 #10
0
ファイル: main.c プロジェクト: s4yr/FUSE_fs
static int pr_readdir(const char* path, void* buf, fuse_fill_dir_t filler,off_t offset,struct fuse_file_info* fi)
{
	int res = 0;
	struct stat st;
	struct dirent* de;
	DIR* dp = get_dirp(fi);
	(void)path;
	seekdir(dp,offset);
	while((de = readdir(dp)) != NULL)
	{
		struct stat st;
		memset(&st,0,sizeof(st));
		st.st_ino = de->d_ino;
		st.st_mode = de->d_type << 12;
		if(filler(buf,de->d_name,&st,telldir(dp)))
				break;
	}
	return res;
}