OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [linux/] [ucdrom.h] - Blame information for rev 1633

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1633 jcastillo
/* ucdrom.h. Uniform cdrom data structures for cdrom.c.         -*- linux-c -*-
2
   Copyright (c) 1996 David van Leeuwen.
3
 */
4
 
5
#ifndef LINUX_UCDROM_H
6
#define LINUX_UCDROM_H
7
 
8
#ifdef __KERNEL__
9
struct cdrom_device_ops {
10
/* routines */
11
        int (*open) (kdev_t, int);
12
        void (*release) (kdev_t);
13
        int (*open_files) (kdev_t);      /* number of open files */
14
        int (*drive_status) (kdev_t);
15
        int (*disc_status) (kdev_t);
16
        int (*media_changed) (kdev_t);
17
        int (*tray_move) (kdev_t, int);
18
        int (*lock_door) (kdev_t, int);
19
        int (*select_speed) (kdev_t, int);
20
        int (*select_disc) (kdev_t, int);
21
        int (*get_last_session) (kdev_t, struct cdrom_multisession *);
22
        int (*get_mcn) (kdev_t, struct cdrom_mcn *);
23
        int (*reset) (kdev_t dev);       /* hard reset device */
24
        int (*audio_ioctl) (kdev_t, unsigned int, void *); /* play stuff */
25
        int (*dev_ioctl) (kdev_t, unsigned int, unsigned long); /* dev-specific */
26
/* specifications */
27
        const int capability;           /* capability flags */
28
        int mask;                       /* mask of capability: disables them */
29
        const int speed;                /* maximum speed for reading data */
30
        const int minors;               /* number of minor devs supported */
31
        const int capacity;             /* number of discs in jukebox */
32
/* device-related storage */
33
        int options;                    /* options flags */
34
        long mc_flags;                  /* media change buffer flags (2*16) */
35
};
36
#endif
37
 
38
/* capability flags */
39
#define CDC_CLOSE_TRAY  0x1             /* caddy systems _can't_ close */
40
#define CDC_OPEN_TRAY   0x2             /* but _can_ eject.  */
41
#define CDC_LOCK        0x4             /* disable manual eject */
42
#define CDC_SELECT_SPEED 0x8            /* programmable speed */
43
#define CDC_SELECT_DISC 0x10            /* select disc from juke-box */
44
#define CDC_MULTI_SESSION 0x20          /* read sessions>1 */
45
#define CDC_MCN         0x40            /* Medium Catalog Number */
46
#define CDC_MEDIA_CHANGED 0x80          /* media changed */
47
#define CDC_PLAY_AUDIO  0x100           /* audio functions */
48
 
49
/* drive status possibilities */
50
#define CDS_NO_INFO     0               /* if not implemented */
51
#define CDS_NO_DISC     1
52
#define CDS_TRAY_OPEN   2
53
#define CDS_DRIVE_NOT_READY     3
54
#define CDS_DISC_OK     4
55
 
56
/* disc status possibilities, other than CDS_NO_DISC */
57
#define CDS_AUDIO       100
58
#define CDS_DATA_1      101
59
#define CDS_DATA_2      102
60
#define CDS_XA_2_1      103
61
#define CDS_XA_2_2      104
62
 
63
/* User-configurable behavior options */
64
#define CDO_AUTO_CLOSE  0x1             /* close tray on first open() */
65
#define CDO_AUTO_EJECT  0x2             /* open tray on last release() */
66
#define CDO_USE_FFLAGS  0x4             /* use O_NONBLOCK information on open */
67
#define CDO_LOCK        0x8             /* lock tray on open files */
68
#define CDO_CHECK_TYPE  0x10            /* check type on open for data */
69
 
70
/* Some more ioctls to control these options */
71
#define CDROM_SET_OPTIONS       0x5320
72
#define CDROM_CLEAR_OPTIONS     0x5321
73
#define CDROM_SELECT_SPEED      0x5322  /* head-speed */
74
#define CDROM_SELECT_DISC       0x5323  /* for juke-boxes */
75
#define CDROM_MEDIA_CHANGED     0x5325
76
#define CDROM_DRIVE_STATUS      0x5326  /* tray position, etc. */
77
#define CDROM_DISC_STATUS       0x5327  /* disc type etc. */
78
 
79
/* Rename an old ioctl */
80
#define CDROM_GET_MCN   CDROM_GET_UPC   /* medium catalog number */
81
 
82
#ifdef __KERNEL__
83
/* the general file operations structure: */
84
extern struct file_operations cdrom_fops;
85
 
86
extern int register_cdrom(int major, char *name,
87
                          struct cdrom_device_ops *cdo);
88
extern int unregister_cdrom(int major, char *name);
89
#endif
90
 
91
#endif  /* LINUX_UCDROM_H */
92
/*
93
 * Local variables:
94
 * comment-column: 40
95
 * End:
96
 */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.