summaryrefslogtreecommitdiffstats
path: root/src/mesa/x86-64
Commit message (Expand)AuthorAgeFilesLines
* ARB_fbo: Regenerate files from previous commits.Ian Romanick2009-11-171-0/+1
* glapi: regenerated filesBrian Paul2009-09-191-0/+1
* glapi: Add ARB_draw_elements_base_vertexEric Anholt2009-09-081-1036/+1187
* ARB sync: Regenerate files from previous commitIan Romanick2009-09-031-1061/+1312
* Regenerate files for GL_APPLE_flush_buffer_rangeIan Romanick2009-08-141-53/+205
* glapi: regenerated GL API assembly filesRALOVICH, Kristóf2009-07-271-1/+1
* mesa: regenerated files related to GL_ARB_vertex_array_objectBrian Paul2009-06-191-1027/+1095
* Merge branch 'ext-provoking-vertex'Brian Paul2009-06-191-21/+50
|\
| * mesa: regenerated API files for GL_EXT_provoking_vertexBrian Paul2009-05-281-21/+50
* | mesa: regenerated files for GL_ARB_map_buffer_rangeBrian Paul2009-06-081-1021/+1103
* | glapi: regenerated files for GL_ARB_copy_bufferBrian Paul2009-06-021-983/+1028
|/
* regenerate glapiRoland Scheidegger2009-03-121-279/+427
* mesa: rename common_x86_macros.h -> x86_xform.hBrian Paul2009-03-041-1/+1
* mesa: regenerated GL API filesBrian Paul2009-01-221-966/+1030
* Use 3Dnow! x86-64 routines only on processors that support 3Dnow!Ian Romanick2008-09-282-19/+46
* Remove CVS keywords.Keith Whitwell2008-09-212-2/+0
* mesa: Prefix main includes with dir to avoid conflicts.José Fonseca2008-09-211-2/+2
* mesa: Remove assyntax.h include from generated matypes.h.José Fonseca2008-09-211-1/+1
* Never fail `make clean'Dan Nicholson2008-05-071-1/+1
* recreate from changed gl_API.xmlRoland Scheidegger2007-11-091-634/+458
* Alias glStencilOpSeparateATI with glStencilOpSeparate.Brian2007-10-301-46/+0
* Finish up ATI_separate_stencilBrian2007-10-301-0/+92
* fix another occurence of movaps which might not be alignedRoland Scheidegger2007-08-301-1/+1
* s/movaps/movups/ (see bug 12216)Brian2007-08-301-5/+3
* Add a few missing GL 2.0 entrypoints, regenerate related files.Brian2007-06-281-0/+5
* Initial implementation of MESA_texture_arrayIan Romanick2007-05-161-9/+54
* Bug 9628: no entry for GetVertexAttribPointervGeorge Sapountzis2007-01-271-0/+1
* #define _glapi_Dispatch _mglapi_Dispatch when USE_MGL_NAMESPACE is set.Brian Paul2006-11-031-0/+1
* Added OpenGL 2.1 entrypoints.Brian Paul2006-11-031-1528/+1798
* Update gl_API.xml with OpenGL 2.0 functions, regenerate derived files.Brian Paul2006-11-021-1541/+2067
* include x86-64.h to silence warningBrian Paul2006-10-171-1/+4
* Fix build when DEBUG is defined but DEBUG_MATH is not.Ian Romanick2006-10-161-2/+2
* Fix bug #4681.Ian Romanick2006-10-111-1609/+981
* Changes to generated code caused by the previous commits.Ian Romanick2006-10-041-66/+66
* Deprecate GL_EXT_vertex_weighting.Ian Romanick2006-08-291-868/+761
* More static dispatch function removal.Ian Romanick2006-08-291-185/+199
* Add a couple of the missing GL 2.0 functions. Enable GLX protocol forIan Romanick2006-08-251-0/+2
* GL_EXT_paletted_texture functions should alias GL_SGI_color_table functions.Ian Romanick2006-08-241-936/+820
* Add a new offset mode to the GL API XML. This mode, called "assign,"Ian Romanick2006-08-241-5770/+3948
* Add new attribute called static_dispatch to the <function> element. ThisIan Romanick2006-08-221-24/+30
* Add support for GL_EXT_gpu_program_parameters. Any driver that enablesIan Romanick2006-08-151-0/+90
* Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick2006-06-121-1/+133
* Add .note.GNU-stack section to assembler files to avoid the default behaviorKristian Høgsberg2006-04-172-1/+9
* Added glBlitFramebufferEXT function.Brian Paul2006-03-011-0/+53
* Regenerate for recent glapi changes (GetQueryObjecti64vEXT).Eric Anholt2005-12-111-0/+74
* Fix build issues on x86-64 due to missing include path inIan Romanick2005-12-021-1/+1
* implement USE_MGL_NAMESPACE for x86-64 dispatch code (Mark Bolstad)Brian Paul2005-11-021-3443/+3452
* additional wrapper updates, bug 4468Brian Paul2005-09-191-2/+2
* Remove _glapi_check_multithread from the interface exported by the loader toIan Romanick2005-08-101-816/+816
* s/Disaptch/Dispatch/ (bug 3918)Brian Paul2005-08-081-1/+1
rk(); truncate_setsize(ip, 0); clear_inode(ip); zfs_inactive(ip); spl_fstrans_unmark(cookie); } static void zpl_put_super(struct super_block *sb) { fstrans_cookie_t cookie; int error; cookie = spl_fstrans_mark(); error = -zfs_umount(sb); spl_fstrans_unmark(cookie); ASSERT3S(error, <=, 0); } static int zpl_sync_fs(struct super_block *sb, int wait) { fstrans_cookie_t cookie; cred_t *cr = CRED(); int error; crhold(cr); cookie = spl_fstrans_mark(); error = -zfs_sync(sb, wait, cr); spl_fstrans_unmark(cookie); crfree(cr); ASSERT3S(error, <=, 0); return (error); } static int zpl_statfs(struct dentry *dentry, struct kstatfs *statp) { fstrans_cookie_t cookie; int error; cookie = spl_fstrans_mark(); error = -zfs_statvfs(dentry->d_inode, statp); spl_fstrans_unmark(cookie); ASSERT3S(error, <=, 0); /* * If required by a 32-bit system call, dynamically scale the * block size up to 16MiB and decrease the block counts. This * allows for a maximum size of 64EiB to be reported. The file * counts must be artificially capped at 2^32-1. */ if (unlikely(zpl_is_32bit_api())) { while (statp->f_blocks > UINT32_MAX && statp->f_bsize < SPA_MAXBLOCKSIZE) { statp->f_frsize <<= 1; statp->f_bsize <<= 1; statp->f_blocks >>= 1; statp->f_bfree >>= 1; statp->f_bavail >>= 1; } uint64_t usedobjs = statp->f_files - statp->f_ffree; statp->f_ffree = MIN(statp->f_ffree, UINT32_MAX - usedobjs); statp->f_files = statp->f_ffree + usedobjs; } return (error); } static int zpl_remount_fs(struct super_block *sb, int *flags, char *data) { zfs_mnt_t zm = { .mnt_osname = NULL, .mnt_data = data }; fstrans_cookie_t cookie; int error; cookie = spl_fstrans_mark(); error = -zfs_remount(sb, flags, &zm); spl_fstrans_unmark(cookie); ASSERT3S(error, <=, 0); return (error); } static int __zpl_show_devname(struct seq_file *seq, zfsvfs_t *zfsvfs) { char *fsname; ZFS_ENTER(zfsvfs); fsname = kmem_alloc(ZFS_MAX_DATASET_NAME_LEN, KM_SLEEP); dmu_objset_name(zfsvfs->z_os, fsname); seq_puts(seq, fsname); kmem_free(fsname, ZFS_MAX_DATASET_NAME_LEN); ZFS_EXIT(zfsvfs); return (0); } static int zpl_show_devname(struct seq_file *seq, struct dentry *root) { return (__zpl_show_devname(seq, root->d_sb->s_fs_info)); } static int __zpl_show_options(struct seq_file *seq, zfsvfs_t *zfsvfs) { seq_printf(seq, ",%s", zfsvfs->z_flags & ZSB_XATTR ? "xattr" : "noxattr"); #ifdef CONFIG_FS_POSIX_ACL switch (zfsvfs->z_acl_type) { case ZFS_ACLTYPE_POSIXACL: seq_puts(seq, ",posixacl"); break; default: seq_puts(seq, ",noacl"); break; } #endif /* CONFIG_FS_POSIX_ACL */ return (0); } static int zpl_show_options(struct seq_file *seq, struct dentry *root) { return (__zpl_show_options(seq, root->d_sb->s_fs_info)); } static int zpl_fill_super(struct super_block *sb, void *data, int silent) { zfs_mnt_t *zm = (zfs_mnt_t *)data; fstrans_cookie_t cookie; int error; cookie = spl_fstrans_mark(); error = -zfs_domount(sb, zm, silent); spl_fstrans_unmark(cookie); ASSERT3S(error, <=, 0); return (error); } static int zpl_test_super(struct super_block *s, void *data) { zfsvfs_t *zfsvfs = s->s_fs_info; objset_t *os = data; if (zfsvfs == NULL) return (0); return (os == zfsvfs->z_os); } static struct super_block * zpl_mount_impl(struct file_system_type *fs_type, int flags, zfs_mnt_t *zm) { struct super_block *s; objset_t *os; int err; err = dmu_objset_hold(zm->mnt_osname, FTAG, &os); if (err) return (ERR_PTR(-err)); /* * The dsl pool lock must be released prior to calling sget(). * It is possible sget() may block on the lock in grab_super() * while deactivate_super() holds that same lock and waits for * a txg sync. If the dsl_pool lock is held over sget() * this can prevent the pool sync and cause a deadlock. */ dsl_pool_rele(dmu_objset_pool(os), FTAG); s = sget(fs_type, zpl_test_super, set_anon_super, flags, os); dsl_dataset_rele(dmu_objset_ds(os), FTAG); if (IS_ERR(s)) return (ERR_CAST(s)); if (s->s_root == NULL) { err = zpl_fill_super(s, zm, flags & SB_SILENT ? 1 : 0); if (err) { deactivate_locked_super(s); return (ERR_PTR(err)); } s->s_flags |= SB_ACTIVE; } else if ((flags ^ s->s_flags) & SB_RDONLY) { deactivate_locked_super(s); return (ERR_PTR(-EBUSY)); } return (s); } static struct dentry * zpl_mount(struct file_system_type *fs_type, int flags, const char *osname, void *data) { zfs_mnt_t zm = { .mnt_osname = osname, .mnt_data = data }; struct super_block *sb = zpl_mount_impl(fs_type, flags, &zm); if (IS_ERR(sb)) return (ERR_CAST(sb)); return (dget(sb->s_root)); } static void zpl_kill_sb(struct super_block *sb) { zfs_preumount(sb); kill_anon_super(sb); } void zpl_prune_sb(int64_t nr_to_scan, void *arg) { struct super_block *sb = (struct super_block *)arg; int objects = 0; (void) -zfs_prune(sb, nr_to_scan, &objects); } const struct super_operations zpl_super_operations = { .alloc_inode = zpl_inode_alloc, .destroy_inode = zpl_inode_destroy, .dirty_inode = zpl_dirty_inode, .write_inode = NULL, .evict_inode = zpl_evict_inode, .put_super = zpl_put_super, .sync_fs = zpl_sync_fs, .statfs = zpl_statfs, .remount_fs = zpl_remount_fs, .show_devname = zpl_show_devname, .show_options = zpl_show_options, .show_stats = NULL, }; struct file_system_type zpl_fs_type = { .owner = THIS_MODULE, .name = ZFS_DRIVER, .mount = zpl_mount, .kill_sb = zpl_kill_sb, };