// SDK location: /user/pspthreadman.h:1360
        // SDK declaration: int sceKernelCreateFpl(const char *name, int part, int attr, unsigned int size, unsigned int blocks, struct SceKernelFplOptParam *opt);
        public int sceKernelCreateFpl(int name, int part, int attr, int size, int blocks, int opt)
        {
            KPartition partition = _kernel.Partitions[part];

            Debug.Assert(partition != null);
            if (partition == null)
            {
                return(-1);
            }

            KFixedPool pool = new KFixedPool(_kernel, partition,
                                             _kernel.ReadString(( uint )name),
                                             ( uint )attr, ( uint )size, blocks);

            if (pool.AllocateFplBlocks() == false)
            {
                pool.Dispose();
                //return unchecked( ( int )0x800200E0 );
                //return unchecked( ( int )0x800200D9 );
                return(unchecked (( int )0x80020190));
            }
            _kernel.AddHandle(pool);

            // option unused?
            //Debug.Assert( opt == 0 );

            return(( int )pool.UID);
        }
        // SDK location: /user/pspthreadman.h:1369
        // SDK declaration: int sceKernelDeleteFpl(SceUID uid);
        public int sceKernelDeleteFpl(int uid)
        {
            KFixedPool pool = _kernel.GetHandle <KFixedPool>(uid);

            if (pool == null)
            {
                return(-1);
            }

            pool.Dispose();

            _kernel.RemoveHandle(pool.UID);

            return(0);
        }
        public int sceKernelCreateFpl( int name, int part, int attr, int size, int blocks, int opt )
        {
            KPartition partition = _kernel.Partitions[ part ];
            Debug.Assert( partition != null );
            if( partition == null )
                return -1;

            KFixedPool pool = new KFixedPool( _kernel, partition,
                _kernel.ReadString( ( uint )name ),
                ( uint )attr, ( uint )size, blocks );
            if( pool.AllocateFplBlocks() == false )
            {
                pool.Dispose();
                //return unchecked( ( int )0x800200E0 );
                //return unchecked( ( int )0x800200D9 );
                return unchecked( ( int )0x80020190 );
            }
            _kernel.AddHandle( pool );

            // option unused?
            //Debug.Assert( opt == 0 );

            return ( int )pool.UID;
        }