18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __IDE_GD_H
38c2ecf20Sopenharmony_ci#define __IDE_GD_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#define DRV_NAME "ide-gd"
68c2ecf20Sopenharmony_ci#define PFX DRV_NAME ": "
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci/* define to see debug info */
98c2ecf20Sopenharmony_ci#define IDE_GD_DEBUG_LOG	0
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#if IDE_GD_DEBUG_LOG
128c2ecf20Sopenharmony_ci#define ide_debug_log(lvl, fmt, args...) __ide_debug_log(lvl, fmt, ## args)
138c2ecf20Sopenharmony_ci#else
148c2ecf20Sopenharmony_ci#define ide_debug_log(lvl, fmt, args...) do {} while (0)
158c2ecf20Sopenharmony_ci#endif
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_cistruct ide_disk_obj {
188c2ecf20Sopenharmony_ci	ide_drive_t		*drive;
198c2ecf20Sopenharmony_ci	struct ide_driver	*driver;
208c2ecf20Sopenharmony_ci	struct gendisk		*disk;
218c2ecf20Sopenharmony_ci	struct device		dev;
228c2ecf20Sopenharmony_ci	unsigned int		openers;	/* protected by BKL for now */
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci	/* used for blk_{fs,pc}_request() requests */
258c2ecf20Sopenharmony_ci	struct ide_atapi_pc queued_pc;
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	/* Last error information */
288c2ecf20Sopenharmony_ci	u8 sense_key, asc, ascq;
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci	int progress_indication;
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	/* Device information */
338c2ecf20Sopenharmony_ci	/* Current format */
348c2ecf20Sopenharmony_ci	int blocks, block_size, bs_factor;
358c2ecf20Sopenharmony_ci	/* Last format capacity descriptor */
368c2ecf20Sopenharmony_ci	u8 cap_desc[8];
378c2ecf20Sopenharmony_ci	/* Copy of the flexible disk page */
388c2ecf20Sopenharmony_ci	u8 flexible_disk_page[32];
398c2ecf20Sopenharmony_ci};
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_cisector_t ide_gd_capacity(ide_drive_t *);
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#endif /* __IDE_GD_H */
44