xref: /openbmc/qemu/linux-user/syscall_defs.h (revision 31e31b8a248ffa216223dad49f75efbdfca5df23)
1*31e31b8aSbellard 
2*31e31b8aSbellard /* common syscall defines for all architectures */
3*31e31b8aSbellard 
4*31e31b8aSbellard #define SOCKOP_socket           1
5*31e31b8aSbellard #define SOCKOP_bind             2
6*31e31b8aSbellard #define SOCKOP_connect          3
7*31e31b8aSbellard #define SOCKOP_listen           4
8*31e31b8aSbellard #define SOCKOP_accept           5
9*31e31b8aSbellard #define SOCKOP_getsockname      6
10*31e31b8aSbellard #define SOCKOP_getpeername      7
11*31e31b8aSbellard #define SOCKOP_socketpair       8
12*31e31b8aSbellard #define SOCKOP_send             9
13*31e31b8aSbellard #define SOCKOP_recv             10
14*31e31b8aSbellard #define SOCKOP_sendto           11
15*31e31b8aSbellard #define SOCKOP_recvfrom         12
16*31e31b8aSbellard #define SOCKOP_shutdown         13
17*31e31b8aSbellard #define SOCKOP_setsockopt       14
18*31e31b8aSbellard #define SOCKOP_getsockopt       15
19*31e31b8aSbellard #define SOCKOP_sendmsg          16
20*31e31b8aSbellard #define SOCKOP_recvmsg          17
21*31e31b8aSbellard 
22*31e31b8aSbellard struct target_timeval {
23*31e31b8aSbellard     target_long tv_sec;
24*31e31b8aSbellard     target_long tv_usec;
25*31e31b8aSbellard };
26*31e31b8aSbellard 
27*31e31b8aSbellard struct target_iovec {
28*31e31b8aSbellard     target_long iov_base;   /* Starting address */
29*31e31b8aSbellard     target_long iov_len;   /* Number of bytes */
30*31e31b8aSbellard };
31*31e31b8aSbellard 
32*31e31b8aSbellard struct  target_rusage {
33*31e31b8aSbellard         struct target_timeval ru_utime;        /* user time used */
34*31e31b8aSbellard         struct target_timeval ru_stime;        /* system time used */
35*31e31b8aSbellard         target_long    ru_maxrss;              /* maximum resident set size */
36*31e31b8aSbellard         target_long    ru_ixrss;               /* integral shared memory size */
37*31e31b8aSbellard         target_long    ru_idrss;               /* integral unshared data size */
38*31e31b8aSbellard         target_long    ru_isrss;               /* integral unshared stack size */
39*31e31b8aSbellard         target_long    ru_minflt;              /* page reclaims */
40*31e31b8aSbellard         target_long    ru_majflt;              /* page faults */
41*31e31b8aSbellard         target_long    ru_nswap;               /* swaps */
42*31e31b8aSbellard         target_long    ru_inblock;             /* block input operations */
43*31e31b8aSbellard         target_long    ru_oublock;             /* block output operations */
44*31e31b8aSbellard         target_long    ru_msgsnd;              /* messages sent */
45*31e31b8aSbellard         target_long    ru_msgrcv;              /* messages received */
46*31e31b8aSbellard         target_long    ru_nsignals;            /* signals received */
47*31e31b8aSbellard         target_long    ru_nvcsw;               /* voluntary context switches */
48*31e31b8aSbellard         target_long    ru_nivcsw;              /* involuntary " */
49*31e31b8aSbellard };
50*31e31b8aSbellard 
51*31e31b8aSbellard typedef struct {
52*31e31b8aSbellard         int     val[2];
53*31e31b8aSbellard } kernel_fsid_t;
54*31e31b8aSbellard 
55*31e31b8aSbellard struct statfs {
56*31e31b8aSbellard 	int f_type;
57*31e31b8aSbellard 	int f_bsize;
58*31e31b8aSbellard 	int f_blocks;
59*31e31b8aSbellard 	int f_bfree;
60*31e31b8aSbellard 	int f_bavail;
61*31e31b8aSbellard 	int f_files;
62*31e31b8aSbellard 	int f_ffree;
63*31e31b8aSbellard         kernel_fsid_t f_fsid;
64*31e31b8aSbellard 	int f_namelen;
65*31e31b8aSbellard 	int f_spare[6];
66*31e31b8aSbellard };
67*31e31b8aSbellard 
68*31e31b8aSbellard /* mostly generic signal stuff */
69*31e31b8aSbellard #define TARGET_SIG_DFL	((target_long)0)	/* default signal handling */
70*31e31b8aSbellard #define TARGET_SIG_IGN	((target_long)1)	/* ignore signal */
71*31e31b8aSbellard #define TARGET_SIG_ERR	((target_long)-1)	/* error return from signal */
72*31e31b8aSbellard 
73*31e31b8aSbellard #ifdef TARGET_MIPS
74*31e31b8aSbellard #define TARGET_NSIG	   128
75*31e31b8aSbellard #else
76*31e31b8aSbellard #define TARGET_NSIG	   64
77*31e31b8aSbellard #endif
78*31e31b8aSbellard #define TARGET_NSIG_BPW	   TARGET_LONG_BITS
79*31e31b8aSbellard #define TARGET_NSIG_WORDS  (TARGET_NSIG / TARGET_NSIG_BPW)
80*31e31b8aSbellard 
81*31e31b8aSbellard typedef struct {
82*31e31b8aSbellard     target_ulong sig[TARGET_NSIG_WORDS];
83*31e31b8aSbellard } target_sigset_t;
84*31e31b8aSbellard 
85*31e31b8aSbellard /* Networking ioctls */
86*31e31b8aSbellard #define TARGET_SIOCADDRT       0x890B          /* add routing table entry */
87*31e31b8aSbellard #define TARGET_SIOCDELRT       0x890C          /* delete routing table entry */
88*31e31b8aSbellard #define TARGET_SIOCGIFNAME     0x8910          /* get iface name               */
89*31e31b8aSbellard #define TARGET_SIOCSIFLINK     0x8911          /* set iface channel            */
90*31e31b8aSbellard #define TARGET_SIOCGIFCONF     0x8912          /* get iface list               */
91*31e31b8aSbellard #define TARGET_SIOCGIFFLAGS    0x8913          /* get flags                    */
92*31e31b8aSbellard #define TARGET_SIOCSIFFLAGS    0x8914          /* set flags                    */
93*31e31b8aSbellard #define TARGET_SIOCGIFADDR     0x8915          /* get PA address               */
94*31e31b8aSbellard #define TARGET_SIOCSIFADDR     0x8916          /* set PA address               */
95*31e31b8aSbellard #define TARGET_SIOCGIFDSTADDR  0x8917          /* get remote PA address        */
96*31e31b8aSbellard #define TARGET_SIOCSIFDSTADDR  0x8918          /* set remote PA address        */
97*31e31b8aSbellard #define TARGET_SIOCGIFBRDADDR  0x8919          /* get broadcast PA address     */
98*31e31b8aSbellard #define TARGET_SIOCSIFBRDADDR  0x891a          /* set broadcast PA address     */
99*31e31b8aSbellard #define TARGET_SIOCGIFNETMASK  0x891b          /* get network PA mask          */
100*31e31b8aSbellard #define TARGET_SIOCSIFNETMASK  0x891c          /* set network PA mask          */
101*31e31b8aSbellard #define TARGET_SIOCGIFMETRIC   0x891d          /* get metric                   */
102*31e31b8aSbellard #define TARGET_SIOCSIFMETRIC   0x891e          /* set metric                   */
103*31e31b8aSbellard #define TARGET_SIOCGIFMEM      0x891f          /* get memory address (BSD)     */
104*31e31b8aSbellard #define TARGET_SIOCSIFMEM      0x8920          /* set memory address (BSD)     */
105*31e31b8aSbellard #define TARGET_SIOCGIFMTU      0x8921          /* get MTU size                 */
106*31e31b8aSbellard #define TARGET_SIOCSIFMTU      0x8922          /* set MTU size                 */
107*31e31b8aSbellard #define TARGET_SIOCSIFHWADDR   0x8924          /* set hardware address (NI)    */
108*31e31b8aSbellard #define TARGET_SIOCGIFENCAP    0x8925          /* get/set slip encapsulation   */
109*31e31b8aSbellard #define TARGET_SIOCSIFENCAP    0x8926
110*31e31b8aSbellard #define TARGET_SIOCGIFHWADDR   0x8927          /* Get hardware address         */
111*31e31b8aSbellard #define TARGET_SIOCGIFSLAVE    0x8929          /* Driver slaving support       */
112*31e31b8aSbellard #define TARGET_SIOCSIFSLAVE    0x8930
113*31e31b8aSbellard #define TARGET_SIOCADDMULTI    0x8931          /* Multicast address lists      */
114*31e31b8aSbellard #define TARGET_SIOCDELMULTI    0x8932
115*31e31b8aSbellard 
116*31e31b8aSbellard /* Bridging control calls */
117*31e31b8aSbellard #define TARGET_SIOCGIFBR       0x8940          /* Bridging support             */
118*31e31b8aSbellard #define TARGET_SIOCSIFBR       0x8941          /* Set bridging options         */
119*31e31b8aSbellard 
120*31e31b8aSbellard #define TARGET_SIOCGIFTXQLEN   0x8942          /* Get the tx queue length      */
121*31e31b8aSbellard #define TARGET_SIOCSIFTXQLEN   0x8943          /* Set the tx queue length      */
122*31e31b8aSbellard 
123*31e31b8aSbellard /* ARP cache control calls. */
124*31e31b8aSbellard #define TARGET_OLD_SIOCDARP    0x8950          /* old delete ARP table entry   */
125*31e31b8aSbellard #define TARGET_OLD_SIOCGARP    0x8951          /* old get ARP table entry      */
126*31e31b8aSbellard #define TARGET_OLD_SIOCSARP    0x8952          /* old set ARP table entry      */
127*31e31b8aSbellard #define TARGET_SIOCDARP        0x8953          /* delete ARP table entry       */
128*31e31b8aSbellard #define TARGET_SIOCGARP        0x8954          /* get ARP table entry          */
129*31e31b8aSbellard #define TARGET_SIOCSARP        0x8955          /* set ARP table entry          */
130*31e31b8aSbellard 
131*31e31b8aSbellard /* RARP cache control calls. */
132*31e31b8aSbellard #define TARGET_SIOCDRARP       0x8960          /* delete RARP table entry      */
133*31e31b8aSbellard #define TARGET_SIOCGRARP       0x8961          /* get RARP table entry         */
134*31e31b8aSbellard #define TARGET_SIOCSRARP       0x8962          /* set RARP table entry         */
135*31e31b8aSbellard 
136*31e31b8aSbellard /* Driver configuration calls */
137*31e31b8aSbellard #define TARGET_SIOCGIFMAP      0x8970          /* Get device parameters        */
138*31e31b8aSbellard #define TARGET_SIOCSIFMAP      0x8971          /* Set device parameters        */
139*31e31b8aSbellard 
140*31e31b8aSbellard /* DLCI configuration calls */
141*31e31b8aSbellard #define TARGET_SIOCADDDLCI     0x8980          /* Create new DLCI device       */
142*31e31b8aSbellard #define TARGET_SIOCDELDLCI     0x8981          /* Delete DLCI device           */
143*31e31b8aSbellard 
144*31e31b8aSbellard 
145*31e31b8aSbellard /* From <linux/fs.h> */
146*31e31b8aSbellard 
147*31e31b8aSbellard #define TARGET_BLKROSET   TARGET_IO(0x12,93) /* set device read-only (0 = read-write) */
148*31e31b8aSbellard #define TARGET_BLKROGET   TARGET_IO(0x12,94) /* get read-only status (0 = read_write) */
149*31e31b8aSbellard #define TARGET_BLKRRPART  TARGET_IO(0x12,95) /* re-read partition table */
150*31e31b8aSbellard #define TARGET_BLKGETSIZE TARGET_IO(0x12,96) /* return device size /512 (long *arg) */
151*31e31b8aSbellard #define TARGET_BLKFLSBUF  TARGET_IO(0x12,97) /* flush buffer cache */
152*31e31b8aSbellard #define TARGET_BLKRASET   TARGET_IO(0x12,98) /* Set read ahead for block device */
153*31e31b8aSbellard #define TARGET_BLKRAGET   TARGET_IO(0x12,99) /* get current read ahead setting */
154*31e31b8aSbellard #define TARGET_BLKFRASET  TARGET_IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
155*31e31b8aSbellard #define TARGET_BLKFRAGET  TARGET_IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */
156*31e31b8aSbellard #define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
157*31e31b8aSbellard #define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
158*31e31b8aSbellard #define TARGET_BLKSSZGET  TARGET_IO(0x12,104)/* get block device sector size */
159*31e31b8aSbellard /* A jump here: 108-111 have been used for various private purposes. */
160*31e31b8aSbellard #define TARGET_BLKBSZGET  TARGET_IOR(0x12,112,sizeof(int))
161*31e31b8aSbellard #define TARGET_BLKBSZSET  TARGET_IOW(0x12,113,sizeof(int))
162*31e31b8aSbellard #define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,sizeof(uint64_t)) /* return device size in bytes (u64 *arg) */
163*31e31b8aSbellard #define TARGET_FIBMAP     TARGET_IO(0x00,1)  /* bmap access */
164*31e31b8aSbellard #define TARGET_FIGETBSZ   TARGET_IO(0x00,2)  /* get the block size used for bmap */
165*31e31b8aSbellard 
166*31e31b8aSbellard /* cdrom commands */
167*31e31b8aSbellard #define TARGET_CDROMPAUSE		0x5301 /* Pause Audio Operation */
168*31e31b8aSbellard #define TARGET_CDROMRESUME		0x5302 /* Resume paused Audio Operation */
169*31e31b8aSbellard #define TARGET_CDROMPLAYMSF		0x5303 /* Play Audio MSF (struct cdrom_msf) */
170*31e31b8aSbellard #define TARGET_CDROMPLAYTRKIND		0x5304 /* Play Audio Track/index
171*31e31b8aSbellard                                            (struct cdrom_ti) */
172*31e31b8aSbellard #define TARGET_CDROMREADTOCHDR		0x5305 /* Read TOC header
173*31e31b8aSbellard                                            (struct cdrom_tochdr) */
174*31e31b8aSbellard #define TARGET_CDROMREADTOCENTRY	0x5306 /* Read TOC entry
175*31e31b8aSbellard                                            (struct cdrom_tocentry) */
176*31e31b8aSbellard #define TARGET_CDROMSTOP		0x5307 /* Stop the cdrom drive */
177*31e31b8aSbellard #define TARGET_CDROMSTART		0x5308 /* Start the cdrom drive */
178*31e31b8aSbellard #define TARGET_CDROMEJECT		0x5309 /* Ejects the cdrom media */
179*31e31b8aSbellard #define TARGET_CDROMVOLCTRL		0x530a /* Control output volume
180*31e31b8aSbellard                                            (struct cdrom_volctrl) */
181*31e31b8aSbellard #define TARGET_CDROMSUBCHNL		0x530b /* Read subchannel data
182*31e31b8aSbellard                                            (struct cdrom_subchnl) */
183*31e31b8aSbellard #define TARGET_CDROMREADMODE2		0x530c /* Read TARGET_CDROM mode 2 data (2336 Bytes)
184*31e31b8aSbellard                                            (struct cdrom_read) */
185*31e31b8aSbellard #define TARGET_CDROMREADMODE1		0x530d /* Read TARGET_CDROM mode 1 data (2048 Bytes)
186*31e31b8aSbellard                                            (struct cdrom_read) */
187*31e31b8aSbellard #define TARGET_CDROMREADAUDIO		0x530e /* (struct cdrom_read_audio) */
188*31e31b8aSbellard #define TARGET_CDROMEJECT_SW		0x530f /* enable(1)/disable(0) auto-ejecting */
189*31e31b8aSbellard #define TARGET_CDROMMULTISESSION	0x5310 /* Obtain the start-of-last-session
190*31e31b8aSbellard                                            address of multi session disks
191*31e31b8aSbellard                                            (struct cdrom_multisession) */
192*31e31b8aSbellard #define TARGET_CDROM_GET_MCN		0x5311 /* Obtain the "Universal Product Code"
193*31e31b8aSbellard                                            if available (struct cdrom_mcn) */
194*31e31b8aSbellard #define TARGET_CDROM_GET_UPC		TARGET_CDROM_GET_MCN  /* This one is depricated,
195*31e31b8aSbellard                                           but here anyway for compatability */
196*31e31b8aSbellard #define TARGET_CDROMRESET		0x5312 /* hard-reset the drive */
197*31e31b8aSbellard #define TARGET_CDROMVOLREAD		0x5313 /* Get the drive's volume setting
198*31e31b8aSbellard                                           (struct cdrom_volctrl) */
199*31e31b8aSbellard #define TARGET_CDROMREADRAW		0x5314	/* read data in raw mode (2352 Bytes)
200*31e31b8aSbellard                                            (struct cdrom_read) */
201*31e31b8aSbellard /*
202*31e31b8aSbellard  * These ioctls are used only used in aztcd.c and optcd.c
203*31e31b8aSbellard  */
204*31e31b8aSbellard #define TARGET_CDROMREADCOOKED		0x5315	/* read data in cooked mode */
205*31e31b8aSbellard #define TARGET_CDROMSEEK		0x5316  /* seek msf address */
206*31e31b8aSbellard 
207*31e31b8aSbellard /*
208*31e31b8aSbellard  * This ioctl is only used by the scsi-cd driver.
209*31e31b8aSbellard    It is for playing audio in logical block addressing mode.
210*31e31b8aSbellard  */
211*31e31b8aSbellard #define TARGET_CDROMPLAYBLK		0x5317	/* (struct cdrom_blk) */
212*31e31b8aSbellard 
213*31e31b8aSbellard /*
214*31e31b8aSbellard  * These ioctls are only used in optcd.c
215*31e31b8aSbellard  */
216*31e31b8aSbellard #define TARGET_CDROMREADALL		0x5318	/* read all 2646 bytes */
217*31e31b8aSbellard 
218*31e31b8aSbellard /*
219*31e31b8aSbellard  * These ioctls are (now) only in ide-cd.c for controlling
220*31e31b8aSbellard  * drive spindown time.  They should be implemented in the
221*31e31b8aSbellard  * Uniform driver, via generic packet commands, GPCMD_MODE_SELECT_10,
222*31e31b8aSbellard  * GPCMD_MODE_SENSE_10 and the GPMODE_POWER_PAGE...
223*31e31b8aSbellard  *  -Erik
224*31e31b8aSbellard  */
225*31e31b8aSbellard #define TARGET_CDROMGETSPINDOWN        0x531d
226*31e31b8aSbellard #define TARGET_CDROMSETSPINDOWN        0x531e
227*31e31b8aSbellard 
228*31e31b8aSbellard /*
229*31e31b8aSbellard  * These ioctls are implemented through the uniform CD-ROM driver
230*31e31b8aSbellard  * They _will_ be adopted by all CD-ROM drivers, when all the CD-ROM
231*31e31b8aSbellard  * drivers are eventually ported to the uniform CD-ROM driver interface.
232*31e31b8aSbellard  */
233*31e31b8aSbellard #define TARGET_CDROMCLOSETRAY		0x5319	/* pendant of CDROMEJECT */
234*31e31b8aSbellard #define TARGET_CDROM_SET_OPTIONS	0x5320  /* Set behavior options */
235*31e31b8aSbellard #define TARGET_CDROM_CLEAR_OPTIONS	0x5321  /* Clear behavior options */
236*31e31b8aSbellard #define TARGET_CDROM_SELECT_SPEED	0x5322  /* Set the CD-ROM speed */
237*31e31b8aSbellard #define TARGET_CDROM_SELECT_DISC	0x5323  /* Select disc (for juke-boxes) */
238*31e31b8aSbellard #define TARGET_CDROM_MEDIA_CHANGED	0x5325  /* Check is media changed  */
239*31e31b8aSbellard #define TARGET_CDROM_DRIVE_STATUS	0x5326  /* Get tray position, etc. */
240*31e31b8aSbellard #define TARGET_CDROM_DISC_STATUS	0x5327  /* Get disc type, etc. */
241*31e31b8aSbellard #define TARGET_CDROM_CHANGER_NSLOTS    0x5328  /* Get number of slots */
242*31e31b8aSbellard #define TARGET_CDROM_LOCKDOOR		0x5329  /* lock or unlock door */
243*31e31b8aSbellard #define TARGET_CDROM_DEBUG		0x5330	/* Turn debug messages on/off */
244*31e31b8aSbellard #define TARGET_CDROM_GET_CAPABILITY	0x5331	/* get capabilities */
245*31e31b8aSbellard 
246*31e31b8aSbellard /* Note that scsi/scsi_ioctl.h also uses 0x5382 - 0x5386.
247*31e31b8aSbellard  * Future CDROM ioctls should be kept below 0x537F
248*31e31b8aSbellard  */
249*31e31b8aSbellard 
250*31e31b8aSbellard /* This ioctl is only used by sbpcd at the moment */
251*31e31b8aSbellard #define TARGET_CDROMAUDIOBUFSIZ        0x5382	/* set the audio buffer size */
252*31e31b8aSbellard 					/* conflict with SCSI_IOCTL_GET_IDLUN */
253*31e31b8aSbellard 
254*31e31b8aSbellard /* DVD-ROM Specific ioctls */
255*31e31b8aSbellard #define TARGET_DVD_READ_STRUCT		0x5390  /* Read structure */
256*31e31b8aSbellard #define TARGET_DVD_WRITE_STRUCT	0x5391  /* Write structure */
257*31e31b8aSbellard #define TARGET_DVD_AUTH		0x5392  /* Authentication */
258*31e31b8aSbellard 
259*31e31b8aSbellard #define TARGET_CDROM_SEND_PACKET	0x5393	/* send a packet to the drive */
260*31e31b8aSbellard #define TARGET_CDROM_NEXT_WRITABLE	0x5394	/* get next writable block */
261*31e31b8aSbellard #define TARGET_CDROM_LAST_WRITTEN	0x5395	/* get last block written on disc */
262*31e31b8aSbellard 
263*31e31b8aSbellard /* HD commands */
264*31e31b8aSbellard 
265*31e31b8aSbellard /* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
266*31e31b8aSbellard #define TARGET_HDIO_GETGEO            0x0301  /* get device geometry */
267*31e31b8aSbellard #define TARGET_HDIO_GET_UNMASKINTR    0x0302  /* get current unmask setting */
268*31e31b8aSbellard #define TARGET_HDIO_GET_MULTCOUNT     0x0304  /* get current IDE blockmode setting */
269*31e31b8aSbellard #define TARGET_HDIO_GET_IDENTITY      0x0307  /* get IDE identification info */
270*31e31b8aSbellard #define TARGET_HDIO_GET_KEEPSETTINGS  0x0308  /* get keep-settings-on-reset flag */
271*31e31b8aSbellard #define TARGET_HDIO_GET_32BIT         0x0309  /* get current io_32bit setting */
272*31e31b8aSbellard #define TARGET_HDIO_GET_NOWERR        0x030a  /* get ignore-write-error flag */
273*31e31b8aSbellard #define TARGET_HDIO_GET_DMA           0x030b  /* get use-dma flag */
274*31e31b8aSbellard #define TARGET_HDIO_DRIVE_CMD         0x031f  /* execute a special drive command */
275*31e31b8aSbellard 
276*31e31b8aSbellard /* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
277*31e31b8aSbellard #define TARGET_HDIO_SET_MULTCOUNT     0x0321  /* change IDE blockmode */
278*31e31b8aSbellard #define TARGET_HDIO_SET_UNMASKINTR    0x0322  /* permit other irqs during I/O */
279*31e31b8aSbellard #define TARGET_HDIO_SET_KEEPSETTINGS  0x0323  /* keep ioctl settings on reset */
280*31e31b8aSbellard #define TARGET_HDIO_SET_32BIT         0x0324  /* change io_32bit flags */
281*31e31b8aSbellard #define TARGET_HDIO_SET_NOWERR        0x0325  /* change ignore-write-error flag */
282*31e31b8aSbellard #define TARGET_HDIO_SET_DMA           0x0326  /* change use-dma flag */
283*31e31b8aSbellard #define TARGET_HDIO_SET_PIO_MODE      0x0327  /* reconfig interface to new speed */
284