Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

ioctl VIDIOC_DBG_G_REGISTER, VIDIOC_DBG_S_REGISTER

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

7.6. ioctl VIDIOC_DBG_G_REGISTER, VIDIOC_DBG_S_REGISTER

7.6.1. Tên

VIDIOC_DBG_G_REGISTER - VIDIOC_DBG_S_REGISTER - Đọc hoặc ghi các thanh ghi phần cứng

7.6.2. Tóm tắt

VIDIOC_DBG_G_REGISTER

ZZ0000ZZ

VIDIOC_DBG_S_REGISTER

ZZ0000ZZ

7.6.3. Đối số

ZZ0001ZZ

Bộ mô tả tệp được trả về bởi ZZ0000ZZ.

ZZ0001ZZ

Con trỏ tới cấu trúc ZZ0000ZZ.

7.6.4. Sự miêu tả

Lưu ý

This is an Experimental API Elements interface and may change in the future.

Với mục đích gỡ lỗi trình điều khiển, các ioctls này cho phép các ứng dụng thử nghiệm truy cập trực tiếp vào các thanh ghi phần cứng. Các ứng dụng thông thường không được sử dụng họ.

Vì việc ghi hoặc thậm chí đọc các thanh ghi có thể gây nguy hiểm cho hệ thống bảo mật, tính ổn định và làm hỏng phần cứng, cả hai ioctls đều yêu cầu đặc quyền siêu người dùng. Ngoài ra nhân Linux phải được biên dịch với tùy chọn ZZ0000ZZ để kích hoạt các ioctls này.

Để ghi một ứng dụng đăng ký phải khởi tạo tất cả các trường của một cấu trúc ZZ0000ZZ ngoại trừ ZZ0001ZZ và gọi ZZ0002ZZ bằng một con trỏ tới cấu trúc này. các Các trường ZZ0003ZZ và ZZ0004ZZ hoặc ZZ0005ZZ chọn một chip trên thẻ TV, trường ZZ0006ZZ chỉ định số thanh ghi và Trường ZZ0007ZZ giá trị được ghi vào thanh ghi.

Để đọc ứng dụng đăng ký phải khởi tạo ZZ0000ZZ, Các trường ZZ0001ZZ hoặc ZZ0002ZZ và ZZ0003ZZ và gọi ZZ0004ZZ với một con trỏ tới cấu trúc này. Về thành công trình điều khiển lưu trữ giá trị thanh ghi trong trường ZZ0005ZZ và kích thước (tính bằng byte) của giá trị trong ZZ0006ZZ.

Khi ZZ0001ZZ là ZZ0002ZZ, ZZ0003ZZ chọn chip không phải thiết bị phụ thứ n trên thẻ TV. Số 0 luôn chọn chip chủ, e. g. con chip được kết nối với PCI hoặc USB xe buýt. Bạn có thể tìm ra những con chip nào hiện diện với ZZ0000ZZ ioctl.

Khi ZZ0000ZZ là ZZ0001ZZ, ZZ0002ZZ chọn thiết bị phụ thứ n.

Các ioctls này là tùy chọn, không phải tất cả trình điều khiển đều có thể hỗ trợ chúng. Tuy nhiên khi một trình điều khiển hỗ trợ các ioctls này thì nó cũng phải hỗ trợ ZZ0000ZZ. Ngược lại nó có thể hỗ trợ ZZ0001ZZ nhưng không hỗ trợ các ioctls này.

ZZ0000ZZ và ZZ0001ZZ đã được giới thiệu trong Linux 2.6.21, nhưng API của họ đã được thay đổi thành phiên bản được mô tả ở đây trong hạt nhân 2.6.29.

Chúng tôi đã đề xuất tiện ích v4l2-dbg thay vì gọi trực tiếp các ioctls này. Nó có sẵn từ kho lưu trữ LinuxTV v4l-dvb; xem ZZ0000ZZ để truy cập hướng dẫn.

type v4l2_dbg_match
struct v4l2_dbg_match

__u32

type

See Chip Match Types for a list of possible types.

union {

(anonymous)

__u32

addr

Match a chip by this number, interpreted according to the type field.

char

name[32]

Match a chip by this name, interpreted according to the type field. Currently unused.

}

type v4l2_dbg_register
struct v4l2_dbg_register

struct v4l2_dbg_match

match

How to match the chip, see v4l2_dbg_match.

__u32

size

The register size in bytes.

__u64

reg

A register number.

__u64

val

The value read from, or to be written into the register.

Chip Match Types

V4L2_CHIP_MATCH_BRIDGE

0

Match the nth chip on the card, zero for the bridge chip. Does not match sub-devices.

V4L2_CHIP_MATCH_SUBDEV

4

Match the nth sub-device.

7.6.5. Giá trị trả về

Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.

EPERM

Không đủ quyền. Cần có quyền root để thực thi những ioctl này.