annotate src/s/irix3-3.h @ 13418:3b0b74c6aff7

[HAVE_NTGUI] (Fset_window_configuration): Set menu bar lines. Use HAVE_WINDOW_SYSTEM instead of testing for specific window systems.
author Geoff Voelker <voelker@cs.washington.edu>
date Tue, 07 Nov 1995 07:27:45 +0000
parents ae71c8f177cc
children ee40177f6c68
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
457
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Definitions file for GNU Emacs running on Silicon Graphics Irix system 3.3.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2 Copyright (C) 1987,1990 Free Software Foundation, Inc.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
3699
7be0f0a02725 Updated GPL version to 2.
Jim Blandy <jimb@redhat.com>
parents: 3591
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
457
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 /*
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 * Define symbols to identify the version of Unix this is.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 * Define all the symbols that apply correctly.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 #define USG
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 #define USG5
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 #define IRIS
1491
5d0527284372 (HAVE_SETSID, IRIX): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 457
diff changeset
29 #ifndef IRIX
5d0527284372 (HAVE_SETSID, IRIX): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 457
diff changeset
30 #define IRIX
5d0527284372 (HAVE_SETSID, IRIX): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 457
diff changeset
31 #endif
457
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 /* SYSTEM_TYPE should indicate the kind of system you are using.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 It sets the Lisp variable system-type. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 #define SYSTEM_TYPE "irix"
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 /* nomultiplejobs should be defined if your system's shell
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 does not have "job control" (the ability to stop a program,
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 run some other program, then continue the first one). */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 /* #define NOMULTIPLEJOBS */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 /* #define INTERRUPT_INPUT */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 /* Letter to use in finding device name of first pty,
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 if system supports pty's. 'a' means it is /dev/ptya0 */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 #define FIRST_PTY_LETTER 'a'
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 /*
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 * Define HAVE_TERMIO if the system provides sysV-style ioctls
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 * for terminal control.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 #define HAVE_TERMIO
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 /*
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 * Define HAVE_PTYS if the system supports pty devices.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 #define HAVE_PTYS
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 #define HAVE_SOCKETS
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 /*
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 * The 4.2 opendir, etc., library functions.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 /* #define NONSYSTEM_DIR_LIBRARY */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 /* Define this symbol if your system has the functions bcopy, etc. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 #define BSTRING
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 /* subprocesses should be defined if you want to
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 have code for asynchronous subprocesses
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 (as used in M-x compile and M-x shell).
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 This is generally OS dependent, and not supported
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 under most USG systems. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 #define subprocesses
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 /* If your system uses COFF (Common Object File Format) then define the
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 preprocessor symbol "COFF". */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 /* #define COFF */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 /* define MAIL_USE_FLOCK if the mailer uses flock
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95 to interlock access to /usr/spool/mail/$USER.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 The alternative is that a lock file named
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 /usr/spool/mail/$USER.lock. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98
9916
3014a91ade7a (MAIL_USE_FLOCK): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8892
diff changeset
99 #define MAIL_USE_FLOCK
457
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 /* Define CLASH_DETECTION if you want lock files to be written
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 so that Emacs can tell instantly when you try to modify
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 a file that someone else has modified in his Emacs. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 /* #define CLASH_DETECTION */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 /* We use the Berkeley (and usg5.2.2) interface to nlist. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 #define NLIST_STRUCT
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111 /* The file containing the kernel's symbol table is called /unix. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
112
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113 #define KERNEL_FILE "/unix"
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 /* The symbol in the kernel where the load average is found
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 is named _avenrun. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 #define LDAV_SYMBOL "avenrun"
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121 /* setjmp and longjmp can safely replace _setjmp and _longjmp,
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 but they will run slower. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 #define _setjmp setjmp
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 #define _longjmp longjmp
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 2990
diff changeset
127 /* On USG systems the system calls are interruptible by signals
457
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 that the user program has elected to catch. Thus the system call
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
129 must be retried in these cases. To handle this without massive
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
130 changes in the source code, we remap the standard system call names
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 to names for our own functions in sysdep.c that do the system call
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 with retries. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
133
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134 #define read sys_read
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
135 #define open sys_open
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
136 #define write sys_write
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
137
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
138 #define INTERRUPTIBLE_OPEN
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
139 #define INTERRUPTIBLE_IO
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
141 /* On USG systems these have different names */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
142
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 #define index strchr
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144 #define rindex strrchr
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
145
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146 /* USG systems tend to put everything declared static
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
147 into the initialized data area, which becomes pure after dumping Emacs.
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148 Foil this. Emacs carefully avoids static vars inside functions. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150 /* #define static */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 /* This is how to get the device name of the tty end of a pty. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 #define PTY_TTY_NAME_SPRINTF \
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154 sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev));
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
155
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
156
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
157 /* getwd is defined. */
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
159 #define HAVE_GETWD
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160
e442bb589751 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161 #define HAVE_SYSVIPC
1491
5d0527284372 (HAVE_SETSID, IRIX): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 457
diff changeset
162
2990
436215600247 * m/iris4d.h (NEED_SIOCTL): Move this to...
Jim Blandy <jimb@redhat.com>
parents: 2641
diff changeset
163 /* sioctl.h should be included where appropriate. */
436215600247 * m/iris4d.h (NEED_SIOCTL): Move this to...
Jim Blandy <jimb@redhat.com>
parents: 2641
diff changeset
164
436215600247 * m/iris4d.h (NEED_SIOCTL): Move this to...
Jim Blandy <jimb@redhat.com>
parents: 2641
diff changeset
165 #define NEED_SIOCTL
5183
d8758a4a0280 (SETPGRP_RELEASES_CTTY): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 3699
diff changeset
166
d8758a4a0280 (SETPGRP_RELEASES_CTTY): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 3699
diff changeset
167 /* This affects child_setup. */
d8758a4a0280 (SETPGRP_RELEASES_CTTY): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 3699
diff changeset
168
d8758a4a0280 (SETPGRP_RELEASES_CTTY): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 3699
diff changeset
169 #define SETPGRP_RELEASES_CTTY
12670
ae71c8f177cc (LIBS_SYSTEM): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 9916
diff changeset
170
ae71c8f177cc (LIBS_SYSTEM): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 9916
diff changeset
171 /* This was formerly in LIBS_MACHINE in iris4d.h,
ae71c8f177cc (LIBS_SYSTEM): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 9916
diff changeset
172 but it is not needed for newer system versions. */
ae71c8f177cc (LIBS_SYSTEM): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 9916
diff changeset
173 #define LIBS_SYSTEM -lsun