Beispiel #1
0
int read_boot( Boot *boot )
{
	int i;
	char *tbuff = Malloc(Sector_size);
#ifdef debug
	IOdebug("msdosfs : read_boot");
#endif
	if(tbuff == NULL)
		{
#ifdef debugE
	IOdebug( "msdosfs ERROR : read_boot can't malloc");
#endif
		return -1;
		}

  if( (i = direct_read(0,Sector_size,tbuff)) == Sector_size )
	{
        memcpy((char *)boot, tbuff, sizeof(Boot));
	Free(tbuff);
  	return 0;
	}

#ifdef debugE
     	IOdebug("msdosfs ERROR : read_boot failed (expected %d, got %d)", sizeof(Boot), i);
#endif
    Free(tbuff);
    return -1;
}
Beispiel #2
0
static PyObject* directRead(PyObject* self, PyObject* arg)
{
	PyObject* transferTuple;
	unsigned int offset, size, i ;
	if(!PyArg_ParseTuple(arg, "ll", &offset, &size))
		return NULL;					
	uint8_t rx[size];
	direct_read(offset, rx, size);
	transferTuple = PyTuple_New(size);
	for(i=0;i<size;i++)
		PyTuple_SetItem(transferTuple, i, Py_BuildValue("i",rx[i]));
	return transferTuple;
}
Beispiel #3
0
int read_sector(int sector)
{
	long min = Sector_buf[0].LastUse;
	int numbuf, i;

		/* get a free sector buf */
	
	for(numbuf=0, i=0; i<MAX_BUF; i++ )
	  if( min > Sector_buf[i].LastUse )
	  {
		min = Sector_buf[i].LastUse;
		numbuf = i;
	  }

  	Sector_buf[numbuf].Sector = sector;

		/* read sector */
        if(!direct_read(sector*Sector_size,Sector_size,Sector_buf[numbuf].Buf))
		return -1;

	time((time_t *)&Sector_buf[numbuf].LastUse);

	return(numbuf);
}