VirtualBox

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

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

Additions/X11: build vboxvideo_drv.so for X.Org Server 1.14.

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

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