package OEFSDevice; sub new { my $class = shift; my (%params) = @_; my $ref = { 'Device' => $params{'Device'}, }; print("Device: |" . $params{'Device'} . "|\n"); sysopen($ref->{'HANDLE'},$params{'Device'}, O_RDWR | O_SYNC) || return 0; return bless($ref, $class); } sub GetBlocks($$$) { my $self = shift; my ($Offset, $Count, $Buffer) = @_; sysseek($self->{'HANDLE'},$Offset * 512,0) || return 0; sysread($self->{'HANDLE'},$$Buffer,$Count * 512) || return 0; return 1; } sub SetBlocks($$$) { my $self = shift; my ($Offset, $Count, $Buffer) = @_; sysseek($self->{'HANDLE'},$Offset * 512,0) || return 0; syswrite($self->{'HANDLE'},$$Buffer,$Count * 512) || return 0; return 1; } sub Close { my $self = shift; close($self->{'HANDLE'}); } sub DESTROY { Close(); } 1;