VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.13.0/os.h@ 81245

最後變更 在這個檔案從81245是 43251,由 vboxsync 提交於 12 年 前

Additions/x11: added headers for X.Org Server 1.13.

  • 屬性 svn:eol-style 設為 native
檔案大小: 19.3 KB
 
1/***********************************************************
2
3Copyright 1987, 1998 The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
26
27 All Rights Reserved
28
29Permission to use, copy, modify, and distribute this software and its
30documentation for any purpose and without fee is hereby granted,
31provided that the above copyright notice appear in all copies and that
32both that copyright notice and this permission notice appear in
33supporting documentation, and that the name of Digital not be
34used in advertising or publicity pertaining to distribution of the
35software without specific, written prior permission.
36
37DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
38ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
39DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
40ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
41WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
42ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
43SOFTWARE.
44
45******************************************************************/
46
47#ifndef OS_H
48#define OS_H
49
50#include "misc.h"
51#include <stdarg.h>
52#include <stdint.h>
53#include <string.h>
54
55#define SCREEN_SAVER_ON 0
56#define SCREEN_SAVER_OFF 1
57#define SCREEN_SAVER_FORCER 2
58#define SCREEN_SAVER_CYCLE 3
59
60#ifndef MAX_REQUEST_SIZE
61#define MAX_REQUEST_SIZE 65535
62#endif
63#ifndef MAX_BIG_REQUEST_SIZE
64#define MAX_BIG_REQUEST_SIZE 4194303
65#endif
66
67typedef struct _FontPathRec *FontPathPtr;
68typedef struct _NewClientRec *NewClientPtr;
69
70#ifndef xalloc
71#define xnfalloc(size) XNFalloc((unsigned long)(size))
72#define xnfcalloc(_num, _size) XNFcalloc((unsigned long)(_num)*(unsigned long)(_size))
73#define xnfrealloc(ptr, size) XNFrealloc((pointer)(ptr), (unsigned long)(size))
74
75#define xalloc(size) Xalloc((unsigned long)(size))
76#define xcalloc(_num, _size) Xcalloc((unsigned long)(_num)*(unsigned long)(_size))
77#define xrealloc(ptr, size) Xrealloc((pointer)(ptr), (unsigned long)(size))
78#define xfree(ptr) Xfree((pointer)(ptr))
79#define xstrdup(s) Xstrdup(s)
80#define xnfstrdup(s) XNFstrdup(s)
81#endif
82
83#include <stdio.h>
84#include <stdarg.h>
85
86#ifdef DDXBEFORERESET
87extern void ddxBeforeReset(void);
88#endif
89
90#ifdef DDXOSVERRORF
91extern _X_EXPORT void (*OsVendorVErrorFProc) (const char *, va_list args);
92#endif
93
94extern _X_EXPORT int WaitForSomething(int * /*pClientsReady */
95 );
96
97extern _X_EXPORT int ReadRequestFromClient(ClientPtr /*client */ );
98
99extern _X_EXPORT Bool InsertFakeRequest(ClientPtr /*client */ ,
100 char * /*data */ ,
101 int /*count */ );
102
103extern _X_EXPORT void ResetCurrentRequest(ClientPtr /*client */ );
104
105extern _X_EXPORT void FlushAllOutput(void);
106
107extern _X_EXPORT void FlushIfCriticalOutputPending(void);
108
109extern _X_EXPORT void SetCriticalOutputPending(void);
110
111extern _X_EXPORT int WriteToClient(ClientPtr /*who */ , int /*count */ ,
112 const void * /*buf */ );
113
114extern _X_EXPORT void ResetOsBuffers(void);
115
116extern _X_EXPORT void InitConnectionLimits(void);
117
118extern _X_EXPORT void NotifyParentProcess(void);
119
120extern _X_EXPORT void CreateWellKnownSockets(void);
121
122extern _X_EXPORT void ResetWellKnownSockets(void);
123
124extern _X_EXPORT void CloseWellKnownConnections(void);
125
126extern _X_EXPORT XID AuthorizationIDOfClient(ClientPtr /*client */ );
127
128extern _X_EXPORT const char *ClientAuthorized(ClientPtr /*client */ ,
129 unsigned int /*proto_n */ ,
130 char * /*auth_proto */ ,
131 unsigned int /*string_n */ ,
132 char * /*auth_string */ );
133
134extern _X_EXPORT Bool EstablishNewConnections(ClientPtr /*clientUnused */ ,
135 pointer /*closure */ );
136
137extern _X_EXPORT void CheckConnections(void);
138
139extern _X_EXPORT void CloseDownConnection(ClientPtr /*client */ );
140
141extern _X_EXPORT void AddGeneralSocket(int /*fd */ );
142
143extern _X_EXPORT void RemoveGeneralSocket(int /*fd */ );
144
145extern _X_EXPORT void AddEnabledDevice(int /*fd */ );
146
147extern _X_EXPORT void RemoveEnabledDevice(int /*fd */ );
148
149extern _X_EXPORT int OnlyListenToOneClient(ClientPtr /*client */ );
150
151extern _X_EXPORT void ListenToAllClients(void);
152
153extern _X_EXPORT void IgnoreClient(ClientPtr /*client */ );
154
155extern _X_EXPORT void AttendClient(ClientPtr /*client */ );
156
157extern _X_EXPORT void MakeClientGrabImpervious(ClientPtr /*client */ );
158
159extern _X_EXPORT void MakeClientGrabPervious(ClientPtr /*client */ );
160
161#ifdef XQUARTZ
162extern void ListenOnOpenFD(int /* fd */ , int /* noxauth */ );
163#endif
164
165extern _X_EXPORT CARD32 GetTimeInMillis(void);
166
167extern _X_EXPORT void AdjustWaitForDelay(pointer /*waitTime */ ,
168 unsigned long /*newdelay */ );
169
170typedef struct _OsTimerRec *OsTimerPtr;
171
172typedef CARD32 (*OsTimerCallback) (OsTimerPtr /* timer */ ,
173 CARD32 /* time */ ,
174 pointer /* arg */ );
175
176extern _X_EXPORT void TimerInit(void);
177
178extern _X_EXPORT Bool TimerForce(OsTimerPtr /* timer */ );
179
180#define TimerAbsolute (1<<0)
181#define TimerForceOld (1<<1)
182
183extern _X_EXPORT OsTimerPtr TimerSet(OsTimerPtr /* timer */ ,
184 int /* flags */ ,
185 CARD32 /* millis */ ,
186 OsTimerCallback /* func */ ,
187 pointer /* arg */ );
188
189extern _X_EXPORT void TimerCheck(void);
190extern _X_EXPORT void TimerCancel(OsTimerPtr /* pTimer */ );
191extern _X_EXPORT void TimerFree(OsTimerPtr /* pTimer */ );
192
193extern _X_EXPORT void SetScreenSaverTimer(void);
194extern _X_EXPORT void FreeScreenSaverTimer(void);
195
196extern _X_EXPORT void AutoResetServer(int /*sig */ );
197
198extern _X_EXPORT void GiveUp(int /*sig */ );
199
200extern _X_EXPORT void UseMsg(void);
201
202extern _X_EXPORT void ProcessCommandLine(int /*argc */ , char * /*argv */ []);
203
204extern _X_EXPORT int set_font_authorizations(char ** /* authorizations */ ,
205 int * /*authlen */ ,
206 pointer /* client */ );
207
208#ifndef _HAVE_XALLOC_DECLS
209#define _HAVE_XALLOC_DECLS
210
211/*
212 * Use malloc(3) instead.
213 */
214extern _X_EXPORT void *
215Xalloc(unsigned long /*amount */ ) _X_DEPRECATED;
216
217/*
218 * Use calloc(3) instead
219 */
220extern _X_EXPORT void *
221Xcalloc(unsigned long /*amount */ ) _X_DEPRECATED;
222
223/*
224 * Use realloc(3) instead
225 */
226extern _X_EXPORT void *
227Xrealloc(void * /*ptr */ , unsigned long /*amount */ )
228 _X_DEPRECATED;
229
230/*
231 * Use free(3) instead
232 */
233extern _X_EXPORT void
234Xfree(void * /*ptr */ )
235 _X_DEPRECATED;
236
237#endif
238
239/*
240 * This function malloc(3)s buffer, terminating the server if there is not
241 * enough memory.
242 */
243extern _X_EXPORT void *
244XNFalloc(unsigned long /*amount */ );
245
246/*
247 * This function calloc(3)s buffer, terminating the server if there is not
248 * enough memory.
249 */
250extern _X_EXPORT void *
251XNFcalloc(unsigned long /*amount */ );
252
253/*
254 * This function realloc(3)s passed buffer, terminating the server if there is
255 * not enough memory.
256 */
257extern _X_EXPORT void *
258XNFrealloc(void * /*ptr */ , unsigned long /*amount */ );
259
260/*
261 * This function strdup(3)s passed string. The only difference from the library
262 * function that it is safe to pass NULL, as NULL will be returned.
263 */
264extern _X_EXPORT char *
265Xstrdup(const char *s);
266
267/*
268 * This function strdup(3)s passed string, terminating the server if there is
269 * not enough memory. If NULL is passed to this function, NULL is returned.
270 */
271extern _X_EXPORT char *
272XNFstrdup(const char *s);
273
274/* Include new X*asprintf API */
275#include "Xprintf.h"
276
277/* Older api deprecated in favor of the asprintf versions */
278extern _X_EXPORT char *
279Xprintf(const char *fmt, ...)
280_X_ATTRIBUTE_PRINTF(1, 2)
281 _X_DEPRECATED;
282extern _X_EXPORT char *
283Xvprintf(const char *fmt, va_list va)
284_X_ATTRIBUTE_PRINTF(1, 0)
285 _X_DEPRECATED;
286extern _X_EXPORT char *
287XNFprintf(const char *fmt, ...)
288_X_ATTRIBUTE_PRINTF(1, 2)
289 _X_DEPRECATED;
290extern _X_EXPORT char *
291XNFvprintf(const char *fmt, va_list va)
292_X_ATTRIBUTE_PRINTF(1, 0)
293 _X_DEPRECATED;
294
295typedef void (*OsSigHandlerPtr) (int /* sig */ );
296typedef int (*OsSigWrapperPtr) (int /* sig */ );
297
298extern _X_EXPORT OsSigHandlerPtr
299OsSignal(int /* sig */ , OsSigHandlerPtr /* handler */ );
300extern _X_EXPORT OsSigWrapperPtr
301OsRegisterSigWrapper(OsSigWrapperPtr newWrap);
302
303extern _X_EXPORT int auditTrailLevel;
304
305extern _X_EXPORT void
306LockServer(void);
307extern _X_EXPORT void
308UnlockServer(void);
309
310extern _X_EXPORT int
311OsLookupColor(int /*screen */ ,
312 char * /*name */ ,
313 unsigned /*len */ ,
314 unsigned short * /*pred */ ,
315 unsigned short * /*pgreen */ ,
316 unsigned short * /*pblue */ );
317
318extern _X_EXPORT void
319OsInit(void);
320
321extern _X_EXPORT void
322OsCleanup(Bool);
323
324extern _X_EXPORT void
325OsVendorFatalError(const char *f, va_list args)
326_X_ATTRIBUTE_PRINTF(1, 0);
327
328extern _X_EXPORT void
329OsVendorInit(void);
330
331extern _X_EXPORT void
332OsBlockSignals(void);
333
334extern _X_EXPORT void
335OsReleaseSignals(void);
336
337extern _X_EXPORT int
338OsBlockSIGIO(void);
339
340extern _X_EXPORT void
341OsReleaseSIGIO(void);
342
343extern void
344OsResetSignals(void);
345
346extern _X_EXPORT void
347OsAbort(void)
348 _X_NORETURN;
349
350#if !defined(WIN32)
351extern _X_EXPORT int
352System(const char *);
353extern _X_EXPORT pointer
354Popen(const char *, const char *);
355extern _X_EXPORT int
356Pclose(pointer);
357extern _X_EXPORT pointer
358Fopen(const char *, const char *);
359extern _X_EXPORT int
360Fclose(pointer);
361#else
362
363extern const char *
364Win32TempDir(void);
365
366extern int
367System(const char *cmdline);
368
369#define Fopen(a,b) fopen(a,b)
370#define Fclose(a) fclose(a)
371#endif
372
373extern _X_EXPORT void
374CheckUserParameters(int argc, char **argv, char **envp);
375extern _X_EXPORT void
376CheckUserAuthorization(void);
377
378extern _X_EXPORT int
379AddHost(ClientPtr /*client */ ,
380 int /*family */ ,
381 unsigned /*length */ ,
382 const void * /*pAddr */ );
383
384extern _X_EXPORT Bool
385ForEachHostInFamily(int /*family */ ,
386 Bool (* /*func */ )(
387 unsigned char * /* addr */ ,
388 short /* len */ ,
389 pointer /* closure */ ),
390 pointer /*closure */ );
391
392extern _X_EXPORT int
393RemoveHost(ClientPtr /*client */ ,
394 int /*family */ ,
395 unsigned /*length */ ,
396 pointer /*pAddr */ );
397
398extern _X_EXPORT int
399GetHosts(pointer * /*data */ ,
400 int * /*pnHosts */ ,
401 int * /*pLen */ ,
402 BOOL * /*pEnabled */ );
403
404typedef struct sockaddr *sockaddrPtr;
405
406extern _X_EXPORT int
407InvalidHost(sockaddrPtr /*saddr */ , int /*len */ , ClientPtr client);
408
409extern _X_EXPORT int
410LocalClient(ClientPtr /* client */ );
411
412extern _X_EXPORT int
413LocalClientCred(ClientPtr, int *, int *);
414
415#define LCC_UID_SET (1 << 0)
416#define LCC_GID_SET (1 << 1)
417#define LCC_PID_SET (1 << 2)
418#define LCC_ZID_SET (1 << 3)
419
420typedef struct {
421 int fieldsSet; /* Bit mask of fields set */
422 int euid; /* Effective uid */
423 int egid; /* Primary effective group id */
424 int nSuppGids; /* Number of supplementary group ids */
425 int *pSuppGids; /* Array of supplementary group ids */
426 int pid; /* Process id */
427 int zoneid; /* Only set on Solaris 10 & later */
428} LocalClientCredRec;
429
430extern _X_EXPORT int
431GetLocalClientCreds(ClientPtr, LocalClientCredRec **);
432extern _X_EXPORT void
433FreeLocalClientCreds(LocalClientCredRec *);
434
435extern _X_EXPORT int
436ChangeAccessControl(ClientPtr /*client */ , int /*fEnabled */ );
437
438extern _X_EXPORT int
439GetAccessControl(void);
440
441extern _X_EXPORT void
442AddLocalHosts(void);
443
444extern _X_EXPORT void
445ResetHosts(char *display);
446
447extern _X_EXPORT void
448EnableLocalHost(void);
449
450extern _X_EXPORT void
451DisableLocalHost(void);
452
453extern _X_EXPORT void
454AccessUsingXdmcp(void);
455
456extern _X_EXPORT void
457DefineSelf(int /*fd */ );
458
459#if XDMCP
460extern _X_EXPORT void
461AugmentSelf(pointer /*from */ , int /*len */ );
462
463extern _X_EXPORT void
464RegisterAuthorizations(void);
465#endif
466
467extern _X_EXPORT void
468InitAuthorization(char * /*filename */ );
469
470/* extern int LoadAuthorization(void); */
471
472extern _X_EXPORT int
473AuthorizationFromID(XID id,
474 unsigned short *name_lenp,
475 const char **namep,
476 unsigned short *data_lenp, char **datap);
477
478extern _X_EXPORT XID
479CheckAuthorization(unsigned int /*namelength */ ,
480 const char * /*name */ ,
481 unsigned int /*datalength */ ,
482 const char * /*data */ ,
483 ClientPtr /*client */ ,
484 const char ** /*reason */
485 );
486
487extern _X_EXPORT void
488ResetAuthorization(void);
489
490extern _X_EXPORT int
491RemoveAuthorization(unsigned short name_length,
492 const char *name,
493 unsigned short data_length, const char *data);
494
495extern _X_EXPORT int
496AddAuthorization(unsigned int /*name_length */ ,
497 const char * /*name */ ,
498 unsigned int /*data_length */ ,
499 char * /*data */ );
500
501#ifdef XCSECURITY
502extern _X_EXPORT XID
503GenerateAuthorization(unsigned int /* name_length */ ,
504 const char * /* name */ ,
505 unsigned int /* data_length */ ,
506 const char * /* data */ ,
507 unsigned int * /* data_length_return */ ,
508 char ** /* data_return */ );
509#endif
510
511extern _X_EXPORT int
512ddxProcessArgument(int /*argc */ , char * /*argv */ [], int /*i */ );
513
514extern _X_EXPORT void
515ddxUseMsg(void);
516
517/* stuff for ReplyCallback */
518extern _X_EXPORT CallbackListPtr ReplyCallback;
519typedef struct {
520 ClientPtr client;
521 const void *replyData;
522 unsigned long dataLenBytes; /* actual bytes from replyData + pad bytes */
523 unsigned long bytesRemaining;
524 Bool startOfReply;
525 unsigned long padBytes; /* pad bytes from zeroed array */
526} ReplyInfoRec;
527
528/* stuff for FlushCallback */
529extern _X_EXPORT CallbackListPtr FlushCallback;
530
531enum ExitCode {
532 EXIT_NO_ERROR = 0,
533 EXIT_ERR_ABORT = 1,
534 EXIT_ERR_CONFIGURE = 2,
535 EXIT_ERR_DRIVERS = 3,
536};
537
538extern _X_EXPORT void
539AbortDDX(enum ExitCode error);
540extern _X_EXPORT void
541ddxGiveUp(enum ExitCode error);
542extern _X_EXPORT int
543TimeSinceLastInputEvent(void);
544
545/* strcasecmp.c */
546#ifndef HAVE_STRCASECMP
547#define strcasecmp xstrcasecmp
548extern _X_EXPORT int
549xstrcasecmp(const char *s1, const char *s2);
550#endif
551
552#ifndef HAVE_STRNCASECMP
553#define strncasecmp xstrncasecmp
554extern _X_EXPORT int
555xstrncasecmp(const char *s1, const char *s2, size_t n);
556#endif
557
558#ifndef HAVE_STRCASESTR
559#define strcasestr xstrcasestr
560extern _X_EXPORT char *
561xstrcasestr(const char *s, const char *find);
562#endif
563
564#ifndef HAVE_STRLCPY
565extern _X_EXPORT size_t
566strlcpy(char *dst, const char *src, size_t siz);
567extern _X_EXPORT size_t
568strlcat(char *dst, const char *src, size_t siz);
569#endif
570
571#ifndef HAVE_STRNDUP
572extern _X_EXPORT char *
573strndup(const char *str, size_t n);
574#endif
575
576/* Logging. */
577typedef enum _LogParameter {
578 XLOG_FLUSH,
579 XLOG_SYNC,
580 XLOG_VERBOSITY,
581 XLOG_FILE_VERBOSITY
582} LogParameter;
583
584/* Flags for log messages. */
585typedef enum {
586 X_PROBED, /* Value was probed */
587 X_CONFIG, /* Value was given in the config file */
588 X_DEFAULT, /* Value is a default */
589 X_CMDLINE, /* Value was given on the command line */
590 X_NOTICE, /* Notice */
591 X_ERROR, /* Error message */
592 X_WARNING, /* Warning message */
593 X_INFO, /* Informational message */
594 X_NONE, /* No prefix */
595 X_NOT_IMPLEMENTED, /* Not implemented */
596 X_DEBUG, /* Debug message */
597 X_UNKNOWN = -1 /* unknown -- this must always be last */
598} MessageType;
599
600extern _X_EXPORT const char *
601LogInit(const char *fname, const char *backup);
602extern _X_EXPORT void
603LogClose(enum ExitCode error);
604extern _X_EXPORT Bool
605LogSetParameter(LogParameter param, int value);
606extern _X_EXPORT void
607LogVWrite(int verb, const char *f, va_list args)
608_X_ATTRIBUTE_PRINTF(2, 0);
609extern _X_EXPORT void
610LogWrite(int verb, const char *f, ...)
611_X_ATTRIBUTE_PRINTF(2, 3);
612extern _X_EXPORT void
613LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
614_X_ATTRIBUTE_PRINTF(3, 0);
615extern _X_EXPORT void
616LogMessageVerb(MessageType type, int verb, const char *format, ...)
617_X_ATTRIBUTE_PRINTF(3, 4);
618extern _X_EXPORT void
619LogMessage(MessageType type, const char *format, ...)
620_X_ATTRIBUTE_PRINTF(2, 3);
621extern _X_EXPORT void
622LogMessageVerbSigSafe(MessageType type, int verb, const char *format, ...)
623_X_ATTRIBUTE_PRINTF(3, 4);
624extern _X_EXPORT void
625LogVMessageVerbSigSafe(MessageType type, int verb, const char *format, va_list args)
626_X_ATTRIBUTE_PRINTF(3, 0);
627
628extern _X_EXPORT void
629LogVHdrMessageVerb(MessageType type, int verb,
630 const char *msg_format, va_list msg_args,
631 const char *hdr_format, va_list hdr_args)
632_X_ATTRIBUTE_PRINTF(3, 0)
633_X_ATTRIBUTE_PRINTF(5, 0);
634extern _X_EXPORT void
635LogHdrMessageVerb(MessageType type, int verb,
636 const char *msg_format, va_list msg_args,
637 const char *hdr_format, ...)
638_X_ATTRIBUTE_PRINTF(3, 0)
639_X_ATTRIBUTE_PRINTF(5, 6);
640extern _X_EXPORT void
641LogHdrMessage(MessageType type, const char *msg_format,
642 va_list msg_args, const char *hdr_format, ...)
643_X_ATTRIBUTE_PRINTF(2, 0)
644_X_ATTRIBUTE_PRINTF(4, 5);
645
646extern _X_EXPORT void
647FreeAuditTimer(void);
648extern _X_EXPORT void
649AuditF(const char *f, ...)
650_X_ATTRIBUTE_PRINTF(1, 2);
651extern _X_EXPORT void
652VAuditF(const char *f, va_list args)
653_X_ATTRIBUTE_PRINTF(1, 0);
654extern _X_EXPORT void
655FatalError(const char *f, ...)
656_X_ATTRIBUTE_PRINTF(1, 2)
657 _X_NORETURN;
658
659#ifdef DEBUG
660#define DebugF ErrorF
661#else
662#define DebugF(...) /* */
663#endif
664
665extern _X_EXPORT void
666VErrorF(const char *f, va_list args)
667_X_ATTRIBUTE_PRINTF(1, 0);
668extern _X_EXPORT void
669ErrorF(const char *f, ...)
670_X_ATTRIBUTE_PRINTF(1, 2);
671extern _X_EXPORT void
672VErrorFSigSafe(const char *f, va_list args)
673_X_ATTRIBUTE_PRINTF(1, 0);
674extern _X_EXPORT void
675ErrorFSigSafe(const char *f, ...)
676_X_ATTRIBUTE_PRINTF(1, 2);
677extern _X_EXPORT void
678LogPrintMarkers(void);
679
680extern _X_EXPORT void
681xorg_backtrace(void);
682
683#endif /* OS_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette