Example #1
0
STDMETHODIMP CGeometry::pt2lt(long cyl, short head, long *lsect)
{
	dsk_ltrack_t lt;
	HRESULT hr = MapError(dg_pt2lt(&m_g, cyl, head, &lt));
	*lsect = lt;
	return hr;
}
Example #2
0
/* Convert physical sector to logical */
LDPUBLIC32 dsk_err_t LDPUBLIC16 dg_ps2ls(const DSK_GEOMETRY *self,
        /* in */	dsk_pcyl_t cyl, dsk_phead_t head, dsk_psect_t sec,
        /* out */	dsk_lsect_t *logical)
{
    dsk_ltrack_t track;
    dsk_lsect_t sector;
    dsk_err_t e;

    e = dg_pt2lt(self, cyl, head, &track);
    if (e) return e;

    if (sec  < self->dg_secbase ||
            sec  >= self->dg_secbase + self->dg_sectors) return DSK_ERR_BADPTR;

    sector = track * self->dg_sectors;
    sector += (sec - self->dg_secbase);

    if (logical) *logical = sector;

    return DSK_ERR_OK;
}