STDMETHODIMP CGeometry::pt2lt(long cyl, short head, long *lsect) { dsk_ltrack_t lt; HRESULT hr = MapError(dg_pt2lt(&m_g, cyl, head, <)); *lsect = lt; return hr; }
/* 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; }