1 //! PSP C type definitions
2 //!
3 //! These type declarations are not enough, as they must be ultimately resolved
4 //! by the linker. Crates that use these definitions must, somewhere in the
5 //! crate graph, include a stub provider crate such as the `psp` crate.
6 
7 pub type c_schar = i8;
8 pub type c_uchar = u8;
9 pub type c_short = i16;
10 pub type c_ushort = u16;
11 pub type c_int = i32;
12 pub type c_uint = u32;
13 pub type c_float = f32;
14 pub type c_double = f64;
15 pub type c_longlong = i64;
16 pub type c_ulonglong = u64;
17 pub type intmax_t = i64;
18 pub type uintmax_t = u64;
19 
20 pub type size_t = usize;
21 pub type ptrdiff_t = isize;
22 pub type intptr_t = isize;
23 pub type uintptr_t = usize;
24 pub type ssize_t = isize;
25 
26 pub type c_char = u8;
27 pub type c_long = i64;
28 pub type c_ulong = u64;
29 
30 cfg_if! {
31     if #[cfg(libc_core_cvoid)] {
32         pub use ::ffi::c_void;
33     } else {
34         // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
35         // enable more optimization opportunities around it recognizing things
36         // like malloc/free.
37         #[repr(u8)]
38         #[allow(missing_copy_implementations)]
39         #[allow(missing_debug_implementations)]
40         pub enum c_void {
41             // Two dummy variants so the #[repr] attribute can be used.
42             #[doc(hidden)]
43             __variant1,
44             #[doc(hidden)]
45             __variant2,
46         }
47     }
48 }
49 
50 pub type SceKernelVTimerHandler = unsafe extern "C" fn(
51     uid: SceUid,
52     arg1: *mut SceKernelSysClock,
53     arg2: *mut SceKernelSysClock,
54     arg3: *mut c_void,
55 ) -> u32;
56 
57 pub type SceKernelVTimerHandlerWide =
58     unsafe extern "C" fn(uid: SceUid, arg1: i64, arg2: i64, arg3: *mut c_void) -> u32;
59 
60 pub type SceKernelThreadEventHandler =
61     unsafe extern "C" fn(mask: i32, thid: SceUid, common: *mut c_void) -> i32;
62 
63 pub type SceKernelAlarmHandler = unsafe extern "C" fn(common: *mut c_void) -> u32;
64 
65 pub type SceKernelCallbackFunction =
66     unsafe extern "C" fn(arg1: i32, arg2: i32, arg: *mut c_void) -> i32;
67 
68 pub type SceKernelThreadEntry = unsafe extern "C" fn(args: usize, argp: *mut c_void) -> i32;
69 
70 pub type PowerCallback = extern "C" fn(unknown: i32, power_info: i32);
71 
72 pub type IoPermissions = i32;
73 
74 pub type UmdCallback = fn(unknown: i32, event: i32) -> i32;
75 
76 pub type SceMpegRingbufferCb =
77     ::Option<unsafe extern "C" fn(data: *mut c_void, num_packets: i32, param: *mut c_void) -> i32>;
78 
79 pub type GuCallback = ::Option<extern "C" fn(id: i32, arg: *mut c_void)>;
80 pub type GuSwapBuffersCallback =
81     ::Option<extern "C" fn(display: *mut *mut c_void, render: *mut *mut c_void)>;
82 
83 pub type SceNetAdhocctlHandler =
84     ::Option<unsafe extern "C" fn(flag: i32, error: i32, unknown: *mut c_void)>;
85 
86 pub type AdhocMatchingCallback = ::Option<
87     unsafe extern "C" fn(
88         matching_id: i32,
89         event: i32,
90         mac: *mut u8,
91         opt_len: i32,
92         opt_data: *mut c_void,
93     ),
94 >;
95 
96 pub type SceNetApctlHandler = ::Option<
97     unsafe extern "C" fn(oldState: i32, newState: i32, event: i32, error: i32, pArg: *mut c_void),
98 >;
99 
100 pub type HttpMallocFunction = ::Option<unsafe extern "C" fn(size: usize) -> *mut c_void>;
101 pub type HttpReallocFunction =
102     ::Option<unsafe extern "C" fn(p: *mut c_void, size: usize) -> *mut c_void>;
103 pub type HttpFreeFunction = ::Option<unsafe extern "C" fn(p: *mut c_void)>;
104 pub type HttpPasswordCB = ::Option<
105     unsafe extern "C" fn(
106         request: i32,
107         auth_type: HttpAuthType,
108         realm: *const u8,
109         username: *mut u8,
110         password: *mut u8,
111         need_entity: i32,
112         entity_body: *mut *mut u8,
113         entity_size: *mut usize,
114         save: *mut i32,
115     ) -> i32,
116 >;
117 
118 pub type socklen_t = u32;
119 
120 e! {
121     #[repr(u32)]
122     pub enum AudioFormat {
123         Stereo = 0,
124         Mono = 0x10,
125     }
126 
127     #[repr(u32)]
128     pub enum DisplayMode {
129         Lcd = 0,
130     }
131 
132     #[repr(u32)]
133     pub enum DisplayPixelFormat {
134         Psm5650 = 0,
135         Psm5551 = 1,
136         Psm4444 = 2,
137         Psm8888 = 3,
138     }
139 
140     #[repr(u32)]
141     pub enum DisplaySetBufSync {
142         Immediate = 0,
143         NextFrame = 1,
144     }
145 
146     #[repr(i32)]
147     pub enum AudioOutputFrequency {
148         Khz48 = 48000,
149         Khz44_1 = 44100,
150         Khz32 = 32000,
151         Khz24 = 24000,
152         Khz22_05 = 22050,
153         Khz16 = 16000,
154         Khz12 = 12000,
155         Khz11_025 = 11025,
156         Khz8 = 8000,
157     }
158 
159     #[repr(i32)]
160     pub enum AudioInputFrequency {
161         Khz44_1 = 44100,
162         Khz22_05 = 22050,
163         Khz11_025 = 11025,
164     }
165 
166     #[repr(u32)]
167     pub enum CtrlMode {
168         Digital = 0,
169         Analog,
170     }
171 
172     #[repr(i32)]
173     pub enum GeMatrixType {
174         Bone0 = 0,
175         Bone1,
176         Bone2,
177         Bone3,
178         Bone4,
179         Bone5,
180         Bone6,
181         Bone7,
182         World,
183         View,
184         Projection,
185         TexGen,
186     }
187 
188     #[repr(i32)]
189     pub enum GeListState {
190         Done = 0,
191         Queued,
192         DrawingDone,
193         StallReached,
194         CancelDone,
195     }
196 
197     #[repr(u8)]
198     pub enum GeCommand {
199         Nop = 0,
200         Vaddr = 0x1,
201         Iaddr = 0x2,
202         Prim = 0x4,
203         Bezier = 0x5,
204         Spline = 0x6,
205         BoundingBox = 0x7,
206         Jump = 0x8,
207         BJump = 0x9,
208         Call = 0xa,
209         Ret = 0xb,
210         End = 0xc,
211         Signal = 0xe,
212         Finish = 0xf,
213         Base = 0x10,
214         VertexType = 0x12,
215         OffsetAddr = 0x13,
216         Origin = 0x14,
217         Region1 = 0x15,
218         Region2 = 0x16,
219         LightingEnable = 0x17,
220         LightEnable0 = 0x18,
221         LightEnable1 = 0x19,
222         LightEnable2 = 0x1a,
223         LightEnable3 = 0x1b,
224         DepthClampEnable = 0x1c,
225         CullFaceEnable = 0x1d,
226         TextureMapEnable = 0x1e,
227         FogEnable = 0x1f,
228         DitherEnable = 0x20,
229         AlphaBlendEnable = 0x21,
230         AlphaTestEnable = 0x22,
231         ZTestEnable = 0x23,
232         StencilTestEnable = 0x24,
233         AntiAliasEnable = 0x25,
234         PatchCullEnable = 0x26,
235         ColorTestEnable = 0x27,
236         LogicOpEnable = 0x28,
237         BoneMatrixNumber = 0x2a,
238         BoneMatrixData = 0x2b,
239         MorphWeight0 = 0x2c,
240         MorphWeight1 = 0x2d,
241         MorphWeight2 = 0x2e,
242         MorphWeight3 = 0x2f,
243         MorphWeight4 = 0x30,
244         MorphWeight5 = 0x31,
245         MorphWeight6 = 0x32,
246         MorphWeight7 = 0x33,
247         PatchDivision = 0x36,
248         PatchPrimitive = 0x37,
249         PatchFacing = 0x38,
250         WorldMatrixNumber = 0x3a,
251         WorldMatrixData = 0x3b,
252         ViewMatrixNumber = 0x3c,
253         ViewMatrixData = 0x3d,
254         ProjMatrixNumber = 0x3e,
255         ProjMatrixData = 0x3f,
256         TGenMatrixNumber = 0x40,
257         TGenMatrixData = 0x41,
258         ViewportXScale = 0x42,
259         ViewportYScale = 0x43,
260         ViewportZScale = 0x44,
261         ViewportXCenter = 0x45,
262         ViewportYCenter = 0x46,
263         ViewportZCenter = 0x47,
264         TexScaleU = 0x48,
265         TexScaleV = 0x49,
266         TexOffsetU = 0x4a,
267         TexOffsetV = 0x4b,
268         OffsetX = 0x4c,
269         OffsetY = 0x4d,
270         ShadeMode = 0x50,
271         ReverseNormal = 0x51,
272         MaterialUpdate = 0x53,
273         MaterialEmissive = 0x54,
274         MaterialAmbient = 0x55,
275         MaterialDiffuse = 0x56,
276         MaterialSpecular = 0x57,
277         MaterialAlpha = 0x58,
278         MaterialSpecularCoef = 0x5b,
279         AmbientColor = 0x5c,
280         AmbientAlpha = 0x5d,
281         LightMode = 0x5e,
282         LightType0 = 0x5f,
283         LightType1 = 0x60,
284         LightType2 = 0x61,
285         LightType3 = 0x62,
286         Light0X = 0x63,
287         Light0Y,
288         Light0Z,
289         Light1X,
290         Light1Y,
291         Light1Z,
292         Light2X,
293         Light2Y,
294         Light2Z,
295         Light3X,
296         Light3Y,
297         Light3Z,
298         Light0DirectionX = 0x6f,
299         Light0DirectionY,
300         Light0DirectionZ,
301         Light1DirectionX,
302         Light1DirectionY,
303         Light1DirectionZ,
304         Light2DirectionX,
305         Light2DirectionY,
306         Light2DirectionZ,
307         Light3DirectionX,
308         Light3DirectionY,
309         Light3DirectionZ,
310         Light0ConstantAtten = 0x7b,
311         Light0LinearAtten,
312         Light0QuadtraticAtten,
313         Light1ConstantAtten,
314         Light1LinearAtten,
315         Light1QuadtraticAtten,
316         Light2ConstantAtten,
317         Light2LinearAtten,
318         Light2QuadtraticAtten,
319         Light3ConstantAtten,
320         Light3LinearAtten,
321         Light3QuadtraticAtten,
322         Light0ExponentAtten = 0x87,
323         Light1ExponentAtten,
324         Light2ExponentAtten,
325         Light3ExponentAtten,
326         Light0CutoffAtten = 0x8b,
327         Light1CutoffAtten,
328         Light2CutoffAtten,
329         Light3CutoffAtten,
330         Light0Ambient = 0x8f,
331         Light0Diffuse,
332         Light0Specular,
333         Light1Ambient,
334         Light1Diffuse,
335         Light1Specular,
336         Light2Ambient,
337         Light2Diffuse,
338         Light2Specular,
339         Light3Ambient,
340         Light3Diffuse,
341         Light3Specular,
342         Cull = 0x9b,
343         FrameBufPtr = 0x9c,
344         FrameBufWidth = 0x9d,
345         ZBufPtr = 0x9e,
346         ZBufWidth = 0x9f,
347         TexAddr0 = 0xa0,
348         TexAddr1,
349         TexAddr2,
350         TexAddr3,
351         TexAddr4,
352         TexAddr5,
353         TexAddr6,
354         TexAddr7,
355         TexBufWidth0 = 0xa8,
356         TexBufWidth1,
357         TexBufWidth2,
358         TexBufWidth3,
359         TexBufWidth4,
360         TexBufWidth5,
361         TexBufWidth6,
362         TexBufWidth7,
363         ClutAddr = 0xb0,
364         ClutAddrUpper = 0xb1,
365         TransferSrc,
366         TransferSrcW,
367         TransferDst,
368         TransferDstW,
369         TexSize0 = 0xb8,
370         TexSize1,
371         TexSize2,
372         TexSize3,
373         TexSize4,
374         TexSize5,
375         TexSize6,
376         TexSize7,
377         TexMapMode = 0xc0,
378         TexShadeLs = 0xc1,
379         TexMode = 0xc2,
380         TexFormat = 0xc3,
381         LoadClut = 0xc4,
382         ClutFormat = 0xc5,
383         TexFilter = 0xc6,
384         TexWrap = 0xc7,
385         TexLevel = 0xc8,
386         TexFunc = 0xc9,
387         TexEnvColor = 0xca,
388         TexFlush = 0xcb,
389         TexSync = 0xcc,
390         Fog1 = 0xcd,
391         Fog2 = 0xce,
392         FogColor = 0xcf,
393         TexLodSlope = 0xd0,
394         FramebufPixFormat = 0xd2,
395         ClearMode = 0xd3,
396         Scissor1 = 0xd4,
397         Scissor2 = 0xd5,
398         MinZ = 0xd6,
399         MaxZ = 0xd7,
400         ColorTest = 0xd8,
401         ColorRef = 0xd9,
402         ColorTestmask = 0xda,
403         AlphaTest = 0xdb,
404         StencilTest = 0xdc,
405         StencilOp = 0xdd,
406         ZTest = 0xde,
407         BlendMode = 0xdf,
408         BlendFixedA = 0xe0,
409         BlendFixedB = 0xe1,
410         Dith0 = 0xe2,
411         Dith1,
412         Dith2,
413         Dith3,
414         LogicOp = 0xe6,
415         ZWriteDisable = 0xe7,
416         MaskRgb = 0xe8,
417         MaskAlpha = 0xe9,
418         TransferStart = 0xea,
419         TransferSrcPos = 0xeb,
420         TransferDstPos = 0xec,
421         TransferSize = 0xee,
422         Vscx = 0xf0,
423         Vscy = 0xf1,
424         Vscz = 0xf2,
425         Vtcs = 0xf3,
426         Vtct = 0xf4,
427         Vtcq = 0xf5,
428         Vcv = 0xf6,
429         Vap = 0xf7,
430         Vfc = 0xf8,
431         Vscv = 0xf9,
432 
433         Unknown03 = 0x03,
434         Unknown0D = 0x0d,
435         Unknown11 = 0x11,
436         Unknown29 = 0x29,
437         Unknown34 = 0x34,
438         Unknown35 = 0x35,
439         Unknown39 = 0x39,
440         Unknown4E = 0x4e,
441         Unknown4F = 0x4f,
442         Unknown52 = 0x52,
443         Unknown59 = 0x59,
444         Unknown5A = 0x5a,
445         UnknownB6 = 0xb6,
446         UnknownB7 = 0xb7,
447         UnknownD1 = 0xd1,
448         UnknownED = 0xed,
449         UnknownEF = 0xef,
450         UnknownFA = 0xfa,
451         UnknownFB = 0xfb,
452         UnknownFC = 0xfc,
453         UnknownFD = 0xfd,
454         UnknownFE = 0xfe,
455         NopFF = 0xff,
456     }
457 
458     #[repr(i32)]
459     pub enum SceSysMemPartitionId {
460         SceKernelUnknownPartition = 0,
461         SceKernelPrimaryKernelPartition = 1,
462         SceKernelPrimaryUserPartition = 2,
463         SceKernelOtherKernelPartition1 = 3,
464         SceKernelOtherKernelPartition2 = 4,
465         SceKernelVshellPARTITION = 5,
466         SceKernelScUserPartition = 6,
467         SceKernelMeUserPartition = 7,
468         SceKernelExtendedScKernelPartition = 8,
469         SceKernelExtendedSc2KernelPartition = 9,
470         SceKernelExtendedMeKernelPartition = 10,
471         SceKernelVshellKernelPartition = 11,
472         SceKernelExtendedKernelPartition = 12,
473     }
474 
475     #[repr(i32)]
476     pub enum SceSysMemBlockTypes {
477         Low = 0,
478         High,
479         Addr,
480     }
481 
482     #[repr(u32)]
483     pub enum Interrupt {
484         Gpio = 4,
485         Ata = 5,
486         Umd = 6,
487         Mscm0 = 7,
488         Wlan = 8,
489         Audio = 10,
490         I2c = 12,
491         Sircs = 14,
492         Systimer0 = 15,
493         Systimer1 = 16,
494         Systimer2 = 17,
495         Systimer3 = 18,
496         Thread0 = 19,
497         Nand = 20,
498         Dmacplus = 21,
499         Dma0 = 22,
500         Dma1 = 23,
501         Memlmd = 24,
502         Ge = 25,
503         Vblank = 30,
504         Mecodec = 31,
505         Hpremote = 36,
506         Mscm1 = 60,
507         Mscm2 = 61,
508         Thread1 = 65,
509         Interrupt = 66,
510     }
511 
512     #[repr(u32)]
513     pub enum SubInterrupt {
514         Gpio = Interrupt::Gpio as u32,
515         Ata = Interrupt::Ata as u32,
516         Umd = Interrupt::Umd as u32,
517         Dmacplus = Interrupt::Dmacplus as u32,
518         Ge = Interrupt::Ge as u32,
519         Display = Interrupt::Vblank as u32,
520     }
521 
522     #[repr(u32)]
523     pub enum SceKernelIdListType {
524         Thread = 1,
525         Semaphore = 2,
526         EventFlag = 3,
527         Mbox = 4,
528         Vpl = 5,
529         Fpl = 6,
530         Mpipe = 7,
531         Callback = 8,
532         ThreadEventHandler = 9,
533         Alarm = 10,
534         VTimer = 11,
535         SleepThread = 64,
536         DelayThread = 65,
537         SuspendThread = 66,
538         DormantThread = 67,
539     }
540 
541     #[repr(i32)]
542     pub enum UsbCamResolution {
543         Px160_120 = 0,
544         Px176_144 = 1,
545         Px320_240 = 2,
546         Px352_288 = 3,
547         Px640_480 = 4,
548         Px1024_768 = 5,
549         Px1280_960 = 6,
550         Px480_272 = 7,
551         Px360_272 = 8,
552     }
553 
554     #[repr(i32)]
555     pub enum UsbCamResolutionEx {
556         Px160_120 = 0,
557         Px176_144 = 1,
558         Px320_240 = 2,
559         Px352_288 = 3,
560         Px360_272 = 4,
561         Px480_272 = 5,
562         Px640_480 = 6,
563         Px1024_768 = 7,
564         Px1280_960 = 8,
565     }
566 
567     #[repr(i32)]
568     pub enum UsbCamDelay {
569         NoDelay = 0,
570         Delay10Sec = 1,
571         Delay20Sec = 2,
572         Delay30Sec = 3,
573     }
574 
575     #[repr(i32)]
576     pub enum UsbCamFrameRate {
577         Fps3_75 = 0,
578         Fps5 = 1,
579         Fps7_5 = 2,
580         Fps10 = 3,
581         Fps15 = 4,
582         Fps20 = 5,
583         Fps30 = 6,
584         Fps60 = 7,
585     }
586 
587     #[repr(i32)]
588     pub enum UsbCamWb {
589         Auto = 0,
590         Daylight = 1,
591         Fluorescent = 2,
592         Incadescent = 3,
593     }
594 
595     #[repr(i32)]
596     pub enum UsbCamEffectMode {
597         Normal = 0,
598         Negative = 1,
599         Blackwhite = 2,
600         Sepia = 3,
601         Blue = 4,
602         Red = 5,
603         Green = 6,
604     }
605 
606     #[repr(i32)]
607     pub enum UsbCamEvLevel {
608         Pos2_0 = 0,
609         Pos1_7 = 1,
610         Pos1_5 = 2,
611         Pos1_3 = 3,
612         Pos1_0 = 4,
613         Pos0_7 = 5,
614         Pos0_5 = 6,
615         Pos0_3 = 7,
616         Zero = 8,
617         Neg0_3,
618         Neg0_5,
619         Neg0_7,
620         Neg1_0,
621         Neg1_3,
622         Neg1_5,
623         Neg1_7,
624         Neg2_0,
625     }
626 
627     #[repr(i32)]
628     pub enum RtcCheckValidError {
629         InvalidYear = -1,
630         InvalidMonth = -2,
631         InvalidDay = -3,
632         InvalidHour = -4,
633         InvalidMinutes = -5,
634         InvalidSeconds = -6,
635         InvalidMicroseconds = -7,
636     }
637 
638     #[repr(u32)]
639     pub enum PowerTick {
640         All = 0,
641         Suspend = 1,
642         Display = 6,
643     }
644 
645     #[repr(u32)]
646     pub enum IoAssignPerms {
647         RdWr = 0,
648         RdOnly = 1,
649     }
650 
651     #[repr(u32)]
652     pub enum IoWhence {
653         Set = 0,
654         Cur = 1,
655         End = 2,
656     }
657 
658     #[repr(u32)]
659     pub enum UmdType {
660         Game = 0x10,
661         Video = 0x20,
662         Audio = 0x40,
663     }
664 
665     #[repr(u32)]
666     pub enum GuPrimitive {
667         Points = 0,
668         Lines = 1,
669         LineStrip = 2,
670         Triangles = 3,
671         TriangleStrip = 4,
672         TriangleFan = 5,
673         Sprites = 6,
674     }
675 
676     #[repr(u32)]
677     pub enum PatchPrimitive {
678         Points = 0,
679         LineStrip = 2,
680         TriangleStrip = 4,
681     }
682 
683     #[repr(u32)]
684     pub enum GuState {
685         AlphaTest = 0,
686         DepthTest = 1,
687         ScissorTest = 2,
688         StencilTest = 3,
689         Blend = 4,
690         CullFace = 5,
691         Dither = 6,
692         Fog = 7,
693         ClipPlanes = 8,
694         Texture2D = 9,
695         Lighting = 10,
696         Light0 = 11,
697         Light1 = 12,
698         Light2 = 13,
699         Light3 = 14,
700         LineSmooth = 15,
701         PatchCullFace = 16,
702         ColorTest = 17,
703         ColorLogicOp = 18,
704         FaceNormalReverse = 19,
705         PatchFace = 20,
706         Fragment2X = 21,
707     }
708 
709     #[repr(u32)]
710     pub enum MatrixMode {
711         Projection = 0,
712         View = 1,
713         Model = 2,
714         Texture = 3,
715     }
716 
717     #[repr(u32)]
718     pub enum TexturePixelFormat {
719         Psm5650 = 0,
720         Psm5551 = 1,
721         Psm4444 = 2,
722         Psm8888 = 3,
723         PsmT4 = 4,
724         PsmT8 = 5,
725         PsmT16 = 6,
726         PsmT32 = 7,
727         PsmDxt1 = 8,
728         PsmDxt3 = 9,
729         PsmDxt5 = 10,
730     }
731 
732     #[repr(u32)]
733     pub enum SplineMode {
734         FillFill = 0,
735         OpenFill = 1,
736         FillOpen = 2,
737         OpenOpen = 3,
738     }
739 
740     #[repr(u32)]
741     pub enum ShadingModel {
742         Flat = 0,
743         Smooth = 1,
744     }
745 
746     #[repr(u32)]
747     pub enum LogicalOperation {
748         Clear = 0,
749         And = 1,
750         AndReverse = 2,
751         Copy = 3,
752         AndInverted = 4,
753         Noop = 5,
754         Xor = 6,
755         Or = 7,
756         Nor = 8,
757         Equiv = 9,
758         Inverted = 10,
759         OrReverse = 11,
760         CopyInverted = 12,
761         OrInverted = 13,
762         Nand = 14,
763         Set = 15,
764     }
765 
766     #[repr(u32)]
767     pub enum TextureFilter {
768         Nearest = 0,
769         Linear = 1,
770         NearestMipmapNearest = 4,
771         LinearMipmapNearest = 5,
772         NearestMipmapLinear = 6,
773         LinearMipmapLinear = 7,
774     }
775 
776     #[repr(u32)]
777     pub enum TextureMapMode {
778         TextureCoords = 0,
779         TextureMatrix = 1,
780         EnvironmentMap = 2,
781     }
782 
783     #[repr(u32)]
784     pub enum TextureLevelMode {
785         Auto = 0,
786         Const = 1,
787         Slope = 2,
788     }
789 
790     #[repr(u32)]
791     pub enum TextureProjectionMapMode {
792         Position = 0,
793         Uv = 1,
794         NormalizedNormal = 2,
795         Normal = 3,
796     }
797 
798     #[repr(u32)]
799     pub enum GuTexWrapMode {
800         Repeat = 0,
801         Clamp = 1,
802     }
803 
804     #[repr(u32)]
805     pub enum FrontFaceDirection {
806         Clockwise = 0,
807         CounterClockwise = 1,
808     }
809 
810     #[repr(u32)]
811     pub enum AlphaFunc {
812         Never = 0,
813         Always,
814         Equal,
815         NotEqual,
816         Less,
817         LessOrEqual,
818         Greater,
819         GreaterOrEqual,
820     }
821 
822     #[repr(u32)]
823     pub enum StencilFunc {
824         Never = 0,
825         Always,
826         Equal,
827         NotEqual,
828         Less,
829         LessOrEqual,
830         Greater,
831         GreaterOrEqual,
832     }
833 
834     #[repr(u32)]
835     pub enum ColorFunc {
836         Never = 0,
837         Always,
838         Equal,
839         NotEqual,
840     }
841 
842     #[repr(u32)]
843     pub enum DepthFunc {
844         Never = 0,
845         Always,
846         Equal,
847         NotEqual,
848         Less,
849         LessOrEqual,
850         Greater,
851         GreaterOrEqual,
852     }
853 
854     #[repr(u32)]
855     pub enum TextureEffect {
856         Modulate = 0,
857         Decal = 1,
858         Blend = 2,
859         Replace = 3,
860         Add = 4,
861     }
862 
863     #[repr(u32)]
864     pub enum TextureColorComponent {
865         Rgb = 0,
866         Rgba = 1,
867     }
868 
869     #[repr(u32)]
870     pub enum MipmapLevel {
871         None = 0,
872         Level1,
873         Level2,
874         Level3,
875         Level4,
876         Level5,
877         Level6,
878         Level7,
879     }
880 
881     #[repr(u32)]
882     pub enum BlendOp {
883         Add = 0,
884         Subtract = 1,
885         ReverseSubtract = 2,
886         Min = 3,
887         Max = 4,
888         Abs = 5,
889     }
890 
891     #[repr(u32)]
892     pub enum BlendSrc {
893         SrcColor = 0,
894         OneMinusSrcColor = 1,
895         SrcAlpha = 2,
896         OneMinusSrcAlpha = 3,
897         Fix = 10,
898     }
899 
900     #[repr(u32)]
901     pub enum BlendDst {
902         DstColor = 0,
903         OneMinusDstColor = 1,
904         DstAlpha = 4,
905         OneMinusDstAlpha = 5,
906         Fix = 10,
907     }
908 
909     #[repr(u32)]
910     pub enum StencilOperation {
911         Keep = 0,
912         Zero = 1,
913         Replace = 2,
914         Invert = 3,
915         Incr = 4,
916         Decr = 5,
917     }
918 
919     #[repr(u32)]
920     pub enum LightMode {
921         SingleColor = 0,
922         SeparateSpecularColor = 1,
923     }
924 
925     #[repr(u32)]
926     pub enum LightType {
927         Directional = 0,
928         Pointlight = 1,
929         Spotlight = 2,
930     }
931 
932     #[repr(u32)]
933     pub enum GuContextType {
934         Direct = 0,
935         Call = 1,
936         Send = 2,
937     }
938 
939     #[repr(u32)]
940     pub enum GuQueueMode {
941         Tail = 0,
942         Head = 1,
943     }
944 
945     #[repr(u32)]
946     pub enum GuSyncMode {
947         Finish = 0,
948         Signal = 1,
949         Done = 2,
950         List = 3,
951         Send = 4,
952     }
953 
954     #[repr(u32)]
955     pub enum GuSyncBehavior {
956         Wait = 0,
957         NoWait = 1,
958     }
959 
960     #[repr(u32)]
961     pub enum GuCallbackId {
962         Signal = 1,
963         Finish = 4,
964     }
965 
966     #[repr(u32)]
967     pub enum SignalBehavior {
968         Suspend = 1,
969         Continue = 2,
970     }
971 
972     #[repr(u32)]
973     pub enum ClutPixelFormat {
974         Psm5650 = 0,
975         Psm5551 = 1,
976         Psm4444 = 2,
977         Psm8888 = 3,
978     }
979 
980     #[repr(C)]
981     pub enum KeyType {
982         Directory = 1,
983         Integer = 2,
984         String = 3,
985         Bytes = 4,
986     }
987 
988     #[repr(u32)]
989     pub enum UtilityMsgDialogMode {
990         Error,
991         Text,
992     }
993 
994     #[repr(u32)]
995     pub enum UtilityMsgDialogPressed {
996         Unknown1,
997         Yes,
998         No,
999         Back,
1000     }
1001 
1002     #[repr(u32)]
1003     pub enum UtilityDialogButtonAccept {
1004         Circle,
1005         Cross,
1006     }
1007 
1008     #[repr(u32)]
1009     pub enum SceUtilityOskInputLanguage {
1010         Default,
1011         Japanese,
1012         English,
1013         French,
1014         Spanish,
1015         German,
1016         Italian,
1017         Dutch,
1018         Portugese,
1019         Russian,
1020         Korean,
1021     }
1022 
1023     #[repr(u32)]
1024     pub enum SceUtilityOskInputType {
1025         All,
1026         LatinDigit,
1027         LatinSymbol,
1028         LatinLowercase = 4,
1029         LatinUppercase = 8,
1030         JapaneseDigit = 0x100,
1031         JapaneseSymbol = 0x200,
1032         JapaneseLowercase = 0x400,
1033         JapaneseUppercase = 0x800,
1034         JapaneseHiragana = 0x1000,
1035         JapaneseHalfWidthKatakana = 0x2000,
1036         JapaneseKatakana = 0x4000,
1037         JapaneseKanji = 0x8000,
1038         RussianLowercase = 0x10000,
1039         RussianUppercase = 0x20000,
1040         Korean = 0x40000,
1041         Url = 0x80000,
1042     }
1043 
1044     #[repr(u32)]
1045     pub enum SceUtilityOskState {
1046         None,
1047         Initializing,
1048         Initialized,
1049         Visible,
1050         Quit,
1051         Finished,
1052     }
1053 
1054     #[repr(u32)]
1055     pub enum SceUtilityOskResult {
1056         Unchanged,
1057         Cancelled,
1058         Changed,
1059     }
1060 
1061     #[repr(u32)]
1062     pub enum SystemParamLanguage {
1063         Japanese,
1064         English,
1065         French,
1066         Spanish,
1067         German,
1068         Italian,
1069         Dutch,
1070         Portugese,
1071         Russian,
1072         Korean,
1073         ChineseTraditional,
1074         ChineseSimplified,
1075     }
1076 
1077     #[repr(u32)]
1078     pub enum SystemParamId {
1079         StringNickname = 1,
1080         AdhocChannel,
1081         WlanPowerSave,
1082         DateFormat,
1083         TimeFormat,
1084         Timezone,
1085         DaylightSavings,
1086         Language,
1087         Unknown,
1088     }
1089 
1090     #[repr(u32)]
1091     pub enum SystemParamAdhocChannel {
1092         ChannelAutomatic = 0,
1093         Channel1 = 1,
1094         Channel6 = 6,
1095         Channel11 = 11,
1096     }
1097 
1098     #[repr(u32)]
1099     pub enum SystemParamWlanPowerSaveState {
1100         Off,
1101         On,
1102     }
1103 
1104     #[repr(u32)]
1105     pub enum SystemParamDateFormat {
1106         YYYYMMDD,
1107         MMDDYYYY,
1108         DDMMYYYY,
1109     }
1110 
1111     #[repr(u32)]
1112     pub enum SystemParamTimeFormat {
1113         Hour24,
1114         Hour12,
1115     }
1116 
1117     #[repr(u32)]
1118     pub enum SystemParamDaylightSavings {
1119         Std,
1120         Dst,
1121     }
1122 
1123     #[repr(u32)]
1124     pub enum AvModule {
1125         AvCodec,
1126         SasCore,
1127         Atrac3Plus,
1128         MpegBase,
1129         Mp3,
1130         Vaudio,
1131         Aac,
1132         G729,
1133     }
1134 
1135     #[repr(u32)]
1136     pub enum Module {
1137         NetCommon = 0x100,
1138         NetAdhoc,
1139         NetInet,
1140         NetParseUri,
1141         NetHttp,
1142         NetSsl,
1143 
1144         UsbPspCm = 0x200,
1145         UsbMic,
1146         UsbCam,
1147         UsbGps,
1148 
1149         AvCodec = 0x300,
1150         AvSascore,
1151         AvAtrac3Plus,
1152         AvMpegBase,
1153         AvMp3,
1154         AvVaudio,
1155         AvAac,
1156         AvG729,
1157 
1158         NpCommon = 0x400,
1159         NpService,
1160         NpMatching2,
1161         NpDrm = 0x500,
1162 
1163         Irda = 0x600,
1164     }
1165 
1166     #[repr(u32)]
1167     pub enum NetModule {
1168         NetCommon = 1,
1169         NetAdhoc,
1170         NetInet,
1171         NetParseUri,
1172         NetHttp,
1173         NetSsl,
1174     }
1175 
1176     #[repr(u32)]
1177     pub enum UsbModule {
1178         UsbPspCm = 1,
1179         UsbAcc,
1180         UsbMic,
1181         UsbCam,
1182         UsbGps,
1183     }
1184 
1185     #[repr(u32)]
1186     pub enum NetParam {
1187         Name,
1188         Ssid,
1189         Secure,
1190         WepKey,
1191         IsStaticIp,
1192         Ip,
1193         NetMask,
1194         Route,
1195         ManualDns,
1196         PrimaryDns,
1197         SecondaryDns,
1198         ProxyUser,
1199         ProxyPass,
1200         UseProxy,
1201         ProxyServer,
1202         ProxyPort,
1203         Unknown1,
1204         Unknown2,
1205     }
1206 
1207     #[repr(u32)]
1208     pub enum UtilityNetconfAction {
1209         ConnectAP,
1210         DisplayStatus,
1211         ConnectAdhoc,
1212     }
1213 
1214     #[repr(u32)]
1215     pub enum UtilitySavedataMode {
1216         AutoLoad,
1217         AutoSave,
1218         Load,
1219         Save,
1220         ListLoad,
1221         ListSave,
1222         ListDelete,
1223         Delete,
1224     }
1225 
1226     #[repr(u32)]
1227     pub enum UtilitySavedataFocus {
1228         Unknown1,
1229         FirstList,
1230         LastList,
1231         Latest,
1232         Oldest,
1233         Unknown2,
1234         Unknown3,
1235         FirstEmpty,
1236         LastEmpty,
1237     }
1238 
1239     #[repr(u32)]
1240     pub enum UtilityGameSharingMode {
1241         Single = 1,
1242         Multiple,
1243     }
1244 
1245     #[repr(u32)]
1246     pub enum UtilityGameSharingDataType {
1247         File = 1,
1248         Memory,
1249     }
1250 
1251     #[repr(u32)]
1252     pub enum UtilityHtmlViewerInterfaceMode {
1253         Full,
1254         Limited,
1255         None,
1256     }
1257 
1258     #[repr(u32)]
1259     pub enum UtilityHtmlViewerCookieMode {
1260         Disabled = 0,
1261         Enabled,
1262         Confirm,
1263         Default,
1264     }
1265 
1266     #[repr(u32)]
1267     pub enum UtilityHtmlViewerTextSize {
1268         Large,
1269         Normal,
1270         Small,
1271     }
1272 
1273     #[repr(u32)]
1274     pub enum UtilityHtmlViewerDisplayMode {
1275         Normal,
1276         Fit,
1277         SmartFit,
1278     }
1279 
1280     #[repr(u32)]
1281     pub enum UtilityHtmlViewerConnectMode {
1282         Last,
1283         ManualOnce,
1284         ManualAll,
1285     }
1286 
1287     #[repr(u32)]
1288     pub enum UtilityHtmlViewerDisconnectMode {
1289         Enable,
1290         Disable,
1291         Confirm,
1292     }
1293 
1294     #[repr(u32)]
1295     pub enum ScePspnetAdhocPtpState {
1296         Closed,
1297         Listen,
1298         SynSent,
1299         SynReceived,
1300         Established,
1301     }
1302 
1303     #[repr(u32)]
1304     pub enum AdhocMatchingMode {
1305         Host = 1,
1306         Client,
1307         Ptp,
1308     }
1309 
1310     #[repr(u32)]
1311     pub enum ApctlState {
1312         Disconnected,
1313         Scanning,
1314         Joining,
1315         GettingIp,
1316         GotIp,
1317         EapAuth,
1318         KeyExchange,
1319     }
1320 
1321     #[repr(u32)]
1322     pub enum ApctlEvent {
1323         ConnectRequest,
1324         ScanRequest,
1325         ScanComplete,
1326         Established,
1327         GetIp,
1328         DisconnectRequest,
1329         Error,
1330         Info,
1331         EapAuth,
1332         KeyExchange,
1333         Reconnect,
1334     }
1335 
1336     #[repr(u32)]
1337     pub enum ApctlInfo {
1338         ProfileName,
1339         Bssid,
1340         Ssid,
1341         SsidLength,
1342         SecurityType,
1343         Strength,
1344         Channel,
1345         PowerSave,
1346         Ip,
1347         SubnetMask,
1348         Gateway,
1349         PrimaryDns,
1350         SecondaryDns,
1351         UseProxy,
1352         ProxyUrl,
1353         ProxyPort,
1354         EapType,
1355         StartBrowser,
1356         Wifisp,
1357     }
1358 
1359     #[repr(u32)]
1360     pub enum ApctlInfoSecurityType {
1361         None,
1362         Wep,
1363         Wpa,
1364     }
1365 
1366     #[repr(u32)]
1367     pub enum HttpMethod {
1368         Get,
1369         Post,
1370         Head,
1371     }
1372 
1373     #[repr(u32)]
1374     pub enum HttpAuthType {
1375         Basic,
1376         Digest,
1377     }
1378 }
1379 
1380 s_paren! {
1381     #[repr(transparent)]
1382     pub struct SceUid(pub i32);
1383 
1384     #[repr(transparent)]
1385     pub struct SceMpeg(*mut *mut c_void);
1386 
1387     #[repr(transparent)]
1388     pub struct SceMpegStream(*mut c_void);
1389 
1390     #[repr(transparent)]
1391     pub struct Mp3Handle(pub i32);
1392 
1393     #[repr(transparent)]
1394     pub struct RegHandle(u32);
1395 }
1396 
1397 s! {
1398     pub struct sockaddr {
1399         pub sa_len: u8,
1400         pub sa_family: u8,
1401         pub sa_data: [u8;14],
1402     }
1403 
1404     pub struct in_addr {
1405         pub s_addr: u32,
1406     }
1407 
1408     pub struct AudioInputParams {
1409         pub unknown1: i32,
1410         pub gain: i32,
1411         pub unknown2: i32,
1412         pub unknown3: i32,
1413         pub unknown4: i32,
1414         pub unknown5: i32,
1415     }
1416 
1417     pub struct Atrac3BufferInfo {
1418         pub puc_write_position_first_buf: *mut u8,
1419         pub ui_writable_byte_first_buf: u32,
1420         pub ui_min_write_byte_first_buf: u32,
1421         pub ui_read_position_first_buf: u32,
1422         pub puc_write_position_second_buf: *mut u8,
1423         pub ui_writable_byte_second_buf: u32,
1424         pub ui_min_write_byte_second_buf: u32,
1425         pub ui_read_position_second_buf: u32,
1426     }
1427 
1428     pub struct SceCtrlData {
1429         pub timestamp: u32,
1430         pub buttons: i32,
1431         pub lx: u8,
1432         pub ly: u8,
1433         pub rsrv: [u8; 6],
1434     }
1435 
1436     pub struct SceCtrlLatch {
1437         pub ui_make: u32,
1438         pub ui_break: u32,
1439         pub ui_press: u32,
1440         pub ui_release: u32,
1441     }
1442 
1443     pub struct GeStack {
1444         pub stack: [u32; 8],
1445     }
1446 
1447     pub struct GeCallbackData {
1448         pub signal_func: ::Option<extern "C" fn(id: i32, arg: *mut c_void)>,
1449         pub signal_arg: *mut c_void,
1450         pub finish_func: ::Option<extern "C" fn(id: i32, arg: *mut c_void)>,
1451         pub finish_arg: *mut c_void,
1452     }
1453 
1454     pub struct GeListArgs {
1455         pub size: u32,
1456         pub context: *mut GeContext,
1457         pub num_stacks: u32,
1458         pub stacks: *mut GeStack,
1459     }
1460 
1461     pub struct GeBreakParam {
1462         pub buf: [u32; 4],
1463     }
1464 
1465     pub struct SceKernelLoadExecParam {
1466         pub size: usize,
1467         pub args: usize,
1468         pub argp: *mut c_void,
1469         pub key: *const u8,
1470     }
1471 
1472     pub struct timeval {
1473         pub tv_sec: i32,
1474         pub tv_usec: i32,
1475     }
1476 
1477     pub struct timezone {
1478         pub tz_minutes_west: i32,
1479         pub tz_dst_time: i32,
1480     }
1481 
1482     pub struct IntrHandlerOptionParam {
1483         size: i32,
1484         entry: u32,
1485         common: u32,
1486         gp: u32,
1487         intr_code: u16,
1488         sub_count: u16,
1489         intr_level: u16,
1490         enabled: u16,
1491         calls: u32,
1492         field_1c: u32,
1493         total_clock_lo: u32,
1494         total_clock_hi: u32,
1495         min_clock_lo: u32,
1496         min_clock_hi: u32,
1497         max_clock_lo: u32,
1498         max_clock_hi: u32,
1499     }
1500 
1501     pub struct SceKernelLMOption {
1502         pub size: usize,
1503         pub m_pid_text: SceUid,
1504         pub m_pid_data: SceUid,
1505         pub flags: u32,
1506         pub position: u8,
1507         pub access: u8,
1508         pub c_reserved: [u8; 2usize],
1509     }
1510 
1511     pub struct SceKernelSMOption {
1512         pub size: usize,
1513         pub m_pid_stack: SceUid,
1514         pub stack_size: usize,
1515         pub priority: i32,
1516         pub attribute: u32,
1517     }
1518 
1519     pub struct SceKernelModuleInfo {
1520         pub size: usize,
1521         pub n_segment: u8,
1522         pub reserved: [u8; 3usize],
1523         pub segment_addr: [i32; 4usize],
1524         pub segment_size: [i32; 4usize],
1525         pub entry_addr: u32,
1526         pub gp_value: u32,
1527         pub text_addr: u32,
1528         pub text_size: u32,
1529         pub data_size: u32,
1530         pub bss_size: u32,
1531         pub attribute: u16,
1532         pub version: [u8; 2usize],
1533         pub name: [u8; 28usize],
1534     }
1535 
1536     pub struct DebugProfilerRegs {
1537         pub enable: u32,
1538         pub systemck: u32,
1539         pub cpuck: u32,
1540         pub internal: u32,
1541         pub memory: u32,
1542         pub copz: u32,
1543         pub vfpu: u32,
1544         pub sleep: u32,
1545         pub bus_access: u32,
1546         pub uncached_load: u32,
1547         pub uncached_store: u32,
1548         pub cached_load: u32,
1549         pub cached_store: u32,
1550         pub i_miss: u32,
1551         pub d_miss: u32,
1552         pub d_writeback: u32,
1553         pub cop0_inst: u32,
1554         pub fpu_inst: u32,
1555         pub vfpu_inst: u32,
1556         pub local_bus: u32,
1557     }
1558 
1559     pub struct SceKernelSysClock {
1560         pub low: u32,
1561         pub hi: u32,
1562     }
1563 
1564     pub struct SceKernelThreadOptParam {
1565         pub size: usize,
1566         pub stack_mpid: SceUid,
1567     }
1568 
1569     pub struct SceKernelThreadInfo {
1570         pub size: usize,
1571         pub name: [u8; 32],
1572         pub attr: u32,
1573         pub status: i32,
1574         pub entry: SceKernelThreadEntry,
1575         pub stack: *mut c_void,
1576         pub stack_size: i32,
1577         pub gp_reg: *mut c_void,
1578         pub init_priority: i32,
1579         pub current_priority: i32,
1580         pub wait_type: i32,
1581         pub wait_id: SceUid,
1582         pub wakeup_count: i32,
1583         pub exit_status: i32,
1584         pub run_clocks: SceKernelSysClock,
1585         pub intr_preempt_count: u32,
1586         pub thread_preempt_count: u32,
1587         pub release_count: u32,
1588     }
1589 
1590     pub struct SceKernelThreadRunStatus {
1591         pub size: usize,
1592         pub status: i32,
1593         pub current_priority: i32,
1594         pub wait_type: i32,
1595         pub wait_id: i32,
1596         pub wakeup_count: i32,
1597         pub run_clocks: SceKernelSysClock,
1598         pub intr_preempt_count: u32,
1599         pub thread_preempt_count: u32,
1600         pub release_count: u32,
1601     }
1602 
1603     pub struct SceKernelSemaOptParam {
1604         pub size: usize,
1605     }
1606 
1607     pub struct SceKernelSemaInfo {
1608         pub size: usize,
1609         pub name: [u8; 32],
1610         pub attr: u32,
1611         pub init_count: i32,
1612         pub current_count: i32,
1613         pub max_count: i32,
1614         pub num_wait_threads: i32,
1615     }
1616 
1617     pub struct SceKernelEventFlagInfo {
1618         pub size: usize,
1619         pub name: [u8; 32],
1620         pub attr: u32,
1621         pub init_pattern: u32,
1622         pub current_pattern: u32,
1623         pub num_wait_threads: i32,
1624     }
1625 
1626     pub struct SceKernelEventFlagOptParam {
1627         pub size: usize,
1628     }
1629 
1630     pub struct SceKernelMbxOptParam {
1631         pub size: usize,
1632     }
1633 
1634     pub struct SceKernelMbxInfo {
1635         pub size: usize,
1636         pub name: [u8; 32usize],
1637         pub attr: u32,
1638         pub num_wait_threads: i32,
1639         pub num_messages: i32,
1640         pub first_message: *mut c_void,
1641     }
1642 
1643     pub struct SceKernelVTimerInfo {
1644         pub size: usize,
1645         pub name: [u8; 32],
1646         pub active: i32,
1647         pub base: SceKernelSysClock,
1648         pub current: SceKernelSysClock,
1649         pub schedule: SceKernelSysClock,
1650         pub handler: SceKernelVTimerHandler,
1651         pub common: *mut c_void,
1652     }
1653 
1654     pub struct SceKernelThreadEventHandlerInfo {
1655         pub size: usize,
1656         pub name: [u8; 32],
1657         pub thread_id: SceUid,
1658         pub mask: i32,
1659         pub handler: SceKernelThreadEventHandler,
1660         pub common: *mut c_void,
1661     }
1662 
1663     pub struct SceKernelAlarmInfo {
1664         pub size: usize,
1665         pub schedule: SceKernelSysClock,
1666         pub handler: SceKernelAlarmHandler,
1667         pub common: *mut c_void,
1668     }
1669 
1670     pub struct SceKernelSystemStatus {
1671         pub size: usize,
1672         pub status: u32,
1673         pub idle_clocks: SceKernelSysClock,
1674         pub comes_out_of_idle_count: u32,
1675         pub thread_switch_count: u32,
1676         pub vfpu_switch_count: u32,
1677     }
1678 
1679     pub struct SceKernelMppInfo {
1680         pub size: usize,
1681         pub name: [u8; 32],
1682         pub attr: u32,
1683         pub buf_size: i32,
1684         pub free_size: i32,
1685         pub num_send_wait_threads: i32,
1686         pub num_receive_wait_threads: i32,
1687     }
1688 
1689     pub struct SceKernelVplOptParam {
1690         pub size: usize,
1691     }
1692 
1693     pub struct SceKernelVplInfo {
1694         pub size: usize,
1695         pub name: [u8; 32],
1696         pub attr: u32,
1697         pub pool_size: i32,
1698         pub free_size: i32,
1699         pub num_wait_threads: i32,
1700     }
1701 
1702     pub struct SceKernelFplOptParam {
1703         pub size: usize,
1704     }
1705 
1706     pub struct SceKernelFplInfo {
1707         pub size: usize,
1708         pub name: [u8; 32usize],
1709         pub attr: u32,
1710         pub block_size: i32,
1711         pub num_blocks: i32,
1712         pub free_blocks: i32,
1713         pub num_wait_threads: i32,
1714     }
1715 
1716     pub struct SceKernelVTimerOptParam {
1717         pub size: usize,
1718     }
1719 
1720     pub struct SceKernelCallbackInfo {
1721         pub size: usize,
1722         pub name: [u8; 32usize],
1723         pub thread_id: SceUid,
1724         pub callback: SceKernelCallbackFunction,
1725         pub common: *mut c_void,
1726         pub notify_count: i32,
1727         pub notify_arg: i32,
1728     }
1729 
1730     pub struct UsbCamSetupStillParam {
1731         pub size: i32,
1732         pub resolution: UsbCamResolution,
1733         pub jpeg_size: i32,
1734         pub reverse_flags: i32,
1735         pub delay: UsbCamDelay,
1736         pub comp_level: i32,
1737     }
1738 
1739     pub struct UsbCamSetupStillExParam {
1740         pub size: i32,
1741         pub unk: u32,
1742         pub resolution: UsbCamResolutionEx,
1743         pub jpeg_size: i32,
1744         pub comp_level: i32,
1745         pub unk2: u32,
1746         pub unk3: u32,
1747         pub flip: i32,
1748         pub mirror: i32,
1749         pub delay: UsbCamDelay,
1750         pub unk4: [u32; 5usize],
1751     }
1752 
1753     pub struct UsbCamSetupVideoParam {
1754         pub size: i32,
1755         pub resolution: UsbCamResolution,
1756         pub framerate: UsbCamFrameRate,
1757         pub white_balance: UsbCamWb,
1758         pub saturation: i32,
1759         pub brightness: i32,
1760         pub contrast: i32,
1761         pub sharpness: i32,
1762         pub effect_mode: UsbCamEffectMode,
1763         pub frame_size: i32,
1764         pub unk: u32,
1765         pub evl_evel: UsbCamEvLevel,
1766     }
1767 
1768     pub struct UsbCamSetupVideoExParam {
1769         pub size: i32,
1770         pub unk: u32,
1771         pub resolution: UsbCamResolutionEx,
1772         pub framerate: UsbCamFrameRate,
1773         pub unk2: u32,
1774         pub unk3: u32,
1775         pub white_balance: UsbCamWb,
1776         pub saturation: i32,
1777         pub brightness: i32,
1778         pub contrast: i32,
1779         pub sharpness: i32,
1780         pub unk4: u32,
1781         pub unk5: u32,
1782         pub unk6: [u32; 3usize],
1783         pub effect_mode: UsbCamEffectMode,
1784         pub unk7: u32,
1785         pub unk8: u32,
1786         pub unk9: u32,
1787         pub unk10: u32,
1788         pub unk11: u32,
1789         pub frame_size: i32,
1790         pub unk12: u32,
1791         pub ev_level: UsbCamEvLevel,
1792     }
1793 
1794     pub struct ScePspDateTime {
1795         pub year: u16,
1796         pub month: u16,
1797         pub day: u16,
1798         pub hour: u16,
1799         pub minutes: u16,
1800         pub seconds: u16,
1801         pub microseconds: u32,
1802     }
1803 
1804     pub struct SceIoStat {
1805         pub st_mode: i32,
1806         pub st_attr: i32,
1807         pub st_size: i64,
1808         pub st_ctime: ScePspDateTime,
1809         pub st_atime: ScePspDateTime,
1810         pub st_mtime: ScePspDateTime,
1811         pub st_private: [u32; 6usize],
1812     }
1813 
1814     pub struct UmdInfo {
1815         pub size: u32,
1816         pub type_: UmdType,
1817     }
1818 
1819     pub struct SceMpegRingbuffer {
1820         pub packets: i32,
1821         pub unk0: u32,
1822         pub unk1: u32,
1823         pub unk2: u32,
1824         pub unk3: u32,
1825         pub data: *mut c_void,
1826         pub callback: SceMpegRingbufferCb,
1827         pub cb_param: *mut c_void,
1828         pub unk4: u32,
1829         pub unk5: u32,
1830         pub sce_mpeg: *mut c_void,
1831     }
1832 
1833     pub struct SceMpegAu {
1834         pub pts_msb: u32,
1835         pub pts: u32,
1836         pub dts_msb: u32,
1837         pub dts: u32,
1838         pub es_buffer: u32,
1839         pub au_size: u32,
1840     }
1841 
1842     pub struct SceMpegAvcMode {
1843         pub unk0: i32,
1844         pub pixel_format: super::DisplayPixelFormat,
1845     }
1846 
1847     #[repr(align(64))]
1848     pub struct SceMpegLLI {
1849         pub src: *mut c_void,
1850         pub dst: *mut c_void,
1851         pub next: *mut c_void,
1852         pub size: i32,
1853     }
1854 
1855     #[repr(align(64))]
1856     pub struct SceMpegYCrCbBuffer {
1857         pub frame_buffer_height16: i32,
1858         pub frame_buffer_width16: i32,
1859         pub unknown: i32,
1860         pub unknown2: i32,
1861         pub y_buffer: *mut c_void,
1862         pub y_buffer2: *mut c_void,
1863         pub cr_buffer: *mut c_void,
1864         pub cb_buffer: *mut c_void,
1865         pub cr_buffer2: *mut c_void,
1866         pub cb_buffer2: *mut c_void,
1867 
1868         pub frame_height: i32,
1869         pub frame_width: i32,
1870         pub frame_buffer_width: i32,
1871         pub unknown3: [i32; 11usize],
1872     }
1873 
1874     pub struct ScePspSRect {
1875         pub x: i16,
1876         pub y: i16,
1877         pub w: i16,
1878         pub h: i16,
1879     }
1880 
1881     pub struct ScePspIRect {
1882         pub x: i32,
1883         pub y: i32,
1884         pub w: i32,
1885         pub h: i32,
1886     }
1887 
1888     pub struct ScePspL64Rect {
1889         pub x: u64,
1890         pub y: u64,
1891         pub w: u64,
1892         pub h: u64,
1893     }
1894 
1895     pub struct ScePspSVector2 {
1896         pub x: i16,
1897         pub y: i16,
1898     }
1899 
1900     pub struct ScePspIVector2 {
1901         pub x: i32,
1902         pub y: i32,
1903     }
1904 
1905     pub struct ScePspL64Vector2 {
1906         pub x: u64,
1907         pub y: u64,
1908     }
1909 
1910     pub struct ScePspSVector3 {
1911         pub x: i16,
1912         pub y: i16,
1913         pub z: i16,
1914     }
1915 
1916     pub struct ScePspIVector3 {
1917         pub x: i32,
1918         pub y: i32,
1919         pub z: i32,
1920     }
1921 
1922     pub struct ScePspL64Vector3 {
1923         pub x: u64,
1924         pub y: u64,
1925         pub z: u64,
1926     }
1927 
1928     pub struct ScePspSVector4 {
1929         pub x: i16,
1930         pub y: i16,
1931         pub z: i16,
1932         pub w: i16,
1933     }
1934 
1935     pub struct ScePspIVector4 {
1936         pub x: i32,
1937         pub y: i32,
1938         pub z: i32,
1939         pub w: i32,
1940     }
1941 
1942     pub struct ScePspL64Vector4 {
1943         pub x: u64,
1944         pub y: u64,
1945         pub z: u64,
1946         pub w: u64,
1947     }
1948 
1949     pub struct ScePspIMatrix2 {
1950         pub x: ScePspIVector2,
1951         pub y: ScePspIVector2,
1952     }
1953 
1954     pub struct ScePspIMatrix3 {
1955         pub x: ScePspIVector3,
1956         pub y: ScePspIVector3,
1957         pub z: ScePspIVector3,
1958     }
1959 
1960     #[repr(align(16))]
1961     pub struct ScePspIMatrix4 {
1962         pub x: ScePspIVector4,
1963         pub y: ScePspIVector4,
1964         pub z: ScePspIVector4,
1965         pub w: ScePspIVector4,
1966     }
1967 
1968     pub struct ScePspIMatrix4Unaligned {
1969         pub x: ScePspIVector4,
1970         pub y: ScePspIVector4,
1971         pub z: ScePspIVector4,
1972         pub w: ScePspIVector4,
1973     }
1974 
1975     pub struct SceMp3InitArg {
1976         pub mp3_stream_start: u32,
1977         pub unk1: u32,
1978         pub mp3_stream_end: u32,
1979         pub unk2: u32,
1980         pub mp3_buf: *mut c_void,
1981         pub mp3_buf_size: i32,
1982         pub pcm_buf: *mut c_void,
1983         pub pcm_buf_size: i32,
1984     }
1985 
1986     pub struct OpenPSID {
1987         pub data: [u8; 16usize],
1988     }
1989 
1990     pub struct UtilityDialogCommon {
1991         pub size: u32,
1992         pub language: SystemParamLanguage,
1993         pub button_accept: UtilityDialogButtonAccept,
1994         pub graphics_thread: i32,
1995         pub access_thread: i32,
1996         pub font_thread: i32,
1997         pub sound_thread: i32,
1998         pub result: i32,
1999         pub reserved: [i32; 4usize],
2000     }
2001 
2002     pub struct UtilityNetconfAdhoc {
2003         pub name: [u8; 8usize],
2004         pub timeout: u32,
2005     }
2006 
2007     pub struct UtilityNetconfData {
2008         pub base: UtilityDialogCommon,
2009         pub action: UtilityNetconfAction,
2010         pub adhocparam: *mut UtilityNetconfAdhoc,
2011         pub hotspot: i32,
2012         pub hotspot_connected: i32,
2013         pub wifisp: i32,
2014     }
2015 
2016     pub struct UtilitySavedataFileData {
2017         pub buf: *mut c_void,
2018         pub buf_size: usize,
2019         pub size: usize,
2020         pub unknown: i32,
2021     }
2022 
2023     pub struct UtilitySavedataListSaveNewData {
2024         pub icon0: UtilitySavedataFileData,
2025         pub title: *mut u8,
2026     }
2027 
2028     pub struct UtilityGameSharingParams {
2029         pub base: UtilityDialogCommon,
2030         pub unknown1: i32,
2031         pub unknown2: i32,
2032         pub name: [u8; 8usize],
2033         pub unknown3: i32,
2034         pub unknown4: i32,
2035         pub unknown5: i32,
2036         pub result: i32,
2037         pub filepath: *mut u8,
2038         pub mode: UtilityGameSharingMode,
2039         pub datatype: UtilityGameSharingDataType,
2040         pub data: *mut c_void,
2041         pub datasize: u32,
2042     }
2043 
2044     pub struct UtilityHtmlViewerParam {
2045         pub base: UtilityDialogCommon,
2046         pub memaddr: *mut c_void,
2047         pub memsize: u32,
2048         pub unknown1: i32,
2049         pub unknown2: i32,
2050         pub initialurl: *mut u8,
2051         pub numtabs: u32,
2052         pub interfacemode: UtilityHtmlViewerInterfaceMode,
2053         pub options: i32,
2054         pub dldirname: *mut u8,
2055         pub dlfilename: *mut u8,
2056         pub uldirname: *mut u8,
2057         pub ulfilename: *mut u8,
2058         pub cookiemode: UtilityHtmlViewerCookieMode,
2059         pub unknown3: u32,
2060         pub homeurl: *mut u8,
2061         pub textsize: UtilityHtmlViewerTextSize,
2062         pub displaymode: UtilityHtmlViewerDisplayMode,
2063         pub connectmode: UtilityHtmlViewerConnectMode,
2064         pub disconnectmode: UtilityHtmlViewerDisconnectMode,
2065         pub memused: u32,
2066         pub unknown4: [i32; 10usize],
2067     }
2068 
2069     pub struct SceUtilityOskData {
2070         pub unk_00: i32,
2071         pub unk_04: i32,
2072         pub language: SceUtilityOskInputLanguage,
2073         pub unk_12: i32,
2074         pub inputtype: SceUtilityOskInputType,
2075         pub lines: i32,
2076         pub unk_24: i32,
2077         pub desc: *mut u16,
2078         pub intext: *mut u16,
2079         pub outtextlength: i32,
2080         pub outtext: *mut u16,
2081         pub result: SceUtilityOskResult,
2082         pub outtextlimit: i32,
2083     }
2084 
2085     pub struct SceUtilityOskParams {
2086         pub base: UtilityDialogCommon,
2087         pub datacount: i32,
2088         pub data: *mut SceUtilityOskData,
2089         pub state: SceUtilityOskState,
2090         pub unk_60: i32,
2091     }
2092 
2093     pub struct SceNetMallocStat {
2094         pub pool: i32,
2095         pub maximum: i32,
2096         pub free: i32,
2097     }
2098 
2099     pub struct SceNetAdhocctlAdhocId {
2100         pub unknown: i32,
2101         pub adhoc_id: [u8; 9usize],
2102         pub unk: [u8; 3usize],
2103     }
2104 
2105     pub struct SceNetAdhocctlScanInfo {
2106         pub next: *mut SceNetAdhocctlScanInfo,
2107         pub channel: i32,
2108         pub name: [u8; 8usize],
2109         pub bssid: [u8; 6usize],
2110         pub unknown: [u8; 2usize],
2111         pub unknown2: i32,
2112     }
2113 
2114     pub struct SceNetAdhocctlGameModeInfo {
2115         pub count: i32,
2116         pub macs: [[u8; 6usize]; 16usize],
2117     }
2118 
2119     pub struct SceNetAdhocPtpStat {
2120         pub next: *mut SceNetAdhocPtpStat,
2121         pub ptp_id: i32,
2122         pub mac: [u8; 6usize],
2123         pub peermac: [u8; 6usize],
2124         pub port: u16,
2125         pub peerport: u16,
2126         pub sent_data: u32,
2127         pub rcvd_data: u32,
2128         pub state: ScePspnetAdhocPtpState,
2129     }
2130 
2131     pub struct SceNetAdhocPdpStat {
2132         pub next: *mut SceNetAdhocPdpStat,
2133         pub pdp_id: i32,
2134         pub mac: [u8; 6usize],
2135         pub port: u16,
2136         pub rcvd_data: u32,
2137     }
2138 
2139     pub struct AdhocPoolStat {
2140         pub size: i32,
2141         pub maxsize: i32,
2142         pub freesize: i32,
2143     }
2144 }
2145 
2146 s_no_extra_traits! {
2147     #[allow(missing_debug_implementations)]
2148     pub struct GeContext {
2149         pub context: [u32; 512],
2150     }
2151 
2152     #[allow(missing_debug_implementations)]
2153     pub struct SceKernelUtilsSha1Context {
2154         pub h: [u32; 5usize],
2155         pub us_remains: u16,
2156         pub us_computed: u16,
2157         pub ull_total_len: u64,
2158         pub buf: [u8; 64usize],
2159     }
2160 
2161     #[allow(missing_debug_implementations)]
2162     pub struct SceKernelUtilsMt19937Context {
2163         pub count: u32,
2164         pub state: [u32; 624usize],
2165     }
2166 
2167     #[allow(missing_debug_implementations)]
2168     pub struct SceKernelUtilsMd5Context {
2169         pub h: [u32; 4usize],
2170         pub pad: u32,
2171         pub us_remains: u16,
2172         pub us_computed: u16,
2173         pub ull_total_len: u64,
2174         pub buf: [u8; 64usize],
2175     }
2176 
2177     #[allow(missing_debug_implementations)]
2178     pub struct SceIoDirent {
2179         pub d_stat: SceIoStat,
2180         pub d_name: [u8; 256usize],
2181         pub d_private: *mut c_void,
2182         pub dummy: i32,
2183     }
2184 
2185     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2186     pub struct ScePspFRect {
2187         pub x: f32,
2188         pub y: f32,
2189         pub w: f32,
2190         pub h: f32,
2191     }
2192 
2193     #[repr(align(16))]
2194     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2195     pub struct ScePspFVector3 {
2196         pub x: f32,
2197         pub y: f32,
2198         pub z: f32,
2199     }
2200 
2201     #[repr(align(16))]
2202     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2203     pub struct ScePspFVector4 {
2204         pub x: f32,
2205         pub y: f32,
2206         pub z: f32,
2207         pub w: f32,
2208     }
2209 
2210     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2211     pub struct ScePspFVector4Unaligned {
2212         pub x: f32,
2213         pub y: f32,
2214         pub z: f32,
2215         pub w: f32,
2216     }
2217 
2218     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2219     pub struct ScePspFVector2 {
2220         pub x: f32,
2221         pub y: f32,
2222     }
2223 
2224     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2225     pub struct ScePspFMatrix2 {
2226         pub x: ScePspFVector2,
2227         pub y: ScePspFVector2,
2228     }
2229 
2230     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2231     pub struct ScePspFMatrix3 {
2232         pub x: ScePspFVector3,
2233         pub y: ScePspFVector3,
2234         pub z: ScePspFVector3,
2235     }
2236 
2237     #[cfg_attr(feature = "extra_traits", derive(Debug))]
2238     #[repr(align(16))]
2239     pub struct ScePspFMatrix4 {
2240         pub x: ScePspFVector4,
2241         pub y: ScePspFVector4,
2242         pub z: ScePspFVector4,
2243         pub w: ScePspFVector4,
2244     }
2245 
2246     #[allow(missing_debug_implementations)]
2247     pub struct ScePspFMatrix4Unaligned {
2248         pub x: ScePspFVector4,
2249         pub y: ScePspFVector4,
2250         pub z: ScePspFVector4,
2251         pub w: ScePspFVector4,
2252     }
2253 
2254     #[allow(missing_debug_implementations)]
2255     pub union ScePspVector3 {
2256         pub fv: ScePspFVector3,
2257         pub iv: ScePspIVector3,
2258         pub f: [f32; 3usize],
2259         pub i: [i32; 3usize],
2260     }
2261 
2262     #[allow(missing_debug_implementations)]
2263     pub union ScePspVector4 {
2264         pub fv: ScePspFVector4,
2265         pub iv: ScePspIVector4,
2266         pub qw: u128,
2267         pub f: [f32; 4usize],
2268         pub i: [i32; 4usize],
2269     }
2270 
2271     #[allow(missing_debug_implementations)]
2272     pub union ScePspMatrix2 {
2273         pub fm: ScePspFMatrix2,
2274         pub im: ScePspIMatrix2,
2275         pub fv: [ScePspFVector2; 2usize],
2276         pub iv: [ScePspIVector2; 2usize],
2277         pub v: [ScePspVector2; 2usize],
2278         pub f: [[f32; 2usize]; 2usize],
2279         pub i: [[i32; 2usize]; 2usize],
2280     }
2281 
2282     #[allow(missing_debug_implementations)]
2283     pub union ScePspMatrix3 {
2284         pub fm: ScePspFMatrix3,
2285         pub im: ScePspIMatrix3,
2286         pub fv: [ScePspFVector3; 3usize],
2287         pub iv: [ScePspIVector3; 3usize],
2288         pub v: [ScePspVector3; 3usize],
2289         pub f: [[f32; 3usize]; 3usize],
2290         pub i: [[i32; 3usize]; 3usize],
2291     }
2292 
2293     #[allow(missing_debug_implementations)]
2294     pub union ScePspVector2 {
2295         pub fv: ScePspFVector2,
2296         pub iv: ScePspIVector2,
2297         pub f: [f32; 2usize],
2298         pub i: [i32; 2usize],
2299     }
2300 
2301     #[allow(missing_debug_implementations)]
2302     pub union ScePspMatrix4 {
2303         pub fm: ScePspFMatrix4,
2304         pub im: ScePspIMatrix4,
2305         pub fv: [ScePspFVector4; 4usize],
2306         pub iv: [ScePspIVector4; 4usize],
2307         pub v: [ScePspVector4; 4usize],
2308         pub f: [[f32; 4usize]; 4usize],
2309         pub i: [[i32; 4usize]; 4usize],
2310     }
2311 
2312     #[allow(missing_debug_implementations)]
2313     pub struct Key {
2314         pub key_type: KeyType,
2315         pub name: [u8; 256usize],
2316         pub name_len: u32,
2317         pub unk2: u32,
2318         pub unk3: u32,
2319     }
2320 
2321     #[allow(missing_debug_implementations)]
2322     pub struct UtilityMsgDialogParams {
2323         pub base: UtilityDialogCommon,
2324         pub unknown: i32,
2325         pub mode: UtilityMsgDialogMode,
2326         pub error_value: u32,
2327         pub message: [u8; 512usize],
2328         pub options: i32,
2329         pub button_pressed: UtilityMsgDialogPressed,
2330     }
2331 
2332     #[allow(missing_debug_implementations)]
2333     pub union UtilityNetData {
2334         pub as_uint: u32,
2335         pub as_string: [u8; 128usize],
2336     }
2337 
2338     #[allow(missing_debug_implementations)]
2339     pub struct UtilitySavedataSFOParam {
2340         pub title: [u8; 128usize],
2341         pub savedata_title: [u8; 128usize],
2342         pub detail: [u8; 1024usize],
2343         pub parental_level: u8,
2344         pub unknown: [u8; 3usize],
2345     }
2346 
2347     #[allow(missing_debug_implementations)]
2348     pub struct SceUtilitySavedataParam {
2349         pub base: UtilityDialogCommon,
2350         pub mode: UtilitySavedataMode,
2351         pub unknown1: i32,
2352         pub overwrite: i32,
2353         pub game_name: [u8; 13usize],
2354         pub reserved: [u8; 3usize],
2355         pub save_name: [u8; 20usize],
2356         pub save_name_list: *mut [u8; 20usize],
2357         pub file_name: [u8; 13usize],
2358         pub reserved1: [u8; 3usize],
2359         pub data_buf: *mut c_void,
2360         pub data_buf_size: usize,
2361         pub data_size: usize,
2362         pub sfo_param: UtilitySavedataSFOParam,
2363         pub icon0_file_data: UtilitySavedataFileData,
2364         pub icon1_file_data: UtilitySavedataFileData,
2365         pub pic1_file_data: UtilitySavedataFileData,
2366         pub snd0_file_data: UtilitySavedataFileData,
2367         pub new_data: *mut UtilitySavedataListSaveNewData,
2368         pub focus: UtilitySavedataFocus,
2369         pub unknown2: [i32; 4usize],
2370         pub key: [u8; 16],
2371         pub unknown3: [u8; 20],
2372     }
2373 
2374     #[allow(missing_debug_implementations)]
2375     pub struct SceNetAdhocctlPeerInfo {
2376         pub next: *mut SceNetAdhocctlPeerInfo,
2377         pub nickname: [u8; 128usize],
2378         pub mac: [u8; 6usize],
2379         pub unknown: [u8; 6usize],
2380         pub timestamp: u32,
2381     }
2382 
2383     #[allow(missing_debug_implementations)]
2384     pub struct SceNetAdhocctlParams {
2385         pub channel: i32,
2386         pub name: [u8; 8usize],
2387         pub bssid: [u8; 6usize],
2388         pub nickname: [u8; 128usize],
2389     }
2390 
2391     #[cfg_attr(feature = "extra_traits", allow(missing_debug_implementations))]
2392     pub union SceNetApctlInfo {
2393         pub name: [u8; 64usize],
2394         pub bssid: [u8; 6usize],
2395         pub ssid: [u8; 32usize],
2396         pub ssid_length: u32,
2397         pub security_type: u32,
2398         pub strength: u8,
2399         pub channel: u8,
2400         pub power_save: u8,
2401         pub ip: [u8; 16usize],
2402         pub sub_net_mask: [u8; 16usize],
2403         pub gateway: [u8; 16usize],
2404         pub primary_dns: [u8; 16usize],
2405         pub secondary_dns: [u8; 16usize],
2406         pub use_proxy: u32,
2407         pub proxy_url: [u8; 128usize],
2408         pub proxy_port: u16,
2409         pub eap_type: u32,
2410         pub start_browser: u32,
2411         pub wifisp: u32,
2412     }
2413 }
2414 
2415 pub const INT_MIN: c_int = -2147483648;
2416 pub const INT_MAX: c_int = 2147483647;
2417 
2418 pub const AUDIO_VOLUME_MAX: u32 = 0x8000;
2419 pub const AUDIO_CHANNEL_MAX: u32 = 8;
2420 pub const AUDIO_NEXT_CHANNEL: i32 = -1;
2421 pub const AUDIO_SAMPLE_MIN: u32 = 64;
2422 pub const AUDIO_SAMPLE_MAX: u32 = 65472;
2423 
2424 pub const PSP_CTRL_SELECT: i32 = 0x000001;
2425 pub const PSP_CTRL_START: i32 = 0x000008;
2426 pub const PSP_CTRL_UP: i32 = 0x000010;
2427 pub const PSP_CTRL_RIGHT: i32 = 0x000020;
2428 pub const PSP_CTRL_DOWN: i32 = 0x000040;
2429 pub const PSP_CTRL_LEFT: i32 = 0x000080;
2430 pub const PSP_CTRL_LTRIGGER: i32 = 0x000100;
2431 pub const PSP_CTRL_RTRIGGER: i32 = 0x000200;
2432 pub const PSP_CTRL_TRIANGLE: i32 = 0x001000;
2433 pub const PSP_CTRL_CIRCLE: i32 = 0x002000;
2434 pub const PSP_CTRL_CROSS: i32 = 0x004000;
2435 pub const PSP_CTRL_SQUARE: i32 = 0x008000;
2436 pub const PSP_CTRL_HOME: i32 = 0x010000;
2437 pub const PSP_CTRL_HOLD: i32 = 0x020000;
2438 pub const PSP_CTRL_NOTE: i32 = 0x800000;
2439 pub const PSP_CTRL_SCREEN: i32 = 0x400000;
2440 pub const PSP_CTRL_VOLUP: i32 = 0x100000;
2441 pub const PSP_CTRL_VOLDOWN: i32 = 0x200000;
2442 pub const PSP_CTRL_WLAN_UP: i32 = 0x040000;
2443 pub const PSP_CTRL_REMOTE: i32 = 0x080000;
2444 pub const PSP_CTRL_DISC: i32 = 0x1000000;
2445 pub const PSP_CTRL_MS: i32 = 0x2000000;
2446 
2447 pub const USB_CAM_PID: i32 = 0x282;
2448 pub const USB_BUS_DRIVER_NAME: &str = "USBBusDriver";
2449 pub const USB_CAM_DRIVER_NAME: &str = "USBCamDriver";
2450 pub const USB_CAM_MIC_DRIVER_NAME: &str = "USBCamMicDriver";
2451 pub const USB_STOR_DRIVER_NAME: &str = "USBStor_Driver";
2452 
2453 pub const ACTIVATED: i32 = 0x200;
2454 pub const CONNECTED: i32 = 0x020;
2455 pub const ESTABLISHED: i32 = 0x002;
2456 
2457 pub const USB_CAM_FLIP: i32 = 1;
2458 pub const USB_CAM_MIRROR: i32 = 0x100;
2459 
2460 pub const THREAD_ATTR_VFPU: i32 = 0x00004000;
2461 pub const THREAD_ATTR_USER: i32 = 0x80000000;
2462 pub const THREAD_ATTR_USBWLAN: i32 = 0xa0000000;
2463 pub const THREAD_ATTR_VSH: i32 = 0xc0000000;
2464 pub const THREAD_ATTR_SCRATCH_SRAM: i32 = 0x00008000;
2465 pub const THREAD_ATTR_NO_FILLSTACK: i32 = 0x00100000;
2466 pub const THREAD_ATTR_CLEAR_STACK: i32 = 0x00200000;
2467 
2468 pub const EVENT_WAIT_MULTIPLE: i32 = 0x200;
2469 
2470 pub const EVENT_WAIT_AND: i32 = 0;
2471 pub const EVENT_WAIT_OR: i32 = 1;
2472 pub const EVENT_WAIT_CLEAR: i32 = 0x20;
2473 
2474 pub const POWER_INFO_POWER_SWITCH: i32 = 0x80000000;
2475 pub const POWER_INFO_HOLD_SWITCH: i32 = 0x40000000;
2476 pub const POWER_INFO_STANDBY: i32 = 0x00080000;
2477 pub const POWER_INFO_RESUME_COMPLETE: i32 = 0x00040000;
2478 pub const POWER_INFO_RESUMING: i32 = 0x00020000;
2479 pub const POWER_INFO_SUSPENDING: i32 = 0x00010000;
2480 pub const POWER_INFO_AC_POWER: i32 = 0x00001000;
2481 pub const POWER_INFO_BATTERY_LOW: i32 = 0x00000100;
2482 pub const POWER_INFO_BATTERY_EXIST: i32 = 0x00000080;
2483 pub const POWER_INFO_BATTERY_POWER: i32 = 0x0000007;
2484 
2485 pub const FIO_S_IFLNK: i32 = 0x4000;
2486 pub const FIO_S_IFDIR: i32 = 0x1000;
2487 pub const FIO_S_IFREG: i32 = 0x2000;
2488 pub const FIO_S_ISUID: i32 = 0x0800;
2489 pub const FIO_S_ISGID: i32 = 0x0400;
2490 pub const FIO_S_ISVTX: i32 = 0x0200;
2491 pub const FIO_S_IRUSR: i32 = 0x0100;
2492 pub const FIO_S_IWUSR: i32 = 0x0080;
2493 pub const FIO_S_IXUSR: i32 = 0x0040;
2494 pub const FIO_S_IRGRP: i32 = 0x0020;
2495 pub const FIO_S_IWGRP: i32 = 0x0010;
2496 pub const FIO_S_IXGRP: i32 = 0x0008;
2497 pub const FIO_S_IROTH: i32 = 0x0004;
2498 pub const FIO_S_IWOTH: i32 = 0x0002;
2499 pub const FIO_S_IXOTH: i32 = 0x0001;
2500 
2501 pub const FIO_SO_IFLNK: i32 = 0x0008;
2502 pub const FIO_SO_IFDIR: i32 = 0x0010;
2503 pub const FIO_SO_IFREG: i32 = 0x0020;
2504 pub const FIO_SO_IROTH: i32 = 0x0004;
2505 pub const FIO_SO_IWOTH: i32 = 0x0002;
2506 pub const FIO_SO_IXOTH: i32 = 0x0001;
2507 
2508 pub const PSP_O_RD_ONLY: i32 = 0x0001;
2509 pub const PSP_O_WR_ONLY: i32 = 0x0002;
2510 pub const PSP_O_RD_WR: i32 = 0x0003;
2511 pub const PSP_O_NBLOCK: i32 = 0x0004;
2512 pub const PSP_O_DIR: i32 = 0x0008;
2513 pub const PSP_O_APPEND: i32 = 0x0100;
2514 pub const PSP_O_CREAT: i32 = 0x0200;
2515 pub const PSP_O_TRUNC: i32 = 0x0400;
2516 pub const PSP_O_EXCL: i32 = 0x0800;
2517 pub const PSP_O_NO_WAIT: i32 = 0x8000;
2518 
2519 pub const UMD_NOT_PRESENT: i32 = 0x01;
2520 pub const UMD_PRESENT: i32 = 0x02;
2521 pub const UMD_CHANGED: i32 = 0x04;
2522 pub const UMD_INITING: i32 = 0x08;
2523 pub const UMD_INITED: i32 = 0x10;
2524 pub const UMD_READY: i32 = 0x20;
2525 
2526 pub const PLAY_PAUSE: i32 = 0x1;
2527 pub const FORWARD: i32 = 0x4;
2528 pub const BACK: i32 = 0x8;
2529 pub const VOL_UP: i32 = 0x10;
2530 pub const VOL_DOWN: i32 = 0x20;
2531 pub const HOLD: i32 = 0x80;
2532 
2533 pub const GU_PI: f32 = 3.141593;
2534 
2535 pub const GU_TEXTURE_8BIT: i32 = 1;
2536 pub const GU_TEXTURE_16BIT: i32 = 2;
2537 pub const GU_TEXTURE_32BITF: i32 = 3;
2538 pub const GU_COLOR_5650: i32 = 4 << 2;
2539 pub const GU_COLOR_5551: i32 = 5 << 2;
2540 pub const GU_COLOR_4444: i32 = 6 << 2;
2541 pub const GU_COLOR_8888: i32 = 7 << 2;
2542 pub const GU_NORMAL_8BIT: i32 = 1 << 5;
2543 pub const GU_NORMAL_16BIT: i32 = 2 << 5;
2544 pub const GU_NORMAL_32BITF: i32 = 3 << 5;
2545 pub const GU_VERTEX_8BIT: i32 = 1 << 7;
2546 pub const GU_VERTEX_16BIT: i32 = 2 << 7;
2547 pub const GU_VERTEX_32BITF: i32 = 3 << 7;
2548 pub const GU_WEIGHT_8BIT: i32 = 1 << 9;
2549 pub const GU_WEIGHT_16BIT: i32 = 2 << 9;
2550 pub const GU_WEIGHT_32BITF: i32 = 3 << 9;
2551 pub const GU_INDEX_8BIT: i32 = 1 << 11;
2552 pub const GU_INDEX_16BIT: i32 = 2 << 11;
2553 pub const GU_WEIGHTS1: i32 = (((1 - 1) & 7) << 14) as i32;
2554 pub const GU_WEIGHTS2: i32 = (((2 - 1) & 7) << 14) as i32;
2555 pub const GU_WEIGHTS3: i32 = (((3 - 1) & 7) << 14) as i32;
2556 pub const GU_WEIGHTS4: i32 = (((4 - 1) & 7) << 14) as i32;
2557 pub const GU_WEIGHTS5: i32 = (((5 - 1) & 7) << 14) as i32;
2558 pub const GU_WEIGHTS6: i32 = (((6 - 1) & 7) << 14) as i32;
2559 pub const GU_WEIGHTS7: i32 = (((7 - 1) & 7) << 14) as i32;
2560 pub const GU_WEIGHTS8: i32 = (((8 - 1) & 7) << 14) as i32;
2561 pub const GU_VERTICES1: i32 = (((1 - 1) & 7) << 18) as i32;
2562 pub const GU_VERTICES2: i32 = (((2 - 1) & 7) << 18) as i32;
2563 pub const GU_VERTICES3: i32 = (((3 - 1) & 7) << 18) as i32;
2564 pub const GU_VERTICES4: i32 = (((4 - 1) & 7) << 18) as i32;
2565 pub const GU_VERTICES5: i32 = (((5 - 1) & 7) << 18) as i32;
2566 pub const GU_VERTICES6: i32 = (((6 - 1) & 7) << 18) as i32;
2567 pub const GU_VERTICES7: i32 = (((7 - 1) & 7) << 18) as i32;
2568 pub const GU_VERTICES8: i32 = (((8 - 1) & 7) << 18) as i32;
2569 pub const GU_TRANSFORM_2D: i32 = 1 << 23;
2570 pub const GU_TRANSFORM_3D: i32 = 0;
2571 
2572 pub const GU_COLOR_BUFFER_BIT: i32 = 1;
2573 pub const GU_STENCIL_BUFFER_BIT: i32 = 2;
2574 pub const GU_DEPTH_BUFFER_BIT: i32 = 4;
2575 pub const GU_FAST_CLEAR_BIT: i32 = 16;
2576 
2577 pub const GU_AMBIENT: i32 = 1;
2578 pub const GU_DIFFUSE: i32 = 2;
2579 pub const GU_SPECULAR: i32 = 4;
2580 pub const GU_UNKNOWN_LIGHT_COMPONENT: i32 = 8;
2581 
2582 pub const SYSTEM_REGISTRY: [u8; 7] = *b"/system";
2583 pub const REG_KEYNAME_SIZE: u32 = 27;
2584 
2585 pub const UTILITY_MSGDIALOG_ERROR: i32 = 0;
2586 pub const UTILITY_MSGDIALOG_TEXT: i32 = 1;
2587 pub const UTILITY_MSGDIALOG_YES_NO_BUTTONS: i32 = 0x10;
2588 pub const UTILITY_MSGDIALOG_DEFAULT_NO: i32 = 0x100;
2589 
2590 pub const UTILITY_HTMLVIEWER_OPEN_SCE_START_PAGE: i32 = 0x000001;
2591 pub const UTILITY_HTMLVIEWER_DISABLE_STARTUP_LIMITS: i32 = 0x000002;
2592 pub const UTILITY_HTMLVIEWER_DISABLE_EXIT_DIALOG: i32 = 0x000004;
2593 pub const UTILITY_HTMLVIEWER_DISABLE_CURSOR: i32 = 0x000008;
2594 pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_COMPLETE_DIALOG: i32 = 0x000010;
2595 pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_START_DIALOG: i32 = 0x000020;
2596 pub const UTILITY_HTMLVIEWER_DISABLE_DOWNLOAD_DESTINATION_DIALOG: i32 = 0x000040;
2597 pub const UTILITY_HTMLVIEWER_LOCK_DOWNLOAD_DESTINATION_DIALOG: i32 = 0x000080;
2598 pub const UTILITY_HTMLVIEWER_DISABLE_TAB_DISPLAY: i32 = 0x000100;
2599 pub const UTILITY_HTMLVIEWER_ENABLE_ANALOG_HOLD: i32 = 0x000200;
2600 pub const UTILITY_HTMLVIEWER_ENABLE_FLASH: i32 = 0x000400;
2601 pub const UTILITY_HTMLVIEWER_DISABLE_LRTRIGGER: i32 = 0x000800;
2602 
2603 extern "C" {
sceAudioChReservenull2604     pub fn sceAudioChReserve(channel: i32, sample_count: i32, format: AudioFormat) -> i32;
sceAudioChReleasenull2605     pub fn sceAudioChRelease(channel: i32) -> i32;
sceAudioOutputnull2606     pub fn sceAudioOutput(channel: i32, vol: i32, buf: *mut c_void) -> i32;
sceAudioOutputBlockingnull2607     pub fn sceAudioOutputBlocking(channel: i32, vol: i32, buf: *mut c_void) -> i32;
sceAudioOutputPannednull2608     pub fn sceAudioOutputPanned(
2609         channel: i32,
2610         left_vol: i32,
2611         right_vol: i32,
2612         buf: *mut c_void,
2613     ) -> i32;
sceAudioOutputPannedBlockingnull2614     pub fn sceAudioOutputPannedBlocking(
2615         channel: i32,
2616         left_vol: i32,
2617         right_vol: i32,
2618         buf: *mut c_void,
2619     ) -> i32;
sceAudioGetChannelRestLennull2620     pub fn sceAudioGetChannelRestLen(channel: i32) -> i32;
sceAudioGetChannelRestLengthnull2621     pub fn sceAudioGetChannelRestLength(channel: i32) -> i32;
sceAudioSetChannelDataLennull2622     pub fn sceAudioSetChannelDataLen(channel: i32, sample_count: i32) -> i32;
sceAudioChangeChannelConfignull2623     pub fn sceAudioChangeChannelConfig(channel: i32, format: AudioFormat) -> i32;
sceAudioChangeChannelVolumenull2624     pub fn sceAudioChangeChannelVolume(channel: i32, left_vol: i32, right_vol: i32) -> i32;
sceAudioOutput2Reservenull2625     pub fn sceAudioOutput2Reserve(sample_count: i32) -> i32;
sceAudioOutput2Releasenull2626     pub fn sceAudioOutput2Release() -> i32;
sceAudioOutput2ChangeLengthnull2627     pub fn sceAudioOutput2ChangeLength(sample_count: i32) -> i32;
sceAudioOutput2OutputBlockingnull2628     pub fn sceAudioOutput2OutputBlocking(vol: i32, buf: *mut c_void) -> i32;
sceAudioOutput2GetRestSamplenull2629     pub fn sceAudioOutput2GetRestSample() -> i32;
sceAudioSRCChReservenull2630     pub fn sceAudioSRCChReserve(
2631         sample_count: i32,
2632         freq: AudioOutputFrequency,
2633         channels: i32,
2634     ) -> i32;
sceAudioSRCChReleasenull2635     pub fn sceAudioSRCChRelease() -> i32;
sceAudioSRCOutputBlockingnull2636     pub fn sceAudioSRCOutputBlocking(vol: i32, buf: *mut c_void) -> i32;
sceAudioInputInitnull2637     pub fn sceAudioInputInit(unknown1: i32, gain: i32, unknown2: i32) -> i32;
sceAudioInputInitExnull2638     pub fn sceAudioInputInitEx(params: *mut AudioInputParams) -> i32;
sceAudioInputBlockingnull2639     pub fn sceAudioInputBlocking(sample_count: i32, freq: AudioInputFrequency, buf: *mut c_void);
sceAudioInputnull2640     pub fn sceAudioInput(sample_count: i32, freq: AudioInputFrequency, buf: *mut c_void);
sceAudioGetInputLengthnull2641     pub fn sceAudioGetInputLength() -> i32;
sceAudioWaitInputEndnull2642     pub fn sceAudioWaitInputEnd() -> i32;
sceAudioPollInputEndnull2643     pub fn sceAudioPollInputEnd() -> i32;
2644 
sceAtracGetAtracIDnull2645     pub fn sceAtracGetAtracID(ui_codec_type: u32) -> i32;
sceAtracSetDataAndGetIDnull2646     pub fn sceAtracSetDataAndGetID(buf: *mut c_void, bufsize: usize) -> i32;
sceAtracDecodeDatanull2647     pub fn sceAtracDecodeData(
2648         atrac_id: i32,
2649         out_samples: *mut u16,
2650         out_n: *mut i32,
2651         out_end: *mut i32,
2652         out_remain_frame: *mut i32,
2653     ) -> i32;
sceAtracGetRemainFramenull2654     pub fn sceAtracGetRemainFrame(atrac_id: i32, out_remain_frame: *mut i32) -> i32;
sceAtracGetStreamDataInfonull2655     pub fn sceAtracGetStreamDataInfo(
2656         atrac_id: i32,
2657         write_pointer: *mut *mut u8,
2658         available_bytes: *mut u32,
2659         read_offset: *mut u32,
2660     ) -> i32;
sceAtracAddStreamDatanull2661     pub fn sceAtracAddStreamData(atrac_id: i32, bytes_to_add: u32) -> i32;
sceAtracGetBitratenull2662     pub fn sceAtracGetBitrate(atrac_id: i32, out_bitrate: *mut i32) -> i32;
sceAtracSetLoopNumnull2663     pub fn sceAtracSetLoopNum(atrac_id: i32, nloops: i32) -> i32;
sceAtracReleaseAtracIDnull2664     pub fn sceAtracReleaseAtracID(atrac_id: i32) -> i32;
sceAtracGetNextSamplenull2665     pub fn sceAtracGetNextSample(atrac_id: i32, out_n: *mut i32) -> i32;
sceAtracGetMaxSamplenull2666     pub fn sceAtracGetMaxSample(atrac_id: i32, out_max: *mut i32) -> i32;
sceAtracGetBufferInfoForResetingnull2667     pub fn sceAtracGetBufferInfoForReseting(
2668         atrac_id: i32,
2669         ui_sample: u32,
2670         pbuffer_info: *mut Atrac3BufferInfo,
2671     ) -> i32;
sceAtracGetChannelnull2672     pub fn sceAtracGetChannel(atrac_id: i32, pui_channel: *mut u32) -> i32;
sceAtracGetInternalErrorInfonull2673     pub fn sceAtracGetInternalErrorInfo(atrac_id: i32, pi_result: *mut i32) -> i32;
sceAtracGetLoopStatusnull2674     pub fn sceAtracGetLoopStatus(
2675         atrac_id: i32,
2676         pi_loop_num: *mut i32,
2677         pui_loop_status: *mut u32,
2678     ) -> i32;
sceAtracGetNextDecodePositionnull2679     pub fn sceAtracGetNextDecodePosition(atrac_id: i32, pui_sample_position: *mut u32) -> i32;
sceAtracGetSecondBufferInfonull2680     pub fn sceAtracGetSecondBufferInfo(
2681         atrac_id: i32,
2682         pui_position: *mut u32,
2683         pui_data_byte: *mut u32,
2684     ) -> i32;
sceAtracGetSoundSamplenull2685     pub fn sceAtracGetSoundSample(
2686         atrac_id: i32,
2687         pi_end_sample: *mut i32,
2688         pi_loop_start_sample: *mut i32,
2689         pi_loop_end_sample: *mut i32,
2690     ) -> i32;
sceAtracResetPlayPositionnull2691     pub fn sceAtracResetPlayPosition(
2692         atrac_id: i32,
2693         ui_sample: u32,
2694         ui_write_byte_first_buf: u32,
2695         ui_write_byte_second_buf: u32,
2696     ) -> i32;
sceAtracSetDatanull2697     pub fn sceAtracSetData(atrac_id: i32, puc_buffer_addr: *mut u8, ui_buffer_byte: u32) -> i32;
sceAtracSetHalfwayBuffernull2698     pub fn sceAtracSetHalfwayBuffer(
2699         atrac_id: i32,
2700         puc_buffer_addr: *mut u8,
2701         ui_read_byte: u32,
2702         ui_buffer_byte: u32,
2703     ) -> i32;
sceAtracSetHalfwayBufferAndGetIDnull2704     pub fn sceAtracSetHalfwayBufferAndGetID(
2705         puc_buffer_addr: *mut u8,
2706         ui_read_byte: u32,
2707         ui_buffer_byte: u32,
2708     ) -> i32;
sceAtracSetSecondBuffernull2709     pub fn sceAtracSetSecondBuffer(
2710         atrac_id: i32,
2711         puc_second_buffer_addr: *mut u8,
2712         ui_second_buffer_byte: u32,
2713     ) -> i32;
2714 
sceCtrlSetSamplingCyclenull2715     pub fn sceCtrlSetSamplingCycle(cycle: i32) -> i32;
sceCtrlGetSamplingCyclenull2716     pub fn sceCtrlGetSamplingCycle(pcycle: *mut i32) -> i32;
sceCtrlSetSamplingModenull2717     pub fn sceCtrlSetSamplingMode(mode: CtrlMode) -> i32;
sceCtrlGetSamplingModenull2718     pub fn sceCtrlGetSamplingMode(pmode: *mut i32) -> i32;
sceCtrlPeekBufferPositivenull2719     pub fn sceCtrlPeekBufferPositive(pad_data: *mut SceCtrlData, count: i32) -> i32;
sceCtrlPeekBufferNegativenull2720     pub fn sceCtrlPeekBufferNegative(pad_data: *mut SceCtrlData, count: i32) -> i32;
sceCtrlReadBufferPositivenull2721     pub fn sceCtrlReadBufferPositive(pad_data: *mut SceCtrlData, count: i32) -> i32;
sceCtrlReadBufferNegativenull2722     pub fn sceCtrlReadBufferNegative(pad_data: *mut SceCtrlData, count: i32) -> i32;
sceCtrlPeekLatchnull2723     pub fn sceCtrlPeekLatch(latch_data: *mut SceCtrlLatch) -> i32;
sceCtrlReadLatchnull2724     pub fn sceCtrlReadLatch(latch_data: *mut SceCtrlLatch) -> i32;
sceCtrlSetIdleCancelThresholdnull2725     pub fn sceCtrlSetIdleCancelThreshold(idlereset: i32, idleback: i32) -> i32;
sceCtrlGetIdleCancelThresholdnull2726     pub fn sceCtrlGetIdleCancelThreshold(idlereset: *mut i32, idleback: *mut i32) -> i32;
2727 
sceDisplaySetModenull2728     pub fn sceDisplaySetMode(mode: DisplayMode, width: usize, height: usize) -> u32;
sceDisplayGetModenull2729     pub fn sceDisplayGetMode(pmode: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> i32;
sceDisplaySetFrameBufnull2730     pub fn sceDisplaySetFrameBuf(
2731         top_addr: *const u8,
2732         buffer_width: usize,
2733         pixel_format: DisplayPixelFormat,
2734         sync: DisplaySetBufSync,
2735     ) -> u32;
sceDisplayGetFrameBufnull2736     pub fn sceDisplayGetFrameBuf(
2737         top_addr: *mut *mut c_void,
2738         buffer_width: *mut usize,
2739         pixel_format: *mut DisplayPixelFormat,
2740         sync: DisplaySetBufSync,
2741     ) -> i32;
sceDisplayGetVcountnull2742     pub fn sceDisplayGetVcount() -> u32;
sceDisplayWaitVblanknull2743     pub fn sceDisplayWaitVblank() -> i32;
sceDisplayWaitVblankCBnull2744     pub fn sceDisplayWaitVblankCB() -> i32;
sceDisplayWaitVblankStartnull2745     pub fn sceDisplayWaitVblankStart() -> i32;
sceDisplayWaitVblankStartCBnull2746     pub fn sceDisplayWaitVblankStartCB() -> i32;
sceDisplayGetAccumulatedHcountnull2747     pub fn sceDisplayGetAccumulatedHcount() -> i32;
sceDisplayGetCurrentHcountnull2748     pub fn sceDisplayGetCurrentHcount() -> i32;
sceDisplayGetFramePerSecnull2749     pub fn sceDisplayGetFramePerSec() -> f32;
sceDisplayIsForegroundnull2750     pub fn sceDisplayIsForeground() -> i32;
sceDisplayIsVblanknull2751     pub fn sceDisplayIsVblank() -> i32;
2752 
sceGeEdramGetSizenull2753     pub fn sceGeEdramGetSize() -> u32;
sceGeEdramGetAddrnull2754     pub fn sceGeEdramGetAddr() -> *mut u8;
sceGeEdramSetAddrTranslationnull2755     pub fn sceGeEdramSetAddrTranslation(width: i32) -> i32;
sceGeGetCmdnull2756     pub fn sceGeGetCmd(cmd: i32) -> u32;
sceGeGetMtxnull2757     pub fn sceGeGetMtx(type_: GeMatrixType, matrix: *mut c_void) -> i32;
sceGeGetStacknull2758     pub fn sceGeGetStack(stack_id: i32, stack: *mut GeStack) -> i32;
sceGeSaveContextnull2759     pub fn sceGeSaveContext(context: *mut GeContext) -> i32;
sceGeRestoreContextnull2760     pub fn sceGeRestoreContext(context: *const GeContext) -> i32;
sceGeListEnQueuenull2761     pub fn sceGeListEnQueue(
2762         list: *const c_void,
2763         stall: *mut c_void,
2764         cbid: i32,
2765         arg: *mut GeListArgs,
2766     ) -> i32;
sceGeListEnQueueHeadnull2767     pub fn sceGeListEnQueueHead(
2768         list: *const c_void,
2769         stall: *mut c_void,
2770         cbid: i32,
2771         arg: *mut GeListArgs,
2772     ) -> i32;
sceGeListDeQueuenull2773     pub fn sceGeListDeQueue(qid: i32) -> i32;
sceGeListUpdateStallAddrnull2774     pub fn sceGeListUpdateStallAddr(qid: i32, stall: *mut c_void) -> i32;
sceGeListSyncnull2775     pub fn sceGeListSync(qid: i32, sync_type: i32) -> GeListState;
sceGeDrawSyncnull2776     pub fn sceGeDrawSync(sync_type: i32) -> GeListState;
sceGeBreaknull2777     pub fn sceGeBreak(mode: i32, p_param: *mut GeBreakParam) -> i32;
sceGeContinuenull2778     pub fn sceGeContinue() -> i32;
sceGeSetCallbacknull2779     pub fn sceGeSetCallback(cb: *mut GeCallbackData) -> i32;
sceGeUnsetCallbacknull2780     pub fn sceGeUnsetCallback(cbid: i32) -> i32;
2781 
sceKernelExitGamenull2782     pub fn sceKernelExitGame();
sceKernelRegisterExitCallbacknull2783     pub fn sceKernelRegisterExitCallback(id: SceUid) -> i32;
sceKernelLoadExecnull2784     pub fn sceKernelLoadExec(file: *const u8, param: *mut SceKernelLoadExecParam) -> i32;
2785 
sceKernelAllocPartitionMemorynull2786     pub fn sceKernelAllocPartitionMemory(
2787         partition: SceSysMemPartitionId,
2788         name: *const u8,
2789         type_: SceSysMemBlockTypes,
2790         size: u32,
2791         addr: *mut c_void,
2792     ) -> SceUid;
sceKernelGetBlockHeadAddrnull2793     pub fn sceKernelGetBlockHeadAddr(blockid: SceUid) -> *mut c_void;
sceKernelFreePartitionMemorynull2794     pub fn sceKernelFreePartitionMemory(blockid: SceUid) -> i32;
sceKernelTotalFreeMemSizenull2795     pub fn sceKernelTotalFreeMemSize() -> usize;
sceKernelMaxFreeMemSizenull2796     pub fn sceKernelMaxFreeMemSize() -> usize;
sceKernelDevkitVersionnull2797     pub fn sceKernelDevkitVersion() -> u32;
sceKernelSetCompiledSdkVersionnull2798     pub fn sceKernelSetCompiledSdkVersion(version: u32) -> i32;
sceKernelGetCompiledSdkVersionnull2799     pub fn sceKernelGetCompiledSdkVersion() -> u32;
2800 
sceKernelLibcTimenull2801     pub fn sceKernelLibcTime(t: *mut i32) -> i32;
sceKernelLibcClocknull2802     pub fn sceKernelLibcClock() -> u32;
sceKernelLibcGettimeofdaynull2803     pub fn sceKernelLibcGettimeofday(tp: *mut timeval, tzp: *mut timezone) -> i32;
sceKernelDcacheWritebackAllnull2804     pub fn sceKernelDcacheWritebackAll();
sceKernelDcacheWritebackInvalidateAllnull2805     pub fn sceKernelDcacheWritebackInvalidateAll();
sceKernelDcacheWritebackRangenull2806     pub fn sceKernelDcacheWritebackRange(p: *const c_void, size: u32);
sceKernelDcacheWritebackInvalidateRangenull2807     pub fn sceKernelDcacheWritebackInvalidateRange(p: *const c_void, size: u32);
sceKernelDcacheInvalidateRangenull2808     pub fn sceKernelDcacheInvalidateRange(p: *const c_void, size: u32);
sceKernelIcacheInvalidateAllnull2809     pub fn sceKernelIcacheInvalidateAll();
sceKernelIcacheInvalidateRangenull2810     pub fn sceKernelIcacheInvalidateRange(p: *const c_void, size: u32);
sceKernelUtilsMt19937Initnull2811     pub fn sceKernelUtilsMt19937Init(ctx: *mut SceKernelUtilsMt19937Context, seed: u32) -> i32;
sceKernelUtilsMt19937UIntnull2812     pub fn sceKernelUtilsMt19937UInt(ctx: *mut SceKernelUtilsMt19937Context) -> u32;
sceKernelUtilsMd5Digestnull2813     pub fn sceKernelUtilsMd5Digest(data: *mut u8, size: u32, digest: *mut u8) -> i32;
sceKernelUtilsMd5BlockInitnull2814     pub fn sceKernelUtilsMd5BlockInit(ctx: *mut SceKernelUtilsMd5Context) -> i32;
sceKernelUtilsMd5BlockUpdatenull2815     pub fn sceKernelUtilsMd5BlockUpdate(
2816         ctx: *mut SceKernelUtilsMd5Context,
2817         data: *mut u8,
2818         size: u32,
2819     ) -> i32;
sceKernelUtilsMd5BlockResultnull2820     pub fn sceKernelUtilsMd5BlockResult(ctx: *mut SceKernelUtilsMd5Context, digest: *mut u8)
2821         -> i32;
sceKernelUtilsSha1Digestnull2822     pub fn sceKernelUtilsSha1Digest(data: *mut u8, size: u32, digest: *mut u8) -> i32;
sceKernelUtilsSha1BlockInitnull2823     pub fn sceKernelUtilsSha1BlockInit(ctx: *mut SceKernelUtilsSha1Context) -> i32;
sceKernelUtilsSha1BlockUpdatenull2824     pub fn sceKernelUtilsSha1BlockUpdate(
2825         ctx: *mut SceKernelUtilsSha1Context,
2826         data: *mut u8,
2827         size: u32,
2828     ) -> i32;
sceKernelUtilsSha1BlockResultnull2829     pub fn sceKernelUtilsSha1BlockResult(
2830         ctx: *mut SceKernelUtilsSha1Context,
2831         digest: *mut u8,
2832     ) -> i32;
2833 
sceKernelRegisterSubIntrHandlernull2834     pub fn sceKernelRegisterSubIntrHandler(
2835         int_no: i32,
2836         no: i32,
2837         handler: *mut c_void,
2838         arg: *mut c_void,
2839     ) -> i32;
sceKernelReleaseSubIntrHandlernull2840     pub fn sceKernelReleaseSubIntrHandler(int_no: i32, no: i32) -> i32;
sceKernelEnableSubIntrnull2841     pub fn sceKernelEnableSubIntr(int_no: i32, no: i32) -> i32;
sceKernelDisableSubIntrnull2842     pub fn sceKernelDisableSubIntr(int_no: i32, no: i32) -> i32;
QueryIntrHandlerInfonull2843     pub fn QueryIntrHandlerInfo(
2844         intr_code: SceUid,
2845         sub_intr_code: SceUid,
2846         data: *mut IntrHandlerOptionParam,
2847     ) -> i32;
2848 
sceKernelCpuSuspendIntrnull2849     pub fn sceKernelCpuSuspendIntr() -> u32;
sceKernelCpuResumeIntrnull2850     pub fn sceKernelCpuResumeIntr(flags: u32);
sceKernelCpuResumeIntrWithSyncnull2851     pub fn sceKernelCpuResumeIntrWithSync(flags: u32);
sceKernelIsCpuIntrSuspendednull2852     pub fn sceKernelIsCpuIntrSuspended(flags: u32) -> i32;
sceKernelIsCpuIntrEnablenull2853     pub fn sceKernelIsCpuIntrEnable() -> i32;
2854 
sceKernelLoadModulenull2855     pub fn sceKernelLoadModule(
2856         path: *const u8,
2857         flags: i32,
2858         option: *mut SceKernelLMOption,
2859     ) -> SceUid;
sceKernelLoadModuleMsnull2860     pub fn sceKernelLoadModuleMs(
2861         path: *const u8,
2862         flags: i32,
2863         option: *mut SceKernelLMOption,
2864     ) -> SceUid;
sceKernelLoadModuleByIDnull2865     pub fn sceKernelLoadModuleByID(
2866         fid: SceUid,
2867         flags: i32,
2868         option: *mut SceKernelLMOption,
2869     ) -> SceUid;
sceKernelLoadModuleBufferUsbWlannull2870     pub fn sceKernelLoadModuleBufferUsbWlan(
2871         buf_size: usize,
2872         buf: *mut c_void,
2873         flags: i32,
2874         option: *mut SceKernelLMOption,
2875     ) -> SceUid;
sceKernelStartModulenull2876     pub fn sceKernelStartModule(
2877         mod_id: SceUid,
2878         arg_size: usize,
2879         argp: *mut c_void,
2880         status: *mut i32,
2881         option: *mut SceKernelSMOption,
2882     ) -> i32;
sceKernelStopModulenull2883     pub fn sceKernelStopModule(
2884         mod_id: SceUid,
2885         arg_size: usize,
2886         argp: *mut c_void,
2887         status: *mut i32,
2888         option: *mut SceKernelSMOption,
2889     ) -> i32;
sceKernelUnloadModulenull2890     pub fn sceKernelUnloadModule(mod_id: SceUid) -> i32;
sceKernelSelfStopUnloadModulenull2891     pub fn sceKernelSelfStopUnloadModule(unknown: i32, arg_size: usize, argp: *mut c_void) -> i32;
sceKernelStopUnloadSelfModulenull2892     pub fn sceKernelStopUnloadSelfModule(
2893         arg_size: usize,
2894         argp: *mut c_void,
2895         status: *mut i32,
2896         option: *mut SceKernelSMOption,
2897     ) -> i32;
sceKernelQueryModuleInfonull2898     pub fn sceKernelQueryModuleInfo(mod_id: SceUid, info: *mut SceKernelModuleInfo) -> i32;
sceKernelGetModuleIdListnull2899     pub fn sceKernelGetModuleIdList(
2900         read_buf: *mut SceUid,
2901         read_buf_size: i32,
2902         id_count: *mut i32,
2903     ) -> i32;
2904 
sceKernelVolatileMemLocknull2905     pub fn sceKernelVolatileMemLock(unk: i32, ptr: *mut *mut c_void, size: *mut i32) -> i32;
sceKernelVolatileMemTryLocknull2906     pub fn sceKernelVolatileMemTryLock(unk: i32, ptr: *mut *mut c_void, size: *mut i32) -> i32;
sceKernelVolatileMemUnlocknull2907     pub fn sceKernelVolatileMemUnlock(unk: i32) -> i32;
2908 
sceKernelStdinnull2909     pub fn sceKernelStdin() -> SceUid;
sceKernelStdoutnull2910     pub fn sceKernelStdout() -> SceUid;
sceKernelStderrnull2911     pub fn sceKernelStderr() -> SceUid;
2912 
sceKernelGetThreadmanIdTypenull2913     pub fn sceKernelGetThreadmanIdType(uid: SceUid) -> SceKernelIdListType;
sceKernelCreateThreadnull2914     pub fn sceKernelCreateThread(
2915         name: *const u8,
2916         entry: SceKernelThreadEntry,
2917         init_priority: i32,
2918         stack_size: i32,
2919         attr: i32,
2920         option: *mut SceKernelThreadOptParam,
2921     ) -> SceUid;
sceKernelDeleteThreadnull2922     pub fn sceKernelDeleteThread(thid: SceUid) -> i32;
sceKernelStartThreadnull2923     pub fn sceKernelStartThread(id: SceUid, arg_len: usize, arg_p: *mut c_void) -> i32;
sceKernelExitThreadnull2924     pub fn sceKernelExitThread(status: i32) -> i32;
sceKernelExitDeleteThreadnull2925     pub fn sceKernelExitDeleteThread(status: i32) -> i32;
sceKernelTerminateThreadnull2926     pub fn sceKernelTerminateThread(thid: SceUid) -> i32;
sceKernelTerminateDeleteThreadnull2927     pub fn sceKernelTerminateDeleteThread(thid: SceUid) -> i32;
sceKernelSuspendDispatchThreadnull2928     pub fn sceKernelSuspendDispatchThread() -> i32;
sceKernelResumeDispatchThreadnull2929     pub fn sceKernelResumeDispatchThread(state: i32) -> i32;
sceKernelSleepThreadnull2930     pub fn sceKernelSleepThread() -> i32;
sceKernelSleepThreadCBnull2931     pub fn sceKernelSleepThreadCB() -> i32;
sceKernelWakeupThreadnull2932     pub fn sceKernelWakeupThread(thid: SceUid) -> i32;
sceKernelCancelWakeupThreadnull2933     pub fn sceKernelCancelWakeupThread(thid: SceUid) -> i32;
sceKernelSuspendThreadnull2934     pub fn sceKernelSuspendThread(thid: SceUid) -> i32;
sceKernelResumeThreadnull2935     pub fn sceKernelResumeThread(thid: SceUid) -> i32;
sceKernelWaitThreadEndnull2936     pub fn sceKernelWaitThreadEnd(thid: SceUid, timeout: *mut u32) -> i32;
sceKernelWaitThreadEndCBnull2937     pub fn sceKernelWaitThreadEndCB(thid: SceUid, timeout: *mut u32) -> i32;
sceKernelDelayThreadnull2938     pub fn sceKernelDelayThread(delay: u32) -> i32;
sceKernelDelayThreadCBnull2939     pub fn sceKernelDelayThreadCB(delay: u32) -> i32;
sceKernelDelaySysClockThreadnull2940     pub fn sceKernelDelaySysClockThread(delay: *mut SceKernelSysClock) -> i32;
sceKernelDelaySysClockThreadCBnull2941     pub fn sceKernelDelaySysClockThreadCB(delay: *mut SceKernelSysClock) -> i32;
sceKernelChangeCurrentThreadAttrnull2942     pub fn sceKernelChangeCurrentThreadAttr(unknown: i32, attr: i32) -> i32;
sceKernelChangeThreadPrioritynull2943     pub fn sceKernelChangeThreadPriority(thid: SceUid, priority: i32) -> i32;
sceKernelRotateThreadReadyQueuenull2944     pub fn sceKernelRotateThreadReadyQueue(priority: i32) -> i32;
sceKernelReleaseWaitThreadnull2945     pub fn sceKernelReleaseWaitThread(thid: SceUid) -> i32;
sceKernelGetThreadIdnull2946     pub fn sceKernelGetThreadId() -> i32;
sceKernelGetThreadCurrentPrioritynull2947     pub fn sceKernelGetThreadCurrentPriority() -> i32;
sceKernelGetThreadExitStatusnull2948     pub fn sceKernelGetThreadExitStatus(thid: SceUid) -> i32;
sceKernelCheckThreadStacknull2949     pub fn sceKernelCheckThreadStack() -> i32;
sceKernelGetThreadStackFreeSizenull2950     pub fn sceKernelGetThreadStackFreeSize(thid: SceUid) -> i32;
sceKernelReferThreadStatusnull2951     pub fn sceKernelReferThreadStatus(thid: SceUid, info: *mut SceKernelThreadInfo) -> i32;
sceKernelReferThreadRunStatusnull2952     pub fn sceKernelReferThreadRunStatus(
2953         thid: SceUid,
2954         status: *mut SceKernelThreadRunStatus,
2955     ) -> i32;
sceKernelCreateSemanull2956     pub fn sceKernelCreateSema(
2957         name: *const u8,
2958         attr: u32,
2959         init_val: i32,
2960         max_val: i32,
2961         option: *mut SceKernelSemaOptParam,
2962     ) -> SceUid;
sceKernelDeleteSemanull2963     pub fn sceKernelDeleteSema(sema_id: SceUid) -> i32;
sceKernelSignalSemanull2964     pub fn sceKernelSignalSema(sema_id: SceUid, signal: i32) -> i32;
sceKernelWaitSemanull2965     pub fn sceKernelWaitSema(sema_id: SceUid, signal: i32, timeout: *mut u32) -> i32;
sceKernelWaitSemaCBnull2966     pub fn sceKernelWaitSemaCB(sema_id: SceUid, signal: i32, timeout: *mut u32) -> i32;
sceKernelPollSemanull2967     pub fn sceKernelPollSema(sema_id: SceUid, signal: i32) -> i32;
sceKernelReferSemaStatusnull2968     pub fn sceKernelReferSemaStatus(sema_id: SceUid, info: *mut SceKernelSemaInfo) -> i32;
sceKernelCreateEventFlagnull2969     pub fn sceKernelCreateEventFlag(
2970         name: *const u8,
2971         attr: i32,
2972         bits: i32,
2973         opt: *mut SceKernelEventFlagOptParam,
2974     ) -> SceUid;
sceKernelSetEventFlagnull2975     pub fn sceKernelSetEventFlag(ev_id: SceUid, bits: u32) -> i32;
sceKernelClearEventFlagnull2976     pub fn sceKernelClearEventFlag(ev_id: SceUid, bits: u32) -> i32;
sceKernelPollEventFlagnull2977     pub fn sceKernelPollEventFlag(ev_id: SceUid, bits: u32, wait: i32, out_bits: *mut u32) -> i32;
sceKernelWaitEventFlagnull2978     pub fn sceKernelWaitEventFlag(
2979         ev_id: SceUid,
2980         bits: u32,
2981         wait: i32,
2982         out_bits: *mut u32,
2983         timeout: *mut u32,
2984     ) -> i32;
sceKernelWaitEventFlagCBnull2985     pub fn sceKernelWaitEventFlagCB(
2986         ev_id: SceUid,
2987         bits: u32,
2988         wait: i32,
2989         out_bits: *mut u32,
2990         timeout: *mut u32,
2991     ) -> i32;
sceKernelDeleteEventFlagnull2992     pub fn sceKernelDeleteEventFlag(ev_id: SceUid) -> i32;
sceKernelReferEventFlagStatusnull2993     pub fn sceKernelReferEventFlagStatus(event: SceUid, status: *mut SceKernelEventFlagInfo)
2994         -> i32;
sceKernelCreateMbxnull2995     pub fn sceKernelCreateMbx(
2996         name: *const u8,
2997         attr: u32,
2998         option: *mut SceKernelMbxOptParam,
2999     ) -> SceUid;
sceKernelDeleteMbxnull3000     pub fn sceKernelDeleteMbx(mbx_id: SceUid) -> i32;
sceKernelSendMbxnull3001     pub fn sceKernelSendMbx(mbx_id: SceUid, message: *mut c_void) -> i32;
sceKernelReceiveMbxnull3002     pub fn sceKernelReceiveMbx(mbx_id: SceUid, message: *mut *mut c_void, timeout: *mut u32)
3003         -> i32;
sceKernelReceiveMbxCBnull3004     pub fn sceKernelReceiveMbxCB(
3005         mbx_id: SceUid,
3006         message: *mut *mut c_void,
3007         timeout: *mut u32,
3008     ) -> i32;
sceKernelPollMbxnull3009     pub fn sceKernelPollMbx(mbx_id: SceUid, pmessage: *mut *mut c_void) -> i32;
sceKernelCancelReceiveMbxnull3010     pub fn sceKernelCancelReceiveMbx(mbx_id: SceUid, num: *mut i32) -> i32;
sceKernelReferMbxStatusnull3011     pub fn sceKernelReferMbxStatus(mbx_id: SceUid, info: *mut SceKernelMbxInfo) -> i32;
sceKernelSetAlarmnull3012     pub fn sceKernelSetAlarm(
3013         clock: u32,
3014         handler: SceKernelAlarmHandler,
3015         common: *mut c_void,
3016     ) -> SceUid;
sceKernelSetSysClockAlarmnull3017     pub fn sceKernelSetSysClockAlarm(
3018         clock: *mut SceKernelSysClock,
3019         handler: *mut SceKernelAlarmHandler,
3020         common: *mut c_void,
3021     ) -> SceUid;
sceKernelCancelAlarmnull3022     pub fn sceKernelCancelAlarm(alarm_id: SceUid) -> i32;
sceKernelReferAlarmStatusnull3023     pub fn sceKernelReferAlarmStatus(alarm_id: SceUid, info: *mut SceKernelAlarmInfo) -> i32;
sceKernelCreateCallbacknull3024     pub fn sceKernelCreateCallback(
3025         name: *const u8,
3026         func: SceKernelCallbackFunction,
3027         arg: *mut c_void,
3028     ) -> SceUid;
sceKernelReferCallbackStatusnull3029     pub fn sceKernelReferCallbackStatus(cb: SceUid, status: *mut SceKernelCallbackInfo) -> i32;
sceKernelDeleteCallbacknull3030     pub fn sceKernelDeleteCallback(cb: SceUid) -> i32;
sceKernelNotifyCallbacknull3031     pub fn sceKernelNotifyCallback(cb: SceUid, arg2: i32) -> i32;
sceKernelCancelCallbacknull3032     pub fn sceKernelCancelCallback(cb: SceUid) -> i32;
sceKernelGetCallbackCountnull3033     pub fn sceKernelGetCallbackCount(cb: SceUid) -> i32;
sceKernelCheckCallbacknull3034     pub fn sceKernelCheckCallback() -> i32;
sceKernelGetThreadmanIdListnull3035     pub fn sceKernelGetThreadmanIdList(
3036         type_: SceKernelIdListType,
3037         read_buf: *mut SceUid,
3038         read_buf_size: i32,
3039         id_count: *mut i32,
3040     ) -> i32;
sceKernelReferSystemStatusnull3041     pub fn sceKernelReferSystemStatus(status: *mut SceKernelSystemStatus) -> i32;
sceKernelCreateMsgPipenull3042     pub fn sceKernelCreateMsgPipe(
3043         name: *const u8,
3044         part: i32,
3045         attr: i32,
3046         unk1: *mut c_void,
3047         opt: *mut c_void,
3048     ) -> SceUid;
sceKernelDeleteMsgPipenull3049     pub fn sceKernelDeleteMsgPipe(uid: SceUid) -> i32;
sceKernelSendMsgPipenull3050     pub fn sceKernelSendMsgPipe(
3051         uid: SceUid,
3052         message: *mut c_void,
3053         size: u32,
3054         unk1: i32,
3055         unk2: *mut c_void,
3056         timeout: *mut u32,
3057     ) -> i32;
sceKernelSendMsgPipeCBnull3058     pub fn sceKernelSendMsgPipeCB(
3059         uid: SceUid,
3060         message: *mut c_void,
3061         size: u32,
3062         unk1: i32,
3063         unk2: *mut c_void,
3064         timeout: *mut u32,
3065     ) -> i32;
sceKernelTrySendMsgPipenull3066     pub fn sceKernelTrySendMsgPipe(
3067         uid: SceUid,
3068         message: *mut c_void,
3069         size: u32,
3070         unk1: i32,
3071         unk2: *mut c_void,
3072     ) -> i32;
sceKernelReceiveMsgPipenull3073     pub fn sceKernelReceiveMsgPipe(
3074         uid: SceUid,
3075         message: *mut c_void,
3076         size: u32,
3077         unk1: i32,
3078         unk2: *mut c_void,
3079         timeout: *mut u32,
3080     ) -> i32;
sceKernelReceiveMsgPipeCBnull3081     pub fn sceKernelReceiveMsgPipeCB(
3082         uid: SceUid,
3083         message: *mut c_void,
3084         size: u32,
3085         unk1: i32,
3086         unk2: *mut c_void,
3087         timeout: *mut u32,
3088     ) -> i32;
sceKernelTryReceiveMsgPipenull3089     pub fn sceKernelTryReceiveMsgPipe(
3090         uid: SceUid,
3091         message: *mut c_void,
3092         size: u32,
3093         unk1: i32,
3094         unk2: *mut c_void,
3095     ) -> i32;
sceKernelCancelMsgPipenull3096     pub fn sceKernelCancelMsgPipe(uid: SceUid, send: *mut i32, recv: *mut i32) -> i32;
sceKernelReferMsgPipeStatusnull3097     pub fn sceKernelReferMsgPipeStatus(uid: SceUid, info: *mut SceKernelMppInfo) -> i32;
sceKernelCreateVplnull3098     pub fn sceKernelCreateVpl(
3099         name: *const u8,
3100         part: i32,
3101         attr: i32,
3102         size: u32,
3103         opt: *mut SceKernelVplOptParam,
3104     ) -> SceUid;
sceKernelDeleteVplnull3105     pub fn sceKernelDeleteVpl(uid: SceUid) -> i32;
sceKernelAllocateVplnull3106     pub fn sceKernelAllocateVpl(
3107         uid: SceUid,
3108         size: u32,
3109         data: *mut *mut c_void,
3110         timeout: *mut u32,
3111     ) -> i32;
sceKernelAllocateVplCBnull3112     pub fn sceKernelAllocateVplCB(
3113         uid: SceUid,
3114         size: u32,
3115         data: *mut *mut c_void,
3116         timeout: *mut u32,
3117     ) -> i32;
sceKernelTryAllocateVplnull3118     pub fn sceKernelTryAllocateVpl(uid: SceUid, size: u32, data: *mut *mut c_void) -> i32;
sceKernelFreeVplnull3119     pub fn sceKernelFreeVpl(uid: SceUid, data: *mut c_void) -> i32;
sceKernelCancelVplnull3120     pub fn sceKernelCancelVpl(uid: SceUid, num: *mut i32) -> i32;
sceKernelReferVplStatusnull3121     pub fn sceKernelReferVplStatus(uid: SceUid, info: *mut SceKernelVplInfo) -> i32;
sceKernelCreateFplnull3122     pub fn sceKernelCreateFpl(
3123         name: *const u8,
3124         part: i32,
3125         attr: i32,
3126         size: u32,
3127         blocks: u32,
3128         opt: *mut SceKernelFplOptParam,
3129     ) -> i32;
sceKernelDeleteFplnull3130     pub fn sceKernelDeleteFpl(uid: SceUid) -> i32;
sceKernelAllocateFplnull3131     pub fn sceKernelAllocateFpl(uid: SceUid, data: *mut *mut c_void, timeout: *mut u32) -> i32;
sceKernelAllocateFplCBnull3132     pub fn sceKernelAllocateFplCB(uid: SceUid, data: *mut *mut c_void, timeout: *mut u32) -> i32;
sceKernelTryAllocateFplnull3133     pub fn sceKernelTryAllocateFpl(uid: SceUid, data: *mut *mut c_void) -> i32;
sceKernelFreeFplnull3134     pub fn sceKernelFreeFpl(uid: SceUid, data: *mut c_void) -> i32;
sceKernelCancelFplnull3135     pub fn sceKernelCancelFpl(uid: SceUid, pnum: *mut i32) -> i32;
sceKernelReferFplStatusnull3136     pub fn sceKernelReferFplStatus(uid: SceUid, info: *mut SceKernelFplInfo) -> i32;
sceKernelUSec2SysClocknull3137     pub fn sceKernelUSec2SysClock(usec: u32, clock: *mut SceKernelSysClock) -> i32;
sceKernelUSec2SysClockWidenull3138     pub fn sceKernelUSec2SysClockWide(usec: u32) -> i64;
sceKernelSysClock2USecnull3139     pub fn sceKernelSysClock2USec(
3140         clock: *mut SceKernelSysClock,
3141         low: *mut u32,
3142         high: *mut u32,
3143     ) -> i32;
sceKernelSysClock2USecWidenull3144     pub fn sceKernelSysClock2USecWide(clock: i64, low: *mut u32, high: *mut u32) -> i32;
sceKernelGetSystemTimenull3145     pub fn sceKernelGetSystemTime(time: *mut SceKernelSysClock) -> i32;
sceKernelGetSystemTimeWidenull3146     pub fn sceKernelGetSystemTimeWide() -> i64;
sceKernelGetSystemTimeLownull3147     pub fn sceKernelGetSystemTimeLow() -> u32;
sceKernelCreateVTimernull3148     pub fn sceKernelCreateVTimer(name: *const u8, opt: *mut SceKernelVTimerOptParam) -> SceUid;
sceKernelDeleteVTimernull3149     pub fn sceKernelDeleteVTimer(uid: SceUid) -> i32;
sceKernelGetVTimerBasenull3150     pub fn sceKernelGetVTimerBase(uid: SceUid, base: *mut SceKernelSysClock) -> i32;
sceKernelGetVTimerBaseWidenull3151     pub fn sceKernelGetVTimerBaseWide(uid: SceUid) -> i64;
sceKernelGetVTimerTimenull3152     pub fn sceKernelGetVTimerTime(uid: SceUid, time: *mut SceKernelSysClock) -> i32;
sceKernelGetVTimerTimeWidenull3153     pub fn sceKernelGetVTimerTimeWide(uid: SceUid) -> i64;
sceKernelSetVTimerTimenull3154     pub fn sceKernelSetVTimerTime(uid: SceUid, time: *mut SceKernelSysClock) -> i32;
sceKernelSetVTimerTimeWidenull3155     pub fn sceKernelSetVTimerTimeWide(uid: SceUid, time: i64) -> i64;
sceKernelStartVTimernull3156     pub fn sceKernelStartVTimer(uid: SceUid) -> i32;
sceKernelStopVTimernull3157     pub fn sceKernelStopVTimer(uid: SceUid) -> i32;
sceKernelSetVTimerHandlernull3158     pub fn sceKernelSetVTimerHandler(
3159         uid: SceUid,
3160         time: *mut SceKernelSysClock,
3161         handler: SceKernelVTimerHandler,
3162         common: *mut c_void,
3163     ) -> i32;
sceKernelSetVTimerHandlerWidenull3164     pub fn sceKernelSetVTimerHandlerWide(
3165         uid: SceUid,
3166         time: i64,
3167         handler: SceKernelVTimerHandlerWide,
3168         common: *mut c_void,
3169     ) -> i32;
sceKernelCancelVTimerHandlernull3170     pub fn sceKernelCancelVTimerHandler(uid: SceUid) -> i32;
sceKernelReferVTimerStatusnull3171     pub fn sceKernelReferVTimerStatus(uid: SceUid, info: *mut SceKernelVTimerInfo) -> i32;
sceKernelRegisterThreadEventHandlernull3172     pub fn sceKernelRegisterThreadEventHandler(
3173         name: *const u8,
3174         thread_id: SceUid,
3175         mask: i32,
3176         handler: SceKernelThreadEventHandler,
3177         common: *mut c_void,
3178     ) -> SceUid;
sceKernelReleaseThreadEventHandlernull3179     pub fn sceKernelReleaseThreadEventHandler(uid: SceUid) -> i32;
sceKernelReferThreadEventHandlerStatusnull3180     pub fn sceKernelReferThreadEventHandlerStatus(
3181         uid: SceUid,
3182         info: *mut SceKernelThreadEventHandlerInfo,
3183     ) -> i32;
sceKernelReferThreadProfilernull3184     pub fn sceKernelReferThreadProfiler() -> *mut DebugProfilerRegs;
sceKernelReferGlobalProfilernull3185     pub fn sceKernelReferGlobalProfiler() -> *mut DebugProfilerRegs;
3186 
sceUsbStartnull3187     pub fn sceUsbStart(driver_name: *const u8, size: i32, args: *mut c_void) -> i32;
sceUsbStopnull3188     pub fn sceUsbStop(driver_name: *const u8, size: i32, args: *mut c_void) -> i32;
sceUsbActivatenull3189     pub fn sceUsbActivate(pid: u32) -> i32;
sceUsbDeactivatenull3190     pub fn sceUsbDeactivate(pid: u32) -> i32;
sceUsbGetStatenull3191     pub fn sceUsbGetState() -> i32;
sceUsbGetDrvStatenull3192     pub fn sceUsbGetDrvState(driver_name: *const u8) -> i32;
3193 }
3194 
3195 extern "C" {
sceUsbCamSetupStillnull3196     pub fn sceUsbCamSetupStill(param: *mut UsbCamSetupStillParam) -> i32;
sceUsbCamSetupStillExnull3197     pub fn sceUsbCamSetupStillEx(param: *mut UsbCamSetupStillExParam) -> i32;
sceUsbCamStillInputBlockingnull3198     pub fn sceUsbCamStillInputBlocking(buf: *mut u8, size: usize) -> i32;
sceUsbCamStillInputnull3199     pub fn sceUsbCamStillInput(buf: *mut u8, size: usize) -> i32;
sceUsbCamStillWaitInputEndnull3200     pub fn sceUsbCamStillWaitInputEnd() -> i32;
sceUsbCamStillPollInputEndnull3201     pub fn sceUsbCamStillPollInputEnd() -> i32;
sceUsbCamStillCancelInputnull3202     pub fn sceUsbCamStillCancelInput() -> i32;
sceUsbCamStillGetInputLengthnull3203     pub fn sceUsbCamStillGetInputLength() -> i32;
sceUsbCamSetupVideonull3204     pub fn sceUsbCamSetupVideo(
3205         param: *mut UsbCamSetupVideoParam,
3206         work_area: *mut c_void,
3207         work_area_size: i32,
3208     ) -> i32;
sceUsbCamSetupVideoExnull3209     pub fn sceUsbCamSetupVideoEx(
3210         param: *mut UsbCamSetupVideoExParam,
3211         work_area: *mut c_void,
3212         work_area_size: i32,
3213     ) -> i32;
sceUsbCamStartVideonull3214     pub fn sceUsbCamStartVideo() -> i32;
sceUsbCamStopVideonull3215     pub fn sceUsbCamStopVideo() -> i32;
sceUsbCamReadVideoFrameBlockingnull3216     pub fn sceUsbCamReadVideoFrameBlocking(buf: *mut u8, size: usize) -> i32;
sceUsbCamReadVideoFramenull3217     pub fn sceUsbCamReadVideoFrame(buf: *mut u8, size: usize) -> i32;
sceUsbCamWaitReadVideoFrameEndnull3218     pub fn sceUsbCamWaitReadVideoFrameEnd() -> i32;
sceUsbCamPollReadVideoFrameEndnull3219     pub fn sceUsbCamPollReadVideoFrameEnd() -> i32;
sceUsbCamGetReadVideoFrameSizenull3220     pub fn sceUsbCamGetReadVideoFrameSize() -> i32;
sceUsbCamSetSaturationnull3221     pub fn sceUsbCamSetSaturation(saturation: i32) -> i32;
sceUsbCamSetBrightnessnull3222     pub fn sceUsbCamSetBrightness(brightness: i32) -> i32;
sceUsbCamSetContrastnull3223     pub fn sceUsbCamSetContrast(contrast: i32) -> i32;
sceUsbCamSetSharpnessnull3224     pub fn sceUsbCamSetSharpness(sharpness: i32) -> i32;
sceUsbCamSetImageEffectModenull3225     pub fn sceUsbCamSetImageEffectMode(effect_mode: UsbCamEffectMode) -> i32;
sceUsbCamSetEvLevelnull3226     pub fn sceUsbCamSetEvLevel(exposure_level: UsbCamEvLevel) -> i32;
sceUsbCamSetReverseModenull3227     pub fn sceUsbCamSetReverseMode(reverse_flags: i32) -> i32;
sceUsbCamSetZoomnull3228     pub fn sceUsbCamSetZoom(zoom: i32) -> i32;
sceUsbCamGetSaturationnull3229     pub fn sceUsbCamGetSaturation(saturation: *mut i32) -> i32;
sceUsbCamGetBrightnessnull3230     pub fn sceUsbCamGetBrightness(brightness: *mut i32) -> i32;
sceUsbCamGetContrastnull3231     pub fn sceUsbCamGetContrast(contrast: *mut i32) -> i32;
sceUsbCamGetSharpnessnull3232     pub fn sceUsbCamGetSharpness(sharpness: *mut i32) -> i32;
sceUsbCamGetImageEffectModenull3233     pub fn sceUsbCamGetImageEffectMode(effect_mode: *mut UsbCamEffectMode) -> i32;
sceUsbCamGetEvLevelnull3234     pub fn sceUsbCamGetEvLevel(exposure_level: *mut UsbCamEvLevel) -> i32;
sceUsbCamGetReverseModenull3235     pub fn sceUsbCamGetReverseMode(reverse_flags: *mut i32) -> i32;
sceUsbCamGetZoomnull3236     pub fn sceUsbCamGetZoom(zoom: *mut i32) -> i32;
sceUsbCamAutoImageReverseSWnull3237     pub fn sceUsbCamAutoImageReverseSW(on: i32) -> i32;
sceUsbCamGetAutoImageReverseStatenull3238     pub fn sceUsbCamGetAutoImageReverseState() -> i32;
sceUsbCamGetLensDirectionnull3239     pub fn sceUsbCamGetLensDirection() -> i32;
3240 
sceUsbstorBootRegisterNotifynull3241     pub fn sceUsbstorBootRegisterNotify(event_flag: SceUid) -> i32;
sceUsbstorBootUnregisterNotifynull3242     pub fn sceUsbstorBootUnregisterNotify(event_flag: u32) -> i32;
sceUsbstorBootSetCapacitynull3243     pub fn sceUsbstorBootSetCapacity(size: u32) -> i32;
3244 
scePowerRegisterCallbacknull3245     pub fn scePowerRegisterCallback(slot: i32, cbid: SceUid) -> i32;
scePowerUnregisterCallbacknull3246     pub fn scePowerUnregisterCallback(slot: i32) -> i32;
scePowerIsPowerOnlinenull3247     pub fn scePowerIsPowerOnline() -> i32;
scePowerIsBatteryExistnull3248     pub fn scePowerIsBatteryExist() -> i32;
scePowerIsBatteryChargingnull3249     pub fn scePowerIsBatteryCharging() -> i32;
scePowerGetBatteryChargingStatusnull3250     pub fn scePowerGetBatteryChargingStatus() -> i32;
scePowerIsLowBatterynull3251     pub fn scePowerIsLowBattery() -> i32;
scePowerGetBatteryLifePercentnull3252     pub fn scePowerGetBatteryLifePercent() -> i32;
scePowerGetBatteryLifeTimenull3253     pub fn scePowerGetBatteryLifeTime() -> i32;
scePowerGetBatteryTempnull3254     pub fn scePowerGetBatteryTemp() -> i32;
scePowerGetBatteryElecnull3255     pub fn scePowerGetBatteryElec() -> i32;
scePowerGetBatteryVoltnull3256     pub fn scePowerGetBatteryVolt() -> i32;
scePowerSetCpuClockFrequencynull3257     pub fn scePowerSetCpuClockFrequency(cpufreq: i32) -> i32;
scePowerSetBusClockFrequencynull3258     pub fn scePowerSetBusClockFrequency(busfreq: i32) -> i32;
scePowerGetCpuClockFrequencynull3259     pub fn scePowerGetCpuClockFrequency() -> i32;
scePowerGetCpuClockFrequencyIntnull3260     pub fn scePowerGetCpuClockFrequencyInt() -> i32;
scePowerGetCpuClockFrequencyFloatnull3261     pub fn scePowerGetCpuClockFrequencyFloat() -> f32;
scePowerGetBusClockFrequencynull3262     pub fn scePowerGetBusClockFrequency() -> i32;
scePowerGetBusClockFrequencyIntnull3263     pub fn scePowerGetBusClockFrequencyInt() -> i32;
scePowerGetBusClockFrequencyFloatnull3264     pub fn scePowerGetBusClockFrequencyFloat() -> f32;
scePowerSetClockFrequencynull3265     pub fn scePowerSetClockFrequency(pllfreq: i32, cpufreq: i32, busfreq: i32) -> i32;
scePowerLocknull3266     pub fn scePowerLock(unknown: i32) -> i32;
scePowerUnlocknull3267     pub fn scePowerUnlock(unknown: i32) -> i32;
scePowerTicknull3268     pub fn scePowerTick(t: PowerTick) -> i32;
scePowerGetIdleTimernull3269     pub fn scePowerGetIdleTimer() -> i32;
scePowerIdleTimerEnablenull3270     pub fn scePowerIdleTimerEnable(unknown: i32) -> i32;
scePowerIdleTimerDisablenull3271     pub fn scePowerIdleTimerDisable(unknown: i32) -> i32;
scePowerRequestStandbynull3272     pub fn scePowerRequestStandby() -> i32;
scePowerRequestSuspendnull3273     pub fn scePowerRequestSuspend() -> i32;
3274 
sceWlanDevIsPowerOnnull3275     pub fn sceWlanDevIsPowerOn() -> i32;
sceWlanGetSwitchStatenull3276     pub fn sceWlanGetSwitchState() -> i32;
sceWlanGetEtherAddrnull3277     pub fn sceWlanGetEtherAddr(ether_addr: *mut u8) -> i32;
3278 
sceWlanDevAttachnull3279     pub fn sceWlanDevAttach() -> i32;
sceWlanDevDetachnull3280     pub fn sceWlanDevDetach() -> i32;
3281 
sceRtcGetTickResolutionnull3282     pub fn sceRtcGetTickResolution() -> u32;
sceRtcGetCurrentTicknull3283     pub fn sceRtcGetCurrentTick(tick: *mut u64) -> i32;
sceRtcGetCurrentClocknull3284     pub fn sceRtcGetCurrentClock(tm: *mut ScePspDateTime, tz: i32) -> i32;
sceRtcGetCurrentClockLocalTimenull3285     pub fn sceRtcGetCurrentClockLocalTime(tm: *mut ScePspDateTime) -> i32;
sceRtcConvertUtcToLocalTimenull3286     pub fn sceRtcConvertUtcToLocalTime(tick_utc: *const u64, tick_local: *mut u64) -> i32;
sceRtcConvertLocalTimeToUTCnull3287     pub fn sceRtcConvertLocalTimeToUTC(tick_local: *const u64, tick_utc: *mut u64) -> i32;
sceRtcIsLeapYearnull3288     pub fn sceRtcIsLeapYear(year: i32) -> i32;
sceRtcGetDaysInMonthnull3289     pub fn sceRtcGetDaysInMonth(year: i32, month: i32) -> i32;
sceRtcGetDayOfWeeknull3290     pub fn sceRtcGetDayOfWeek(year: i32, month: i32, day: i32) -> i32;
sceRtcCheckValidnull3291     pub fn sceRtcCheckValid(date: *const ScePspDateTime) -> i32;
sceRtcSetTicknull3292     pub fn sceRtcSetTick(date: *mut ScePspDateTime, tick: *const u64) -> i32;
sceRtcGetTicknull3293     pub fn sceRtcGetTick(date: *const ScePspDateTime, tick: *mut u64) -> i32;
sceRtcCompareTicknull3294     pub fn sceRtcCompareTick(tick1: *const u64, tick2: *const u64) -> i32;
sceRtcTickAddTicksnull3295     pub fn sceRtcTickAddTicks(dest_tick: *mut u64, src_tick: *const u64, num_ticks: u64) -> i32;
sceRtcTickAddMicrosecondsnull3296     pub fn sceRtcTickAddMicroseconds(dest_tick: *mut u64, src_tick: *const u64, num_ms: u64)
3297         -> i32;
sceRtcTickAddSecondsnull3298     pub fn sceRtcTickAddSeconds(dest_tick: *mut u64, src_tick: *const u64, num_seconds: u64)
3299         -> i32;
sceRtcTickAddMinutesnull3300     pub fn sceRtcTickAddMinutes(dest_tick: *mut u64, src_tick: *const u64, num_minutes: u64)
3301         -> i32;
sceRtcTickAddHoursnull3302     pub fn sceRtcTickAddHours(dest_tick: *mut u64, src_tick: *const u64, num_hours: u64) -> i32;
sceRtcTickAddDaysnull3303     pub fn sceRtcTickAddDays(dest_tick: *mut u64, src_tick: *const u64, num_days: u64) -> i32;
sceRtcTickAddWeeksnull3304     pub fn sceRtcTickAddWeeks(dest_tick: *mut u64, src_tick: *const u64, num_weeks: u64) -> i32;
sceRtcTickAddMonthsnull3305     pub fn sceRtcTickAddMonths(dest_tick: *mut u64, src_tick: *const u64, num_months: u64) -> i32;
sceRtcTickAddYearsnull3306     pub fn sceRtcTickAddYears(dest_tick: *mut u64, src_tick: *const u64, num_years: u64) -> i32;
sceRtcSetTime_tnull3307     pub fn sceRtcSetTime_t(date: *mut ScePspDateTime, time: u32) -> i32;
sceRtcGetTime_tnull3308     pub fn sceRtcGetTime_t(date: *const ScePspDateTime, time: *mut u32) -> i32;
sceRtcSetTime64_tnull3309     pub fn sceRtcSetTime64_t(date: *mut ScePspDateTime, time: u64) -> i32;
sceRtcGetTime64_tnull3310     pub fn sceRtcGetTime64_t(date: *const ScePspDateTime, time: *mut u64) -> i32;
sceRtcSetDosTimenull3311     pub fn sceRtcSetDosTime(date: *mut ScePspDateTime, dos_time: u32) -> i32;
sceRtcGetDosTimenull3312     pub fn sceRtcGetDosTime(date: *mut ScePspDateTime, dos_time: u32) -> i32;
sceRtcSetWin32FileTimenull3313     pub fn sceRtcSetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32;
sceRtcGetWin32FileTimenull3314     pub fn sceRtcGetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32;
sceRtcParseDateTimenull3315     pub fn sceRtcParseDateTime(dest_tick: *mut u64, date_string: *const u8) -> i32;
sceRtcFormatRFC3339null3316     pub fn sceRtcFormatRFC3339(
3317         psz_date_time: *mut char,
3318         p_utc: *const u64,
3319         time_zone_minutes: i32,
3320     ) -> i32;
sceRtcFormatRFC3339LocalTimenull3321     pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32;
sceRtcParseRFC3339null3322     pub fn sceRtcParseRFC3339(p_utc: *mut u64, psz_date_time: *const u8) -> i32;
sceRtcFormatRFC2822null3323     pub fn sceRtcFormatRFC2822(
3324         psz_date_time: *mut char,
3325         p_utc: *const u64,
3326         time_zone_minutes: i32,
3327     ) -> i32;
sceRtcFormatRFC2822LocalTimenull3328     pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32;
3329 
sceIoOpennull3330     pub fn sceIoOpen(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid;
sceIoOpenAsyncnull3331     pub fn sceIoOpenAsync(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid;
sceIoClosenull3332     pub fn sceIoClose(fd: SceUid) -> i32;
sceIoCloseAsyncnull3333     pub fn sceIoCloseAsync(fd: SceUid) -> i32;
sceIoReadnull3334     pub fn sceIoRead(fd: SceUid, data: *mut c_void, size: u32) -> i32;
sceIoReadAsyncnull3335     pub fn sceIoReadAsync(fd: SceUid, data: *mut c_void, size: u32) -> i32;
sceIoWritenull3336     pub fn sceIoWrite(fd: SceUid, data: *const c_void, size: usize) -> i32;
sceIoWriteAsyncnull3337     pub fn sceIoWriteAsync(fd: SceUid, data: *const c_void, size: u32) -> i32;
sceIoLseeknull3338     pub fn sceIoLseek(fd: SceUid, offset: i64, whence: IoWhence) -> i64;
sceIoLseekAsyncnull3339     pub fn sceIoLseekAsync(fd: SceUid, offset: i64, whence: IoWhence) -> i32;
sceIoLseek32null3340     pub fn sceIoLseek32(fd: SceUid, offset: i32, whence: IoWhence) -> i32;
sceIoLseek32Asyncnull3341     pub fn sceIoLseek32Async(fd: SceUid, offset: i32, whence: IoWhence) -> i32;
sceIoRemovenull3342     pub fn sceIoRemove(file: *const u8) -> i32;
sceIoMkdirnull3343     pub fn sceIoMkdir(dir: *const u8, mode: IoPermissions) -> i32;
sceIoRmdirnull3344     pub fn sceIoRmdir(path: *const u8) -> i32;
sceIoChdirnull3345     pub fn sceIoChdir(path: *const u8) -> i32;
sceIoRenamenull3346     pub fn sceIoRename(oldname: *const u8, newname: *const u8) -> i32;
sceIoDopennull3347     pub fn sceIoDopen(dirname: *const u8) -> SceUid;
sceIoDreadnull3348     pub fn sceIoDread(fd: SceUid, dir: *mut SceIoDirent) -> i32;
sceIoDclosenull3349     pub fn sceIoDclose(fd: SceUid) -> i32;
sceIoDevctlnull3350     pub fn sceIoDevctl(
3351         dev: *const u8,
3352         cmd: u32,
3353         indata: *mut c_void,
3354         inlen: i32,
3355         outdata: *mut c_void,
3356         outlen: i32,
3357     ) -> i32;
sceIoAssignnull3358     pub fn sceIoAssign(
3359         dev1: *const u8,
3360         dev2: *const u8,
3361         dev3: *const u8,
3362         mode: IoAssignPerms,
3363         unk1: *mut c_void,
3364         unk2: i32,
3365     ) -> i32;
sceIoUnassignnull3366     pub fn sceIoUnassign(dev: *const u8) -> i32;
sceIoGetstatnull3367     pub fn sceIoGetstat(file: *const u8, stat: *mut SceIoStat) -> i32;
sceIoChstatnull3368     pub fn sceIoChstat(file: *const u8, stat: *mut SceIoStat, bits: i32) -> i32;
sceIoIoctlnull3369     pub fn sceIoIoctl(
3370         fd: SceUid,
3371         cmd: u32,
3372         indata: *mut c_void,
3373         inlen: i32,
3374         outdata: *mut c_void,
3375         outlen: i32,
3376     ) -> i32;
sceIoIoctlAsyncnull3377     pub fn sceIoIoctlAsync(
3378         fd: SceUid,
3379         cmd: u32,
3380         indata: *mut c_void,
3381         inlen: i32,
3382         outdata: *mut c_void,
3383         outlen: i32,
3384     ) -> i32;
sceIoSyncnull3385     pub fn sceIoSync(device: *const u8, unk: u32) -> i32;
sceIoWaitAsyncnull3386     pub fn sceIoWaitAsync(fd: SceUid, res: *mut i64) -> i32;
sceIoWaitAsyncCBnull3387     pub fn sceIoWaitAsyncCB(fd: SceUid, res: *mut i64) -> i32;
sceIoPollAsyncnull3388     pub fn sceIoPollAsync(fd: SceUid, res: *mut i64) -> i32;
sceIoGetAsyncStatnull3389     pub fn sceIoGetAsyncStat(fd: SceUid, poll: i32, res: *mut i64) -> i32;
sceIoCancelnull3390     pub fn sceIoCancel(fd: SceUid) -> i32;
sceIoGetDevTypenull3391     pub fn sceIoGetDevType(fd: SceUid) -> i32;
sceIoChangeAsyncPrioritynull3392     pub fn sceIoChangeAsyncPriority(fd: SceUid, pri: i32) -> i32;
sceIoSetAsyncCallbacknull3393     pub fn sceIoSetAsyncCallback(fd: SceUid, cb: SceUid, argp: *mut c_void) -> i32;
3394 
sceJpegInitMJpegnull3395     pub fn sceJpegInitMJpeg() -> i32;
sceJpegFinishMJpegnull3396     pub fn sceJpegFinishMJpeg() -> i32;
sceJpegCreateMJpegnull3397     pub fn sceJpegCreateMJpeg(width: i32, height: i32) -> i32;
sceJpegDeleteMJpegnull3398     pub fn sceJpegDeleteMJpeg() -> i32;
sceJpegDecodeMJpegnull3399     pub fn sceJpegDecodeMJpeg(jpeg_buf: *mut u8, size: usize, rgba: *mut c_void, unk: u32) -> i32;
3400 
sceUmdCheckMediumnull3401     pub fn sceUmdCheckMedium() -> i32;
sceUmdGetDiscInfonull3402     pub fn sceUmdGetDiscInfo(info: *mut UmdInfo) -> i32;
sceUmdActivatenull3403     pub fn sceUmdActivate(unit: i32, drive: *const u8) -> i32;
sceUmdDeactivatenull3404     pub fn sceUmdDeactivate(unit: i32, drive: *const u8) -> i32;
sceUmdWaitDriveStatnull3405     pub fn sceUmdWaitDriveStat(state: i32) -> i32;
sceUmdWaitDriveStatWithTimernull3406     pub fn sceUmdWaitDriveStatWithTimer(state: i32, timeout: u32) -> i32;
sceUmdWaitDriveStatCBnull3407     pub fn sceUmdWaitDriveStatCB(state: i32, timeout: u32) -> i32;
sceUmdCancelWaitDriveStatnull3408     pub fn sceUmdCancelWaitDriveStat() -> i32;
sceUmdGetDriveStatnull3409     pub fn sceUmdGetDriveStat() -> i32;
sceUmdGetErrorStatnull3410     pub fn sceUmdGetErrorStat() -> i32;
sceUmdRegisterUMDCallBacknull3411     pub fn sceUmdRegisterUMDCallBack(cbid: i32) -> i32;
sceUmdUnRegisterUMDCallBacknull3412     pub fn sceUmdUnRegisterUMDCallBack(cbid: i32) -> i32;
sceUmdReplacePermitnull3413     pub fn sceUmdReplacePermit() -> i32;
sceUmdReplaceProhibitnull3414     pub fn sceUmdReplaceProhibit() -> i32;
3415 
sceMpegInitnull3416     pub fn sceMpegInit() -> i32;
sceMpegFinishnull3417     pub fn sceMpegFinish();
sceMpegRingbufferQueryMemSizenull3418     pub fn sceMpegRingbufferQueryMemSize(packets: i32) -> i32;
sceMpegRingbufferConstructnull3419     pub fn sceMpegRingbufferConstruct(
3420         ringbuffer: *mut SceMpegRingbuffer,
3421         packets: i32,
3422         data: *mut c_void,
3423         size: i32,
3424         callback: SceMpegRingbufferCb,
3425         cb_param: *mut c_void,
3426     ) -> i32;
sceMpegRingbufferDestructnull3427     pub fn sceMpegRingbufferDestruct(ringbuffer: *mut SceMpegRingbuffer);
sceMpegRingbufferAvailableSizenull3428     pub fn sceMpegRingbufferAvailableSize(ringbuffer: *mut SceMpegRingbuffer) -> i32;
sceMpegRingbufferPutnull3429     pub fn sceMpegRingbufferPut(
3430         ringbuffer: *mut SceMpegRingbuffer,
3431         num_packets: i32,
3432         available: i32,
3433     ) -> i32;
sceMpegQueryMemSizenull3434     pub fn sceMpegQueryMemSize(unk: i32) -> i32;
sceMpegCreatenull3435     pub fn sceMpegCreate(
3436         handle: SceMpeg,
3437         data: *mut c_void,
3438         size: i32,
3439         ringbuffer: *mut SceMpegRingbuffer,
3440         frame_width: i32,
3441         unk1: i32,
3442         unk2: i32,
3443     ) -> i32;
sceMpegDeletenull3444     pub fn sceMpegDelete(handle: SceMpeg);
sceMpegQueryStreamOffsetnull3445     pub fn sceMpegQueryStreamOffset(handle: SceMpeg, buffer: *mut c_void, offset: *mut i32) -> i32;
sceMpegQueryStreamSizenull3446     pub fn sceMpegQueryStreamSize(buffer: *mut c_void, size: *mut i32) -> i32;
sceMpegRegistStreamnull3447     pub fn sceMpegRegistStream(handle: SceMpeg, stream_id: i32, unk: i32) -> SceMpegStream;
sceMpegUnRegistStreamnull3448     pub fn sceMpegUnRegistStream(handle: SceMpeg, stream: SceMpegStream);
sceMpegFlushAllStreamnull3449     pub fn sceMpegFlushAllStream(handle: SceMpeg) -> i32;
sceMpegMallocAvcEsBufnull3450     pub fn sceMpegMallocAvcEsBuf(handle: SceMpeg) -> *mut c_void;
sceMpegFreeAvcEsBufnull3451     pub fn sceMpegFreeAvcEsBuf(handle: SceMpeg, buf: *mut c_void);
sceMpegQueryAtracEsSizenull3452     pub fn sceMpegQueryAtracEsSize(handle: SceMpeg, es_size: *mut i32, out_size: *mut i32) -> i32;
sceMpegInitAunull3453     pub fn sceMpegInitAu(handle: SceMpeg, es_buffer: *mut c_void, au: *mut SceMpegAu) -> i32;
sceMpegGetAvcAunull3454     pub fn sceMpegGetAvcAu(
3455         handle: SceMpeg,
3456         stream: SceMpegStream,
3457         au: *mut SceMpegAu,
3458         unk: *mut i32,
3459     ) -> i32;
sceMpegAvcDecodeModenull3460     pub fn sceMpegAvcDecodeMode(handle: SceMpeg, mode: *mut SceMpegAvcMode) -> i32;
sceMpegAvcDecodenull3461     pub fn sceMpegAvcDecode(
3462         handle: SceMpeg,
3463         au: *mut SceMpegAu,
3464         iframe_width: i32,
3465         buffer: *mut c_void,
3466         init: *mut i32,
3467     ) -> i32;
sceMpegAvcDecodeStopnull3468     pub fn sceMpegAvcDecodeStop(
3469         handle: SceMpeg,
3470         frame_width: i32,
3471         buffer: *mut c_void,
3472         status: *mut i32,
3473     ) -> i32;
sceMpegGetAtracAunull3474     pub fn sceMpegGetAtracAu(
3475         handle: SceMpeg,
3476         stream: SceMpegStream,
3477         au: *mut SceMpegAu,
3478         unk: *mut c_void,
3479     ) -> i32;
sceMpegAtracDecodenull3480     pub fn sceMpegAtracDecode(
3481         handle: SceMpeg,
3482         au: *mut SceMpegAu,
3483         buffer: *mut c_void,
3484         init: i32,
3485     ) -> i32;
3486 
sceMpegBaseYCrCbCopyVmenull3487     pub fn sceMpegBaseYCrCbCopyVme(yuv_buffer: *mut c_void, buffer: *mut i32, type_: i32) -> i32;
sceMpegBaseCscInitnull3488     pub fn sceMpegBaseCscInit(width: i32) -> i32;
sceMpegBaseCscVmenull3489     pub fn sceMpegBaseCscVme(
3490         rgb_buffer: *mut c_void,
3491         rgb_buffer2: *mut c_void,
3492         width: i32,
3493         y_cr_cb_buffer: *mut SceMpegYCrCbBuffer,
3494     ) -> i32;
sceMpegbase_BEA18F91null3495     pub fn sceMpegbase_BEA18F91(lli: *mut SceMpegLLI) -> i32;
3496 
sceHprmPeekCurrentKeynull3497     pub fn sceHprmPeekCurrentKey(key: *mut i32) -> i32;
sceHprmPeekLatchnull3498     pub fn sceHprmPeekLatch(latch: *mut [u32; 4]) -> i32;
sceHprmReadLatchnull3499     pub fn sceHprmReadLatch(latch: *mut [u32; 4]) -> i32;
sceHprmIsHeadphoneExistnull3500     pub fn sceHprmIsHeadphoneExist() -> i32;
sceHprmIsRemoteExistnull3501     pub fn sceHprmIsRemoteExist() -> i32;
sceHprmIsMicrophoneExistnull3502     pub fn sceHprmIsMicrophoneExist() -> i32;
3503 
sceGuDepthBuffernull3504     pub fn sceGuDepthBuffer(zbp: *mut c_void, zbw: i32);
sceGuDispBuffernull3505     pub fn sceGuDispBuffer(width: i32, height: i32, dispbp: *mut c_void, dispbw: i32);
sceGuDrawBuffernull3506     pub fn sceGuDrawBuffer(psm: DisplayPixelFormat, fbp: *mut c_void, fbw: i32);
sceGuDrawBufferListnull3507     pub fn sceGuDrawBufferList(psm: DisplayPixelFormat, fbp: *mut c_void, fbw: i32);
sceGuDisplaynull3508     pub fn sceGuDisplay(state: bool) -> bool;
sceGuDepthFuncnull3509     pub fn sceGuDepthFunc(function: DepthFunc);
sceGuDepthMasknull3510     pub fn sceGuDepthMask(mask: i32);
sceGuDepthOffsetnull3511     pub fn sceGuDepthOffset(offset: i32);
sceGuDepthRangenull3512     pub fn sceGuDepthRange(near: i32, far: i32);
sceGuFognull3513     pub fn sceGuFog(near: f32, far: f32, color: u32);
sceGuInitnull3514     pub fn sceGuInit();
sceGuTermnull3515     pub fn sceGuTerm();
sceGuBreaknull3516     pub fn sceGuBreak(mode: i32);
sceGuContinuenull3517     pub fn sceGuContinue();
sceGuSetCallbacknull3518     pub fn sceGuSetCallback(signal: GuCallbackId, callback: GuCallback) -> GuCallback;
sceGuSignalnull3519     pub fn sceGuSignal(behavior: SignalBehavior, signal: i32);
sceGuSendCommandfnull3520     pub fn sceGuSendCommandf(cmd: GeCommand, argument: f32);
sceGuSendCommandinull3521     pub fn sceGuSendCommandi(cmd: GeCommand, argument: i32);
sceGuGetMemorynull3522     pub fn sceGuGetMemory(size: i32) -> *mut c_void;
sceGuStartnull3523     pub fn sceGuStart(context_type: GuContextType, list: *mut c_void);
sceGuFinishnull3524     pub fn sceGuFinish() -> i32;
sceGuFinishIdnull3525     pub fn sceGuFinishId(id: u32) -> i32;
sceGuCallListnull3526     pub fn sceGuCallList(list: *const c_void);
sceGuCallModenull3527     pub fn sceGuCallMode(mode: i32);
sceGuCheckListnull3528     pub fn sceGuCheckList() -> i32;
sceGuSendListnull3529     pub fn sceGuSendList(mode: GuQueueMode, list: *const c_void, context: *mut GeContext);
sceGuSwapBuffersnull3530     pub fn sceGuSwapBuffers() -> *mut c_void;
sceGuSyncnull3531     pub fn sceGuSync(mode: GuSyncMode, behavior: GuSyncBehavior) -> GeListState;
sceGuDrawArraynull3532     pub fn sceGuDrawArray(
3533         prim: GuPrimitive,
3534         vtype: i32,
3535         count: i32,
3536         indices: *const c_void,
3537         vertices: *const c_void,
3538     );
sceGuBeginObjectnull3539     pub fn sceGuBeginObject(
3540         vtype: i32,
3541         count: i32,
3542         indices: *const c_void,
3543         vertices: *const c_void,
3544     );
sceGuEndObjectnull3545     pub fn sceGuEndObject();
sceGuSetStatusnull3546     pub fn sceGuSetStatus(state: GuState, status: i32);
sceGuGetStatusnull3547     pub fn sceGuGetStatus(state: GuState) -> bool;
sceGuSetAllStatusnull3548     pub fn sceGuSetAllStatus(status: i32);
sceGuGetAllStatusnull3549     pub fn sceGuGetAllStatus() -> i32;
sceGuEnablenull3550     pub fn sceGuEnable(state: GuState);
sceGuDisablenull3551     pub fn sceGuDisable(state: GuState);
sceGuLightnull3552     pub fn sceGuLight(light: i32, type_: LightType, components: i32, position: &ScePspFVector3);
sceGuLightAttnull3553     pub fn sceGuLightAtt(light: i32, atten0: f32, atten1: f32, atten2: f32);
sceGuLightColornull3554     pub fn sceGuLightColor(light: i32, component: i32, color: u32);
sceGuLightModenull3555     pub fn sceGuLightMode(mode: LightMode);
sceGuLightSpotnull3556     pub fn sceGuLightSpot(light: i32, direction: &ScePspFVector3, exponent: f32, cutoff: f32);
sceGuClearnull3557     pub fn sceGuClear(flags: i32);
sceGuClearColornull3558     pub fn sceGuClearColor(color: u32);
sceGuClearDepthnull3559     pub fn sceGuClearDepth(depth: u32);
sceGuClearStencilnull3560     pub fn sceGuClearStencil(stencil: u32);
sceGuPixelMasknull3561     pub fn sceGuPixelMask(mask: u32);
sceGuColornull3562     pub fn sceGuColor(color: u32);
sceGuColorFuncnull3563     pub fn sceGuColorFunc(func: ColorFunc, color: u32, mask: u32);
sceGuColorMaterialnull3564     pub fn sceGuColorMaterial(components: i32);
sceGuAlphaFuncnull3565     pub fn sceGuAlphaFunc(func: AlphaFunc, value: i32, mask: i32);
sceGuAmbientnull3566     pub fn sceGuAmbient(color: u32);
sceGuAmbientColornull3567     pub fn sceGuAmbientColor(color: u32);
sceGuBlendFuncnull3568     pub fn sceGuBlendFunc(op: BlendOp, src: BlendSrc, dest: BlendDst, src_fix: u32, dest_fix: u32);
sceGuMaterialnull3569     pub fn sceGuMaterial(components: i32, color: u32);
sceGuModelColornull3570     pub fn sceGuModelColor(emissive: u32, ambient: u32, diffuse: u32, specular: u32);
sceGuStencilFuncnull3571     pub fn sceGuStencilFunc(func: StencilFunc, ref_: i32, mask: i32);
sceGuStencilOpnull3572     pub fn sceGuStencilOp(fail: StencilOperation, zfail: StencilOperation, zpass: StencilOperation);
sceGuSpecularnull3573     pub fn sceGuSpecular(power: f32);
sceGuFrontFacenull3574     pub fn sceGuFrontFace(order: FrontFaceDirection);
sceGuLogicalOpnull3575     pub fn sceGuLogicalOp(op: LogicalOperation);
sceGuSetDithernull3576     pub fn sceGuSetDither(matrix: &ScePspIMatrix4);
sceGuShadeModelnull3577     pub fn sceGuShadeModel(mode: ShadingModel);
sceGuCopyImagenull3578     pub fn sceGuCopyImage(
3579         psm: DisplayPixelFormat,
3580         sx: i32,
3581         sy: i32,
3582         width: i32,
3583         height: i32,
3584         srcw: i32,
3585         src: *mut c_void,
3586         dx: i32,
3587         dy: i32,
3588         destw: i32,
3589         dest: *mut c_void,
3590     );
sceGuTexEnvColornull3591     pub fn sceGuTexEnvColor(color: u32);
sceGuTexFilternull3592     pub fn sceGuTexFilter(min: TextureFilter, mag: TextureFilter);
sceGuTexFlushnull3593     pub fn sceGuTexFlush();
sceGuTexFuncnull3594     pub fn sceGuTexFunc(tfx: TextureEffect, tcc: TextureColorComponent);
sceGuTexImagenull3595     pub fn sceGuTexImage(
3596         mipmap: MipmapLevel,
3597         width: i32,
3598         height: i32,
3599         tbw: i32,
3600         tbp: *const c_void,
3601     );
sceGuTexLevelModenull3602     pub fn sceGuTexLevelMode(mode: TextureLevelMode, bias: f32);
sceGuTexMapModenull3603     pub fn sceGuTexMapMode(mode: TextureMapMode, a1: u32, a2: u32);
sceGuTexModenull3604     pub fn sceGuTexMode(tpsm: TexturePixelFormat, maxmips: i32, a2: i32, swizzle: i32);
sceGuTexOffsetnull3605     pub fn sceGuTexOffset(u: f32, v: f32);
sceGuTexProjMapModenull3606     pub fn sceGuTexProjMapMode(mode: TextureProjectionMapMode);
sceGuTexScalenull3607     pub fn sceGuTexScale(u: f32, v: f32);
sceGuTexSlopenull3608     pub fn sceGuTexSlope(slope: f32);
sceGuTexSyncnull3609     pub fn sceGuTexSync();
sceGuTexWrapnull3610     pub fn sceGuTexWrap(u: GuTexWrapMode, v: GuTexWrapMode);
sceGuClutLoadnull3611     pub fn sceGuClutLoad(num_blocks: i32, cbp: *const c_void);
sceGuClutModenull3612     pub fn sceGuClutMode(cpsm: ClutPixelFormat, shift: u32, mask: u32, a3: u32);
sceGuOffsetnull3613     pub fn sceGuOffset(x: u32, y: u32);
sceGuScissornull3614     pub fn sceGuScissor(x: i32, y: i32, w: i32, h: i32);
sceGuViewportnull3615     pub fn sceGuViewport(cx: i32, cy: i32, width: i32, height: i32);
sceGuDrawBeziernull3616     pub fn sceGuDrawBezier(
3617         v_type: i32,
3618         u_count: i32,
3619         v_count: i32,
3620         indices: *const c_void,
3621         vertices: *const c_void,
3622     );
sceGuPatchDividenull3623     pub fn sceGuPatchDivide(ulevel: u32, vlevel: u32);
sceGuPatchFrontFacenull3624     pub fn sceGuPatchFrontFace(a0: u32);
sceGuPatchPrimnull3625     pub fn sceGuPatchPrim(prim: PatchPrimitive);
sceGuDrawSplinenull3626     pub fn sceGuDrawSpline(
3627         v_type: i32,
3628         u_count: i32,
3629         v_count: i32,
3630         u_edge: i32,
3631         v_edge: i32,
3632         indices: *const c_void,
3633         vertices: *const c_void,
3634     );
sceGuSetMatrixnull3635     pub fn sceGuSetMatrix(type_: MatrixMode, matrix: &ScePspFMatrix4);
sceGuBoneMatrixnull3636     pub fn sceGuBoneMatrix(index: u32, matrix: &ScePspFMatrix4);
sceGuMorphWeightnull3637     pub fn sceGuMorphWeight(index: i32, weight: f32);
sceGuDrawArrayNnull3638     pub fn sceGuDrawArrayN(
3639         primitive_type: GuPrimitive,
3640         v_type: i32,
3641         count: i32,
3642         a3: i32,
3643         indices: *const c_void,
3644         vertices: *const c_void,
3645     );
3646 
sceGumDrawArraynull3647     pub fn sceGumDrawArray(
3648         prim: GuPrimitive,
3649         v_type: i32,
3650         count: i32,
3651         indices: *const c_void,
3652         vertices: *const c_void,
3653     );
sceGumDrawArrayNnull3654     pub fn sceGumDrawArrayN(
3655         prim: GuPrimitive,
3656         v_type: i32,
3657         count: i32,
3658         a3: i32,
3659         indices: *const c_void,
3660         vertices: *const c_void,
3661     );
sceGumDrawBeziernull3662     pub fn sceGumDrawBezier(
3663         v_type: i32,
3664         u_count: i32,
3665         v_count: i32,
3666         indices: *const c_void,
3667         vertices: *const c_void,
3668     );
sceGumDrawSplinenull3669     pub fn sceGumDrawSpline(
3670         v_type: i32,
3671         u_count: i32,
3672         v_count: i32,
3673         u_edge: i32,
3674         v_edge: i32,
3675         indices: *const c_void,
3676         vertices: *const c_void,
3677     );
sceGumFastInversenull3678     pub fn sceGumFastInverse();
sceGumFullInversenull3679     pub fn sceGumFullInverse();
sceGumLoadIdentitynull3680     pub fn sceGumLoadIdentity();
sceGumLoadMatrixnull3681     pub fn sceGumLoadMatrix(m: &ScePspFMatrix4);
sceGumLookAtnull3682     pub fn sceGumLookAt(eye: &ScePspFVector3, center: &ScePspFVector3, up: &ScePspFVector3);
sceGumMatrixModenull3683     pub fn sceGumMatrixMode(mode: MatrixMode);
sceGumMultMatrixnull3684     pub fn sceGumMultMatrix(m: &ScePspFMatrix4);
sceGumOrthonull3685     pub fn sceGumOrtho(left: f32, right: f32, bottom: f32, top: f32, near: f32, far: f32);
sceGumPerspectivenull3686     pub fn sceGumPerspective(fovy: f32, aspect: f32, near: f32, far: f32);
sceGumPopMatrixnull3687     pub fn sceGumPopMatrix();
sceGumPushMatrixnull3688     pub fn sceGumPushMatrix();
sceGumRotateXnull3689     pub fn sceGumRotateX(angle: f32);
sceGumRotateYnull3690     pub fn sceGumRotateY(angle: f32);
sceGumRotateZnull3691     pub fn sceGumRotateZ(angle: f32);
sceGumRotateXYZnull3692     pub fn sceGumRotateXYZ(v: &ScePspFVector3);
sceGumRotateZYXnull3693     pub fn sceGumRotateZYX(v: &ScePspFVector3);
sceGumScalenull3694     pub fn sceGumScale(v: &ScePspFVector3);
sceGumStoreMatrixnull3695     pub fn sceGumStoreMatrix(m: &mut ScePspFMatrix4);
sceGumTranslatenull3696     pub fn sceGumTranslate(v: &ScePspFVector3);
sceGumUpdateMatrixnull3697     pub fn sceGumUpdateMatrix();
3698 
sceMp3ReserveMp3Handlenull3699     pub fn sceMp3ReserveMp3Handle(args: *mut SceMp3InitArg) -> i32;
sceMp3ReleaseMp3Handlenull3700     pub fn sceMp3ReleaseMp3Handle(handle: Mp3Handle) -> i32;
sceMp3InitResourcenull3701     pub fn sceMp3InitResource() -> i32;
sceMp3TermResourcenull3702     pub fn sceMp3TermResource() -> i32;
sceMp3Initnull3703     pub fn sceMp3Init(handle: Mp3Handle) -> i32;
sceMp3Decodenull3704     pub fn sceMp3Decode(handle: Mp3Handle, dst: *mut *mut i16) -> i32;
sceMp3GetInfoToAddStreamDatanull3705     pub fn sceMp3GetInfoToAddStreamData(
3706         handle: Mp3Handle,
3707         dst: *mut *mut u8,
3708         to_write: *mut i32,
3709         src_pos: *mut i32,
3710     ) -> i32;
sceMp3NotifyAddStreamDatanull3711     pub fn sceMp3NotifyAddStreamData(handle: Mp3Handle, size: i32) -> i32;
sceMp3CheckStreamDataNeedednull3712     pub fn sceMp3CheckStreamDataNeeded(handle: Mp3Handle) -> i32;
sceMp3SetLoopNumnull3713     pub fn sceMp3SetLoopNum(handle: Mp3Handle, loop_: i32) -> i32;
sceMp3GetLoopNumnull3714     pub fn sceMp3GetLoopNum(handle: Mp3Handle) -> i32;
sceMp3GetSumDecodedSamplenull3715     pub fn sceMp3GetSumDecodedSample(handle: Mp3Handle) -> i32;
sceMp3GetMaxOutputSamplenull3716     pub fn sceMp3GetMaxOutputSample(handle: Mp3Handle) -> i32;
sceMp3GetSamplingRatenull3717     pub fn sceMp3GetSamplingRate(handle: Mp3Handle) -> i32;
sceMp3GetBitRatenull3718     pub fn sceMp3GetBitRate(handle: Mp3Handle) -> i32;
sceMp3GetMp3ChannelNumnull3719     pub fn sceMp3GetMp3ChannelNum(handle: Mp3Handle) -> i32;
sceMp3ResetPlayPositionnull3720     pub fn sceMp3ResetPlayPosition(handle: Mp3Handle) -> i32;
3721 
sceRegOpenRegistrynull3722     pub fn sceRegOpenRegistry(reg: *mut Key, mode: i32, handle: *mut RegHandle) -> i32;
sceRegFlushRegistrynull3723     pub fn sceRegFlushRegistry(handle: RegHandle) -> i32;
sceRegCloseRegistrynull3724     pub fn sceRegCloseRegistry(handle: RegHandle) -> i32;
sceRegOpenCategorynull3725     pub fn sceRegOpenCategory(
3726         handle: RegHandle,
3727         name: *const u8,
3728         mode: i32,
3729         dir_handle: *mut RegHandle,
3730     ) -> i32;
sceRegRemoveCategorynull3731     pub fn sceRegRemoveCategory(handle: RegHandle, name: *const u8) -> i32;
sceRegCloseCategorynull3732     pub fn sceRegCloseCategory(dir_handle: RegHandle) -> i32;
sceRegFlushCategorynull3733     pub fn sceRegFlushCategory(dir_handle: RegHandle) -> i32;
sceRegGetKeyInfonull3734     pub fn sceRegGetKeyInfo(
3735         dir_handle: RegHandle,
3736         name: *const u8,
3737         key_handle: *mut RegHandle,
3738         type_: *mut KeyType,
3739         size: *mut usize,
3740     ) -> i32;
sceRegGetKeyInfoByNamenull3741     pub fn sceRegGetKeyInfoByName(
3742         dir_handle: RegHandle,
3743         name: *const u8,
3744         type_: *mut KeyType,
3745         size: *mut usize,
3746     ) -> i32;
sceRegGetKeyValuenull3747     pub fn sceRegGetKeyValue(
3748         dir_handle: RegHandle,
3749         key_handle: RegHandle,
3750         buf: *mut c_void,
3751         size: usize,
3752     ) -> i32;
sceRegGetKeyValueByNamenull3753     pub fn sceRegGetKeyValueByName(
3754         dir_handle: RegHandle,
3755         name: *const u8,
3756         buf: *mut c_void,
3757         size: usize,
3758     ) -> i32;
sceRegSetKeyValuenull3759     pub fn sceRegSetKeyValue(
3760         dir_handle: RegHandle,
3761         name: *const u8,
3762         buf: *const c_void,
3763         size: usize,
3764     ) -> i32;
sceRegGetKeysNumnull3765     pub fn sceRegGetKeysNum(dir_handle: RegHandle, num: *mut i32) -> i32;
sceRegGetKeysnull3766     pub fn sceRegGetKeys(dir_handle: RegHandle, buf: *mut u8, num: i32) -> i32;
sceRegCreateKeynull3767     pub fn sceRegCreateKey(dir_handle: RegHandle, name: *const u8, type_: i32, size: usize) -> i32;
sceRegRemoveRegistrynull3768     pub fn sceRegRemoveRegistry(key: *mut Key) -> i32;
3769 
sceOpenPSIDGetOpenPSIDnull3770     pub fn sceOpenPSIDGetOpenPSID(openpsid: *mut OpenPSID) -> i32;
3771 
sceUtilityMsgDialogInitStartnull3772     pub fn sceUtilityMsgDialogInitStart(params: *mut UtilityMsgDialogParams) -> i32;
sceUtilityMsgDialogShutdownStartnull3773     pub fn sceUtilityMsgDialogShutdownStart();
sceUtilityMsgDialogGetStatusnull3774     pub fn sceUtilityMsgDialogGetStatus() -> i32;
sceUtilityMsgDialogUpdatenull3775     pub fn sceUtilityMsgDialogUpdate(n: i32);
sceUtilityMsgDialogAbortnull3776     pub fn sceUtilityMsgDialogAbort() -> i32;
sceUtilityNetconfInitStartnull3777     pub fn sceUtilityNetconfInitStart(data: *mut UtilityNetconfData) -> i32;
sceUtilityNetconfShutdownStartnull3778     pub fn sceUtilityNetconfShutdownStart() -> i32;
sceUtilityNetconfUpdatenull3779     pub fn sceUtilityNetconfUpdate(unknown: i32) -> i32;
sceUtilityNetconfGetStatusnull3780     pub fn sceUtilityNetconfGetStatus() -> i32;
sceUtilityCheckNetParamnull3781     pub fn sceUtilityCheckNetParam(id: i32) -> i32;
sceUtilityGetNetParamnull3782     pub fn sceUtilityGetNetParam(conf: i32, param: NetParam, data: *mut UtilityNetData) -> i32;
sceUtilitySavedataInitStartnull3783     pub fn sceUtilitySavedataInitStart(params: *mut SceUtilitySavedataParam) -> i32;
sceUtilitySavedataGetStatusnull3784     pub fn sceUtilitySavedataGetStatus() -> i32;
sceUtilitySavedataShutdownStartnull3785     pub fn sceUtilitySavedataShutdownStart() -> i32;
sceUtilitySavedataUpdatenull3786     pub fn sceUtilitySavedataUpdate(unknown: i32);
sceUtilityGameSharingInitStartnull3787     pub fn sceUtilityGameSharingInitStart(params: *mut UtilityGameSharingParams) -> i32;
sceUtilityGameSharingShutdownStartnull3788     pub fn sceUtilityGameSharingShutdownStart();
sceUtilityGameSharingGetStatusnull3789     pub fn sceUtilityGameSharingGetStatus() -> i32;
sceUtilityGameSharingUpdatenull3790     pub fn sceUtilityGameSharingUpdate(n: i32);
sceUtilityHtmlViewerInitStartnull3791     pub fn sceUtilityHtmlViewerInitStart(params: *mut UtilityHtmlViewerParam) -> i32;
sceUtilityHtmlViewerShutdownStartnull3792     pub fn sceUtilityHtmlViewerShutdownStart() -> i32;
sceUtilityHtmlViewerUpdatenull3793     pub fn sceUtilityHtmlViewerUpdate(n: i32) -> i32;
sceUtilityHtmlViewerGetStatusnull3794     pub fn sceUtilityHtmlViewerGetStatus() -> i32;
sceUtilitySetSystemParamIntnull3795     pub fn sceUtilitySetSystemParamInt(id: SystemParamId, value: i32) -> i32;
sceUtilitySetSystemParamStringnull3796     pub fn sceUtilitySetSystemParamString(id: SystemParamId, str: *const u8) -> i32;
sceUtilityGetSystemParamIntnull3797     pub fn sceUtilityGetSystemParamInt(id: SystemParamId, value: *mut i32) -> i32;
sceUtilityGetSystemParamStringnull3798     pub fn sceUtilityGetSystemParamString(id: SystemParamId, str: *mut u8, len: i32) -> i32;
sceUtilityOskInitStartnull3799     pub fn sceUtilityOskInitStart(params: *mut SceUtilityOskParams) -> i32;
sceUtilityOskShutdownStartnull3800     pub fn sceUtilityOskShutdownStart() -> i32;
sceUtilityOskUpdatenull3801     pub fn sceUtilityOskUpdate(n: i32) -> i32;
sceUtilityOskGetStatusnull3802     pub fn sceUtilityOskGetStatus() -> i32;
sceUtilityLoadNetModulenull3803     pub fn sceUtilityLoadNetModule(module: NetModule) -> i32;
sceUtilityUnloadNetModulenull3804     pub fn sceUtilityUnloadNetModule(module: NetModule) -> i32;
sceUtilityLoadAvModulenull3805     pub fn sceUtilityLoadAvModule(module: AvModule) -> i32;
sceUtilityUnloadAvModulenull3806     pub fn sceUtilityUnloadAvModule(module: AvModule) -> i32;
sceUtilityLoadUsbModulenull3807     pub fn sceUtilityLoadUsbModule(module: UsbModule) -> i32;
sceUtilityUnloadUsbModulenull3808     pub fn sceUtilityUnloadUsbModule(module: UsbModule) -> i32;
sceUtilityLoadModulenull3809     pub fn sceUtilityLoadModule(module: Module) -> i32;
sceUtilityUnloadModulenull3810     pub fn sceUtilityUnloadModule(module: Module) -> i32;
sceUtilityCreateNetParamnull3811     pub fn sceUtilityCreateNetParam(conf: i32) -> i32;
sceUtilitySetNetParamnull3812     pub fn sceUtilitySetNetParam(param: NetParam, val: *const c_void) -> i32;
sceUtilityCopyNetParamnull3813     pub fn sceUtilityCopyNetParam(src: i32, dest: i32) -> i32;
sceUtilityDeleteNetParamnull3814     pub fn sceUtilityDeleteNetParam(conf: i32) -> i32;
3815 
sceNetInitnull3816     pub fn sceNetInit(
3817         poolsize: i32,
3818         calloutprio: i32,
3819         calloutstack: i32,
3820         netintrprio: i32,
3821         netintrstack: i32,
3822     ) -> i32;
sceNetTermnull3823     pub fn sceNetTerm() -> i32;
sceNetFreeThreadinfonull3824     pub fn sceNetFreeThreadinfo(thid: i32) -> i32;
sceNetThreadAbortnull3825     pub fn sceNetThreadAbort(thid: i32) -> i32;
sceNetEtherStrtonnull3826     pub fn sceNetEtherStrton(name: *mut u8, mac: *mut u8);
sceNetEtherNtostrnull3827     pub fn sceNetEtherNtostr(mac: *mut u8, name: *mut u8);
sceNetGetLocalEtherAddrnull3828     pub fn sceNetGetLocalEtherAddr(mac: *mut u8) -> i32;
sceNetGetMallocStatnull3829     pub fn sceNetGetMallocStat(stat: *mut SceNetMallocStat) -> i32;
3830 
sceNetAdhocctlInitnull3831     pub fn sceNetAdhocctlInit(
3832         stacksize: i32,
3833         priority: i32,
3834         adhoc_id: *mut SceNetAdhocctlAdhocId,
3835     ) -> i32;
sceNetAdhocctlTermnull3836     pub fn sceNetAdhocctlTerm() -> i32;
sceNetAdhocctlConnectnull3837     pub fn sceNetAdhocctlConnect(name: *const u8) -> i32;
sceNetAdhocctlDisconnectnull3838     pub fn sceNetAdhocctlDisconnect() -> i32;
sceNetAdhocctlGetStatenull3839     pub fn sceNetAdhocctlGetState(event: *mut i32) -> i32;
sceNetAdhocctlCreatenull3840     pub fn sceNetAdhocctlCreate(name: *const u8) -> i32;
sceNetAdhocctlJoinnull3841     pub fn sceNetAdhocctlJoin(scaninfo: *mut SceNetAdhocctlScanInfo) -> i32;
sceNetAdhocctlGetAdhocIdnull3842     pub fn sceNetAdhocctlGetAdhocId(id: *mut SceNetAdhocctlAdhocId) -> i32;
sceNetAdhocctlCreateEnterGameModenull3843     pub fn sceNetAdhocctlCreateEnterGameMode(
3844         name: *const u8,
3845         unknown: i32,
3846         num: i32,
3847         macs: *mut u8,
3848         timeout: u32,
3849         unknown2: i32,
3850     ) -> i32;
sceNetAdhocctlJoinEnterGameModenull3851     pub fn sceNetAdhocctlJoinEnterGameMode(
3852         name: *const u8,
3853         hostmac: *mut u8,
3854         timeout: u32,
3855         unknown: i32,
3856     ) -> i32;
sceNetAdhocctlGetGameModeInfonull3857     pub fn sceNetAdhocctlGetGameModeInfo(gamemodeinfo: *mut SceNetAdhocctlGameModeInfo) -> i32;
sceNetAdhocctlExitGameModenull3858     pub fn sceNetAdhocctlExitGameMode() -> i32;
sceNetAdhocctlGetPeerListnull3859     pub fn sceNetAdhocctlGetPeerList(length: *mut i32, buf: *mut c_void) -> i32;
sceNetAdhocctlGetPeerInfonull3860     pub fn sceNetAdhocctlGetPeerInfo(
3861         mac: *mut u8,
3862         size: i32,
3863         peerinfo: *mut SceNetAdhocctlPeerInfo,
3864     ) -> i32;
sceNetAdhocctlScannull3865     pub fn sceNetAdhocctlScan() -> i32;
sceNetAdhocctlGetScanInfonull3866     pub fn sceNetAdhocctlGetScanInfo(length: *mut i32, buf: *mut c_void) -> i32;
sceNetAdhocctlAddHandlernull3867     pub fn sceNetAdhocctlAddHandler(handler: SceNetAdhocctlHandler, unknown: *mut c_void) -> i32;
sceNetAdhocctlDelHandlernull3868     pub fn sceNetAdhocctlDelHandler(id: i32) -> i32;
sceNetAdhocctlGetNameByAddrnull3869     pub fn sceNetAdhocctlGetNameByAddr(mac: *mut u8, nickname: *mut u8) -> i32;
sceNetAdhocctlGetAddrByNamenull3870     pub fn sceNetAdhocctlGetAddrByName(
3871         nickname: *mut u8,
3872         length: *mut i32,
3873         buf: *mut c_void,
3874     ) -> i32;
sceNetAdhocctlGetParameternull3875     pub fn sceNetAdhocctlGetParameter(params: *mut SceNetAdhocctlParams) -> i32;
3876 
sceNetAdhocInitnull3877     pub fn sceNetAdhocInit() -> i32;
sceNetAdhocTermnull3878     pub fn sceNetAdhocTerm() -> i32;
sceNetAdhocPdpCreatenull3879     pub fn sceNetAdhocPdpCreate(mac: *mut u8, port: u16, buf_size: u32, unk1: i32) -> i32;
sceNetAdhocPdpDeletenull3880     pub fn sceNetAdhocPdpDelete(id: i32, unk1: i32) -> i32;
sceNetAdhocPdpSendnull3881     pub fn sceNetAdhocPdpSend(
3882         id: i32,
3883         dest_mac_addr: *mut u8,
3884         port: u16,
3885         data: *mut c_void,
3886         len: u32,
3887         timeout: u32,
3888         nonblock: i32,
3889     ) -> i32;
sceNetAdhocPdpRecvnull3890     pub fn sceNetAdhocPdpRecv(
3891         id: i32,
3892         src_mac_addr: *mut u8,
3893         port: *mut u16,
3894         data: *mut c_void,
3895         data_length: *mut c_void,
3896         timeout: u32,
3897         nonblock: i32,
3898     ) -> i32;
sceNetAdhocGetPdpStatnull3899     pub fn sceNetAdhocGetPdpStat(size: *mut i32, stat: *mut SceNetAdhocPdpStat) -> i32;
sceNetAdhocGameModeCreateMasternull3900     pub fn sceNetAdhocGameModeCreateMaster(data: *mut c_void, size: i32) -> i32;
sceNetAdhocGameModeCreateReplicanull3901     pub fn sceNetAdhocGameModeCreateReplica(mac: *mut u8, data: *mut c_void, size: i32) -> i32;
sceNetAdhocGameModeUpdateMasternull3902     pub fn sceNetAdhocGameModeUpdateMaster() -> i32;
sceNetAdhocGameModeUpdateReplicanull3903     pub fn sceNetAdhocGameModeUpdateReplica(id: i32, unk1: i32) -> i32;
sceNetAdhocGameModeDeleteMasternull3904     pub fn sceNetAdhocGameModeDeleteMaster() -> i32;
sceNetAdhocGameModeDeleteReplicanull3905     pub fn sceNetAdhocGameModeDeleteReplica(id: i32) -> i32;
sceNetAdhocPtpOpennull3906     pub fn sceNetAdhocPtpOpen(
3907         srcmac: *mut u8,
3908         srcport: u16,
3909         destmac: *mut u8,
3910         destport: u16,
3911         buf_size: u32,
3912         delay: u32,
3913         count: i32,
3914         unk1: i32,
3915     ) -> i32;
sceNetAdhocPtpConnectnull3916     pub fn sceNetAdhocPtpConnect(id: i32, timeout: u32, nonblock: i32) -> i32;
sceNetAdhocPtpListennull3917     pub fn sceNetAdhocPtpListen(
3918         srcmac: *mut u8,
3919         srcport: u16,
3920         buf_size: u32,
3921         delay: u32,
3922         count: i32,
3923         queue: i32,
3924         unk1: i32,
3925     ) -> i32;
sceNetAdhocPtpAcceptnull3926     pub fn sceNetAdhocPtpAccept(
3927         id: i32,
3928         mac: *mut u8,
3929         port: *mut u16,
3930         timeout: u32,
3931         nonblock: i32,
3932     ) -> i32;
sceNetAdhocPtpSendnull3933     pub fn sceNetAdhocPtpSend(
3934         id: i32,
3935         data: *mut c_void,
3936         data_size: *mut i32,
3937         timeout: u32,
3938         nonblock: i32,
3939     ) -> i32;
sceNetAdhocPtpRecvnull3940     pub fn sceNetAdhocPtpRecv(
3941         id: i32,
3942         data: *mut c_void,
3943         data_size: *mut i32,
3944         timeout: u32,
3945         nonblock: i32,
3946     ) -> i32;
sceNetAdhocPtpFlushnull3947     pub fn sceNetAdhocPtpFlush(id: i32, timeout: u32, nonblock: i32) -> i32;
sceNetAdhocPtpClosenull3948     pub fn sceNetAdhocPtpClose(id: i32, unk1: i32) -> i32;
sceNetAdhocGetPtpStatnull3949     pub fn sceNetAdhocGetPtpStat(size: *mut i32, stat: *mut SceNetAdhocPtpStat) -> i32;
3950 }
3951 
3952 extern "C" {
sceNetAdhocMatchingInitnull3953     pub fn sceNetAdhocMatchingInit(memsize: i32) -> i32;
sceNetAdhocMatchingTermnull3954     pub fn sceNetAdhocMatchingTerm() -> i32;
sceNetAdhocMatchingCreatenull3955     pub fn sceNetAdhocMatchingCreate(
3956         mode: AdhocMatchingMode,
3957         max_peers: i32,
3958         port: u16,
3959         buf_size: i32,
3960         hello_delay: u32,
3961         ping_delay: u32,
3962         init_count: i32,
3963         msg_delay: u32,
3964         callback: AdhocMatchingCallback,
3965     ) -> i32;
sceNetAdhocMatchingDeletenull3966     pub fn sceNetAdhocMatchingDelete(matching_id: i32) -> i32;
sceNetAdhocMatchingStartnull3967     pub fn sceNetAdhocMatchingStart(
3968         matching_id: i32,
3969         evth_pri: i32,
3970         evth_stack: i32,
3971         inth_pri: i32,
3972         inth_stack: i32,
3973         opt_len: i32,
3974         opt_data: *mut c_void,
3975     ) -> i32;
sceNetAdhocMatchingStopnull3976     pub fn sceNetAdhocMatchingStop(matching_id: i32) -> i32;
sceNetAdhocMatchingSelectTargetnull3977     pub fn sceNetAdhocMatchingSelectTarget(
3978         matching_id: i32,
3979         mac: *mut u8,
3980         opt_len: i32,
3981         opt_data: *mut c_void,
3982     ) -> i32;
sceNetAdhocMatchingCancelTargetnull3983     pub fn sceNetAdhocMatchingCancelTarget(matching_id: i32, mac: *mut u8) -> i32;
sceNetAdhocMatchingCancelTargetWithOptnull3984     pub fn sceNetAdhocMatchingCancelTargetWithOpt(
3985         matching_id: i32,
3986         mac: *mut u8,
3987         opt_len: i32,
3988         opt_data: *mut c_void,
3989     ) -> i32;
sceNetAdhocMatchingSendDatanull3990     pub fn sceNetAdhocMatchingSendData(
3991         matching_id: i32,
3992         mac: *mut u8,
3993         data_len: i32,
3994         data: *mut c_void,
3995     ) -> i32;
sceNetAdhocMatchingAbortSendDatanull3996     pub fn sceNetAdhocMatchingAbortSendData(matching_id: i32, mac: *mut u8) -> i32;
sceNetAdhocMatchingSetHelloOptnull3997     pub fn sceNetAdhocMatchingSetHelloOpt(
3998         matching_id: i32,
3999         opt_len: i32,
4000         opt_data: *mut c_void,
4001     ) -> i32;
sceNetAdhocMatchingGetHelloOptnull4002     pub fn sceNetAdhocMatchingGetHelloOpt(
4003         matching_id: i32,
4004         opt_len: *mut i32,
4005         opt_data: *mut c_void,
4006     ) -> i32;
sceNetAdhocMatchingGetMembersnull4007     pub fn sceNetAdhocMatchingGetMembers(
4008         matching_id: i32,
4009         length: *mut i32,
4010         buf: *mut c_void,
4011     ) -> i32;
sceNetAdhocMatchingGetPoolMaxAllocnull4012     pub fn sceNetAdhocMatchingGetPoolMaxAlloc() -> i32;
sceNetAdhocMatchingGetPoolStatnull4013     pub fn sceNetAdhocMatchingGetPoolStat(poolstat: *mut AdhocPoolStat) -> i32;
4014 }
4015 
4016 extern "C" {
sceNetApctlInitnull4017     pub fn sceNetApctlInit(stack_size: i32, init_priority: i32) -> i32;
sceNetApctlTermnull4018     pub fn sceNetApctlTerm() -> i32;
sceNetApctlGetInfonull4019     pub fn sceNetApctlGetInfo(code: ApctlInfo, pinfo: *mut SceNetApctlInfo) -> i32;
sceNetApctlAddHandlernull4020     pub fn sceNetApctlAddHandler(handler: SceNetApctlHandler, parg: *mut c_void) -> i32;
sceNetApctlDelHandlernull4021     pub fn sceNetApctlDelHandler(handler_id: i32) -> i32;
sceNetApctlConnectnull4022     pub fn sceNetApctlConnect(conn_index: i32) -> i32;
sceNetApctlDisconnectnull4023     pub fn sceNetApctlDisconnect() -> i32;
sceNetApctlGetStatenull4024     pub fn sceNetApctlGetState(pstate: *mut ApctlState) -> i32;
4025 
sceNetInetInitnull4026     pub fn sceNetInetInit() -> i32;
sceNetInetTermnull4027     pub fn sceNetInetTerm() -> i32;
sceNetInetAcceptnull4028     pub fn sceNetInetAccept(s: i32, addr: *mut sockaddr, addr_len: *mut socklen_t) -> i32;
sceNetInetBindnull4029     pub fn sceNetInetBind(s: i32, my_addr: *const sockaddr, addr_len: socklen_t) -> i32;
sceNetInetConnectnull4030     pub fn sceNetInetConnect(s: i32, serv_addr: *const sockaddr, addr_len: socklen_t) -> i32;
sceNetInetGetsockoptnull4031     pub fn sceNetInetGetsockopt(
4032         s: i32,
4033         level: i32,
4034         opt_name: i32,
4035         opt_val: *mut c_void,
4036         optl_en: *mut socklen_t,
4037     ) -> i32;
sceNetInetListennull4038     pub fn sceNetInetListen(s: i32, backlog: i32) -> i32;
sceNetInetRecvnull4039     pub fn sceNetInetRecv(s: i32, buf: *mut c_void, len: usize, flags: i32) -> usize;
sceNetInetRecvfromnull4040     pub fn sceNetInetRecvfrom(
4041         s: i32,
4042         buf: *mut c_void,
4043         flags: usize,
4044         arg1: i32,
4045         from: *mut sockaddr,
4046         from_len: *mut socklen_t,
4047     ) -> usize;
sceNetInetSendnull4048     pub fn sceNetInetSend(s: i32, buf: *const c_void, len: usize, flags: i32) -> usize;
sceNetInetSendtonull4049     pub fn sceNetInetSendto(
4050         s: i32,
4051         buf: *const c_void,
4052         len: usize,
4053         flags: i32,
4054         to: *const sockaddr,
4055         to_len: socklen_t,
4056     ) -> usize;
sceNetInetSetsockoptnull4057     pub fn sceNetInetSetsockopt(
4058         s: i32,
4059         level: i32,
4060         opt_name: i32,
4061         opt_val: *const c_void,
4062         opt_len: socklen_t,
4063     ) -> i32;
sceNetInetShutdownnull4064     pub fn sceNetInetShutdown(s: i32, how: i32) -> i32;
sceNetInetSocketnull4065     pub fn sceNetInetSocket(domain: i32, type_: i32, protocol: i32) -> i32;
sceNetInetClosenull4066     pub fn sceNetInetClose(s: i32) -> i32;
sceNetInetGetErrnonull4067     pub fn sceNetInetGetErrno() -> i32;
4068 
sceSslInitnull4069     pub fn sceSslInit(unknown1: i32) -> i32;
sceSslEndnull4070     pub fn sceSslEnd() -> i32;
sceSslGetUsedMemoryMaxnull4071     pub fn sceSslGetUsedMemoryMax(memory: *mut u32) -> i32;
sceSslGetUsedMemoryCurrentnull4072     pub fn sceSslGetUsedMemoryCurrent(memory: *mut u32) -> i32;
4073 
sceHttpInitnull4074     pub fn sceHttpInit(unknown1: u32) -> i32;
sceHttpEndnull4075     pub fn sceHttpEnd() -> i32;
sceHttpCreateTemplatenull4076     pub fn sceHttpCreateTemplate(agent: *mut u8, unknown1: i32, unknown2: i32) -> i32;
sceHttpDeleteTemplatenull4077     pub fn sceHttpDeleteTemplate(templateid: i32) -> i32;
sceHttpCreateConnectionnull4078     pub fn sceHttpCreateConnection(
4079         templateid: i32,
4080         host: *mut u8,
4081         unknown1: *mut u8,
4082         port: u16,
4083         unknown2: i32,
4084     ) -> i32;
sceHttpCreateConnectionWithURLnull4085     pub fn sceHttpCreateConnectionWithURL(templateid: i32, url: *const u8, unknown1: i32) -> i32;
sceHttpDeleteConnectionnull4086     pub fn sceHttpDeleteConnection(connection_id: i32) -> i32;
sceHttpCreateRequestnull4087     pub fn sceHttpCreateRequest(
4088         connection_id: i32,
4089         method: HttpMethod,
4090         path: *mut u8,
4091         content_length: u64,
4092     ) -> i32;
sceHttpCreateRequestWithURLnull4093     pub fn sceHttpCreateRequestWithURL(
4094         connection_id: i32,
4095         method: HttpMethod,
4096         url: *mut u8,
4097         content_length: u64,
4098     ) -> i32;
sceHttpDeleteRequestnull4099     pub fn sceHttpDeleteRequest(request_id: i32) -> i32;
sceHttpSendRequestnull4100     pub fn sceHttpSendRequest(request_id: i32, data: *mut c_void, data_size: u32) -> i32;
sceHttpAbortRequestnull4101     pub fn sceHttpAbortRequest(request_id: i32) -> i32;
sceHttpReadDatanull4102     pub fn sceHttpReadData(request_id: i32, data: *mut c_void, data_size: u32) -> i32;
sceHttpGetContentLengthnull4103     pub fn sceHttpGetContentLength(request_id: i32, content_length: *mut u64) -> i32;
sceHttpGetStatusCodenull4104     pub fn sceHttpGetStatusCode(request_id: i32, status_code: *mut i32) -> i32;
sceHttpSetResolveTimeOutnull4105     pub fn sceHttpSetResolveTimeOut(id: i32, timeout: u32) -> i32;
sceHttpSetResolveRetrynull4106     pub fn sceHttpSetResolveRetry(id: i32, count: i32) -> i32;
sceHttpSetConnectTimeOutnull4107     pub fn sceHttpSetConnectTimeOut(id: i32, timeout: u32) -> i32;
sceHttpSetSendTimeOutnull4108     pub fn sceHttpSetSendTimeOut(id: i32, timeout: u32) -> i32;
sceHttpSetRecvTimeOutnull4109     pub fn sceHttpSetRecvTimeOut(id: i32, timeout: u32) -> i32;
sceHttpEnableKeepAlivenull4110     pub fn sceHttpEnableKeepAlive(id: i32) -> i32;
sceHttpDisableKeepAlivenull4111     pub fn sceHttpDisableKeepAlive(id: i32) -> i32;
sceHttpEnableRedirectnull4112     pub fn sceHttpEnableRedirect(id: i32) -> i32;
sceHttpDisableRedirectnull4113     pub fn sceHttpDisableRedirect(id: i32) -> i32;
sceHttpEnableCookienull4114     pub fn sceHttpEnableCookie(id: i32) -> i32;
sceHttpDisableCookienull4115     pub fn sceHttpDisableCookie(id: i32) -> i32;
sceHttpSaveSystemCookienull4116     pub fn sceHttpSaveSystemCookie() -> i32;
sceHttpLoadSystemCookienull4117     pub fn sceHttpLoadSystemCookie() -> i32;
sceHttpAddExtraHeadernull4118     pub fn sceHttpAddExtraHeader(id: i32, name: *mut u8, value: *mut u8, unknown1: i32) -> i32;
sceHttpDeleteHeadernull4119     pub fn sceHttpDeleteHeader(id: i32, name: *const u8) -> i32;
sceHttpsInitnull4120     pub fn sceHttpsInit(unknown1: i32, unknown2: i32, unknown3: i32, unknown4: i32) -> i32;
sceHttpsEndnull4121     pub fn sceHttpsEnd() -> i32;
sceHttpsLoadDefaultCertnull4122     pub fn sceHttpsLoadDefaultCert(unknown1: i32, unknown2: i32) -> i32;
sceHttpDisableAuthnull4123     pub fn sceHttpDisableAuth(id: i32) -> i32;
sceHttpDisableCachenull4124     pub fn sceHttpDisableCache(id: i32) -> i32;
sceHttpEnableAuthnull4125     pub fn sceHttpEnableAuth(id: i32) -> i32;
sceHttpEnableCachenull4126     pub fn sceHttpEnableCache(id: i32) -> i32;
sceHttpEndCachenull4127     pub fn sceHttpEndCache() -> i32;
sceHttpGetAllHeadernull4128     pub fn sceHttpGetAllHeader(request: i32, header: *mut *mut u8, header_size: *mut u32) -> i32;
sceHttpGetNetworkErrnonull4129     pub fn sceHttpGetNetworkErrno(request: i32, err_num: *mut i32) -> i32;
sceHttpGetProxynull4130     pub fn sceHttpGetProxy(
4131         id: i32,
4132         activate_flag: *mut i32,
4133         mode: *mut i32,
4134         proxy_host: *mut u8,
4135         len: usize,
4136         proxy_port: *mut u16,
4137     ) -> i32;
sceHttpInitCachenull4138     pub fn sceHttpInitCache(max_size: usize) -> i32;
sceHttpSetAuthInfoCBnull4139     pub fn sceHttpSetAuthInfoCB(id: i32, cbfunc: HttpPasswordCB) -> i32;
sceHttpSetProxynull4140     pub fn sceHttpSetProxy(
4141         id: i32,
4142         activate_flag: i32,
4143         mode: i32,
4144         new_proxy_host: *const u8,
4145         new_proxy_port: u16,
4146     ) -> i32;
sceHttpSetResHeaderMaxSizenull4147     pub fn sceHttpSetResHeaderMaxSize(id: i32, header_size: u32) -> i32;
sceHttpSetMallocFunctionnull4148     pub fn sceHttpSetMallocFunction(
4149         malloc_func: HttpMallocFunction,
4150         free_func: HttpFreeFunction,
4151         realloc_func: HttpReallocFunction,
4152     ) -> i32;
4153 
sceNetResolverInitnull4154     pub fn sceNetResolverInit() -> i32;
sceNetResolverCreatenull4155     pub fn sceNetResolverCreate(rid: *mut i32, buf: *mut c_void, buf_length: u32) -> i32;
sceNetResolverDeletenull4156     pub fn sceNetResolverDelete(rid: i32) -> i32;
sceNetResolverStartNtoAnull4157     pub fn sceNetResolverStartNtoA(
4158         rid: i32,
4159         hostname: *const u8,
4160         addr: *mut in_addr,
4161         timeout: u32,
4162         retry: i32,
4163     ) -> i32;
sceNetResolverStartAtoNnull4164     pub fn sceNetResolverStartAtoN(
4165         rid: i32,
4166         addr: *const in_addr,
4167         hostname: *mut u8,
4168         hostname_len: u32,
4169         timeout: u32,
4170         retry: i32,
4171     ) -> i32;
sceNetResolverStopnull4172     pub fn sceNetResolverStop(rid: i32) -> i32;
sceNetResolverTermnull4173     pub fn sceNetResolverTerm() -> i32;
4174 }
4175