Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Рисунок 7. Формат данных PMA, Format Field = 0011b
Поле PMA Data Length содержит размер данных PMA, при этом длина самого поля (2 байта) не учитывается. Назначение каждого байта дескриптора PMA определяется значением поля ADR:
Таблица 4
ADR |
Поле |
Значение поля |
|
1 |
TNO |
0 |
|
POINT |
Номер трека в BCD-коде |
|
|
MIN,SEC,FRAME |
Координаты конца трека |
|
|
PMIN,PSEC,PFRAME |
Координаты начала трека |
|
|
2 |
TNO |
0 |
|
POINT |
0 |
|
|
MIN,SEC,FRAME |
Идентификатор диска (6 цифр в BCD-коде) |
|
|
PMIN |
0 |
|
|
PSEC |
Формат сессии: 00 - CDDA, CD-ROM, 10 - CD-I, 20 - CD-ROM-XA |
||
PFRAME |
0 |
|
Заголовочные файлы:
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <scsi/scsi.h>
#include <scsi/sg.h>
#include <linux/types.h>
#include <linux/byteorder/swab.h>
#define SG_DEV "/dev/sg0" // имя файла устройства
// Макрос для пересчета координат сектора из MSF формата в LBA
#define MSF2LBA(Min, Sec, Frame) (((Min * 60 + Sec) * 75 + Frame) - 150)
int sg_fd; // файловый дескриптор
Следующая структура описывает формат данных PMA, представленный на рис. 7:
typedef struct {
__u8 rez; // reserved
__u8 ctrl :4; // Control
__u8 adr :4; // ADR
__u8 tno; // TNO (always 0)